本申请是向中国知识产权局提交的申请日为2017年3月13日、申请号为201710145776.6、发明名称为“处理分组的方法和网络设备”的申请的分案申请。本申请涉及信息
技术领域:
,并且更具体地,涉及处理分组的方法和网络设备。
背景技术:
:网络设备在接收到分组(packet)后,可以根据预设分类规则,将具有相同特征的分组划分为一类,以便于对于不同类型的分组进行不同的处理。例如,可以按照分组的类型对分组进行限速、过滤、分组统计、重定向等处理。网络设备可以利用分组携带的一些信息对该分组进行分类。例如,可以利用分组中携带的源互联网协议(internetprotocol,ip)地址、目的ip地址、源端口号、目的端口号、协议类型、源媒体访问控制(mediaaccesscontrol,mac)地址以及目的mac地址中的一个或多个对分组进行分类。为方便描述,以下将分组中携带的用于分类的信息称为分类信息。该网络设备在对分组进行分类时会根据预设的分类规则确定分组所属的类型。每个分类规则包括的数字(digit)的数量与分类信息包括的比特的数量相等。该每个分类规则包括的多个数字与分类信息包括的多个比特一一对应。网络设备将该分组的分类信息与多个分类规则包括的数字进行比较,从而确定与所述分类信息匹配的分类规则。网络设备根据与所述分类信息匹配的分类规则对分组进行处理。上述方案中,处理分组的效率较低。技术实现要素:本申请实施例提供处理分组的方法和网络设备,能够提高处理分组的效率。第一方面,本申请实施例提供一种处理分组的方法,该方法包括:网络设备接收分组,其中该分组包括分类信息,该分类信息包括m个字段,该m个字段包括x个字段和k个字段,该m个字段中的比特的数量为n,该x个字段中的比特的数量为p,该k个字段中的比特的数量为q,n为大于或等于2的正整数,n等于q与p的和,m等于k与x的和,q、p、k和x均为正整数,m为大于或等于2的正整数;该网络设备根据该网络设备保存的指示信息,确定该m个字段中的该k个字段,该指示信息包括m个指示数字,该m个字段与该m个指示数字一一对应,该k个字段中每个字段对应的指示数字的值等于第一值,该x个字段中每个字段对应的指示数字的值等于第二值,该第一值不等于该第二值;该网络设备根据该网络设备保存的第一分类规则集合以及该k个字段,确定目标分类规则,该目标分类规则是该第一分类规则集合中的一个第一分类规则,该第一分类规则集合包括t个第一分类规则,该t个第一分类规则中的每个第一分类规则包括k个匹配域,该t个第一分类规则中的每个第一分类规则包括的k个匹配域中的数字的数量为q,该t个第一分类规则中的每个第一分类规则包括的k个匹配域与该k个字段一一对应,该目标分类规则包括的k个匹配域与该k个字段匹配,该目标分类规则包括的k个匹配域与该k个字段一一对应,t为大于等于1的正整数;该网络设备根据该目标分类规则对该分组进行处理。根据上述实施例,该网络设备在确定分组的类型是无需使用分类信息中的每个比特。该网络设备只需要将该分类信息的部分比特与分类规则进行比较即可确定该分组的类型。这样,可以减少确定分组类型时比较的次数,从而可以提高处理分组的效率。结合第一方面,在第一方面的第一种可能的实现方式中,m’、n和q’满足以下关系:m’ q’小于2n,其中m’表示该m个指示数字包括的比特的数量,q’表示该t个第一分类规则中的每个第一分类规则包括的k个匹配域包括的比特的数量。每个分类规则的长度减少。这样,在该网络设备用于存储分类规则的存储空间不变的情况下,该网络设备可以存储更多的分类规则。结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,在该网络设备根据该网络设备保存的指示信息,确定m个字段中的k个字段之前,该方法还包括:该网络设备获取第二分类规则集合,该第二分类规则集合包括t个第二分类规则,其中,该t个第二分类规则中的第t个第二分类规则的数字的数量为n,该第t个第二分类规则包括m个匹配域,该第t个第二分类规则包括的m个匹配域中的第m个匹配域包括的数字的数量与该m个字段中的第m个字段包含的比特的数量相等,t=1,…,t,m=1,…,m;该网络设备确定该第t个第二分类规则包括的m个匹配域中的每个匹配域的类型,该第t个第二分类规则包括的m个匹配域中的一个匹配域的类型为第一类型或第二类型,该第t个第二分类规则包括的m个匹配域中的k个匹配域的类型为该第一类型,该第t个第二分类规则包括的m个匹配域中的x个匹配域的类型为该第二类型,该第t个第二分类规则包括的m个匹配域中的k个匹配域中的第k个匹配域包括的数字的数量与该k个字段中的第k个字段包括的比特的数量相等,该第t个第二分类规则包括的m个匹配域中的k个匹配域中的数字的数量为q,k=1,…,k;该网络设备根据该第t个第二分类规则包括的m个匹配域中的每个匹配域的类型以及该第t个第二分类规则包括的m个匹配域中的k个匹配域,确定该m个指示数字和该t个第一分类规则中的第t个第一分类规则,其中,该第t个第一分类规则包括k个匹配域,该第一分类规则包括的k个匹配域为该m个匹配域中的k个匹配域。根据上述实施例,该网络设备可以根据第二分类规则确定出一个对应的第一分类规则,且该第一分类规则的长度小于对应的第二分类规则的长度。结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,该网络设备确定该第t个第二分类规则包括的m个匹配域中的每个匹配域的类型,包括:该网络设备在确定该第t个第二分类规则包括的m个匹配域中的第m个匹配域包括的数字的值中包括至少一个特定值的情况下,确定该第m个匹配域的类型为该第一类型;该网络设备在确定该第t个第二分类规则包括的m个匹配域中的第m个匹配域包括的数字的值均为通用值情况下,确定该第m个匹配域的类型为该第二类型,其中,该特定值包括第一特定值和第二特定值,第一比特与该第一特定值匹配,第二比特与该第二特定值匹配,该第一比特与该第二比特均与该通用值匹配,该第一比特的值为1,该第二比特的值为0。根据上述实施例,该网络设备可以根据第二分类规则确定出一个对应的第一分类规则,且该第一分类规则的长度小于对应的第二分类规则的长度。结合第一方面的第二种可能的实现方式,在第一方面的第四种可能的实现方式中,在p为大于或等于2的正整数的情况下,该网络设备确定该第t个第二分类规则包括的m个匹配域中的每个匹配域的类型,包括:该网络设备确定该第t个第二分类规则包括的m个匹配域中的第m个匹配域包括的数字的值是否与该t个第二分类规则中除该第t个第二分类规则以外的第二分类规则包括的m个匹配域中的第m个匹配域包括的数字的值均相同;若否,则确定该第t个第二分类规则包括的m个匹配域中的第m个匹配域的类型为该第一类型;若是,则确定该第t个第二分类规则包括的m个匹配域中的第m个匹配域的类型为该第二类型。根据上述实施例,该网络设备可以根据第二分类规则确定出一个对应的第一分类规则,且该第一分类规则的长度小于对应的第二分类规则的长度。第二方面,本发明实施例提供一种网络设备,该网络设备包括:用于执行该第一方面提供的方法的单元。第三方面,本发明实施例提供一种计算机可读存储介质,该计算机可读存储介质存储的程序包括用于执行该第一方面提供的方法的指令。第四方面,本发明实施例提供一种网络设备,该网络设备包括第三方面的计算机可读存储介质、处理器和收发器。处理器用于结合收发器执行该计算机可读存储介质中存储的程序的指令,以完成对分组的处理。附图说明图1是根据本申请实施例提供的处理分组的方法的示意性流程图。图2是根据本申请实施例提供的一种网络设备的结构框图。图3是根据本申请实施例提供的网络设备的结构框图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。目前,若分类信息的长度为y比特(bit),则分类规则需要包括y个数字,该y个比特与该y个数字一一对应,y为大于或等于1的正整数。该值的类型可以包括特定值和通用值。特定值包括第一特定值和第二特定值。比特值为1的比特与该第一特定值匹配,比特值为0的比特与该第二特定值匹配。为方便描述,以下将比特值为1的比特称为第一比特,将比特值为0的比特称为第二比特。第一比特与第二比特均与该通用值匹配。该第一特定值可以用1表示,该第二特定值可以用0表示,该通用值可以用*表示。可以理解的是,1比特最多可以表示两个值。因此,若需要表示三个不同的值,则至少需要2比特。也就是说,一个数字最少由两比特表示。例如,比特值00表示该第一特定值,比特值01表示该第二特定值,比特值10表示该通用值。因此,该分类规则的长度至少为2y个比特。例如,分类信息为源端口号和目的端口号。假设网络设备需要对源端口号为8080,目的端口号为0~65535的分组进行调度。源端口号和目的端口号的二进制值均为16位。因此分组的源端口号和目的端口号共需32比特。用于确定接收到的分组为需要进行调度的分组的分类规则需要包括32个数字。该32个数字的值为:0001111110010000****************。该分类规则中的前16个数字与源端口号的二进制值一一对应,后16个数字与目的端口号的二进制值一一对应。可以理解,由于仅需要确定源端口号是否为8080,因此该分类规则中对应于源端口号的数字的取值与源端口号的二进制值是相同的。由于不需要关心目的端口号的值为多少,因此可以将与目的端口号对应的数字的值设置为通用值。该网络设备在接收到分组后,会确定接收到的分组的用于表示源端口号和目的端口号的32个比特的值是否与该分类规则包括的32个数字均匹配。若是,则确定该分组为需要进行调度的分组;若否,则确定该分组为不需要进行调度的分组。本申请中所称的网络设备可以是路由器或者网络交换机。图1是根据本申请实施例提供的处理分组的方法的示意性流程图。所述方法包括101、102、103以及104。101,网络设备接收分组。举例来说,所述网络设备可以包含以太网接口。所述分组可以是以太网帧。所述网络设备可以经由所述以太网接口接收所述以太网帧。该分组可以是由用户设备、互联网服务器或者其他设备发送的,本申请实施例对此并不限定。该分组包括分类信息。分组的分类信息时分类规则所使用的用于对分组进行分类的信息。例如,若分类规则中对分组进行分类时使用的信息为源ip地址和目的ip地址,则该分类信息为源ip地址和目的ip地址。再如,若分类规则中对分组进行分类时使用的信息为源端口号和目的端口号,则该分类信息为源端口号和目的端口号。该分类信息包括的比特数目与该分类信息包括的内容相关。例如,若该分类信息包括源端口号,则该分类信息的长度为16比特。若该分类信息包括源ip地址,则该分类信息的长度为32比特。该分类信息包括m个字段,该m个字段包括x个字段和k个字段,该m个字段中的比特的数量为n,该x个字段中的比特的数量为p,该k个字段中的比特的数量为q,n为大于或等于2的正整数,n等于q与p的和,m等于k与x的和,q、p、k和x均为正整数,m为大于或等于2的正整数。可选的,在一些实施例中,该m个字段中的不同字段对应于该分类信息中的不同信息。例如,假设该分类信息包括源ip地址和目的ip地址,则m的取值可以为2。两个字段中的一个字段可以为源ip地址,另一个字段可以为目的ip地址。可选的,在另一些实施例中,该m个字段可以是对分类信息进行等分或不等分得到的。例如,假设该分类信息的长度为32比特,则可以将该分类信息等分为m个字段,每个字段包括32/m个比特。显然,在这种情况下,该分类信息的长度可以被m整除。当然,在另一些实施例中,该m个字段中的两个字段的长度也可以不同。例如,假设该分类信息的长度为32比特且m等于4,则该四个字段包括的比特数可以分别为4、4、8和16。此外,该m个字段中的两个字段的比特的值可以完全相同或部分相同,但是该m个字段中不包括重复的比特。该重复的比特是指属于一个字段的比特同时属于另一个字段。换句话说,该n个比特中的第n个比特只能属于m个字段中的一个字段,n=1,…,n。例如,该分类信息的长度为32比特且m等于2,则两个字段中的第一个字段可以是32个比特中的第1个比特至第16个比特,第二个字段可以是32个比特中的第17个比特至第32个比特。102,该网络设备根据该网络设备保存的指示信息,确定m个字段中的k个字段。举例来说,所述网络设备的转发平面的存储器中可以保存所述指示信息。所述网络设备可以包含多个用于接收流量的端口。每个端口对应一片指示信息。所述存储器中可以保存所述多个端口对应的多片指示信息。当所述网络设备经由一个端口接收到所述分组时,所述网络设备中的网络处理器可以根据用于接收所述分组的端口对应的指示信息,确定与所述分组对应的指示信息。具体地,该指示信息包括m个指示数字。该m个指示数字与该m个字段一一对应。该k个字段中每个字段对应的指示数字的值等于第一值,该x个字段中的每个字段对应的指示数字的值等于第二值,该第一值不等于该第二值。换句话说,指示数字用于指示该指示数字对应的字段是否需要与第一分类规则中的匹配域进行匹配。若该指示数字的值等于该第一值,则该指示数字对应的字段需要与该第一分类规则中的匹配域进行匹配;若该指示数字的值等于第二值,则该指示数字对应的字段不需要与该第一分类规则中的匹配域进行匹配。可选的,在一个实施例中,该每个指示数字为1比特。该第一值可以等于1,该第二值可以等于0。可选的,在另一些实施例中,该每个数字为2比特。该第一值可以为10或11,该第二值可以为00。103,该网络设备根据该网络设备保存的第一分类规则集合以及该k个字段包括的q个比特,确定目标分类规则。目标分类规则为与所述分组匹配的分类规则。所述网络设备中的查找引擎可以执行确定所述分类规则的步骤。具体地,该第一分类规则集合包括t个第一分类规则,该t个第一分类规则中的每个第一分类规则包括k个匹配域,该t个第一分类规则中的每个第一分类规则包括的k个匹配域中的数字数量为q,其中t为大于或等于1的正整数。该t个第一分类规则中的每个第一分类规则包括的k个匹配域与该k个字段一一对应。该目标分类规则包括的k个匹配域与该k个字段匹配。更具体地,该该目标分类规则包括的k个匹配域与该k个字段匹配指示该目标分类规则包括的k个匹配域中的q个数字中的第q个数字与该k个字段中的q个比特中的第q个比特匹配。更进一步,数字的值为*(即通用值)数字与比特的值为1和0的比特均匹配,数字的值为1的数字与比特的值为1的比特匹配,数字的值为0的数字与比特的值为0的比特匹配。104,该网络设备根据该目标分类规则对该分组进行处理。举例来说,所述网络设备可以是路由器。所述网络设备可以包含转发表。所述转发表可以是路由表。所述转发表包含多个表项。所述转发表包含所述第一分类规则集合。其中,每个表项包含一个分类规则。具体地,每个表项可以包含匹配域以及动作域。与表项对应的分类规则可以被包含在该表项的匹配中。所述网络设备的查找引擎在所述转发表中确定目标表项后,所述网络设备的网络处理器可以根据所述目标表项中的动作域对所述分组进行处理。所述目标表项为与所述分组匹配的表项。所述目标表项中的匹配域包含所述目标分类规则。例如,所述目标表项的动作域可以包含对所述分组进行处理的指令。或者,所述目标表项的动作域可以包含参数。所述参数可以为用于对所述分组进行处理的计算机程序中的变量赋值。例如用于对所述分组进行处理的计算机程序的变量可以是出接口。所述参数为出接口的标识。用于对所述分组进行处理的计算机程序可以是用于对所述分组执行转发处理的计算机程序。例如,该网络设备可以按照分组的类型对分组进行限速、过滤、分组统计、重定向等处理。根据上述实施例,该网络设备在确定分组的类型是无需将分类信息中的每个比特与分类规则集合中的分类规则进行比较。该网络设备只需要将该分类信息的部分比特与分类规则集合中的分类规则进行比较即可确定该目标分类规则。进一步地,所述网络设备可以根据目标分类规则对所述分组进行处理。相对于需要将分类信息中的每个比特与分类规则集合中的分类规则进行比较才能确定出目标分类规则的技术方案,实施例提供的技术方案可以减少确定目标分类规则时比较的次数,从而可以提高处理分组的效率。进一步,在一些实施例中,m’、n和q’满足以下关系:m’ q’小于2n,其中m’表示每个指示信息包括的比特数目,q’表示每个第一分类规则中的匹配域包括的比特数目。每个分类规则的长度减少。这样,在该网络设备用于存储分类规则的存储空间不变的情况下,该网络设备可以存储更多的分类规则。表1是一个该网络设备保存的m个指示信息和第一分类规则的示意。规则指示信息匹配域r100100000000011111*01r200100000000011100*10r300100000000011001*01表1如表1所示,该网络设备保存的第一分类规则包括r1、r2和r3。每个第一分类规则均包括指示信息以及一个匹配域。该指示信息共包括四个指示数字。该四个指示数字中的每个指示数字的值为0或1。因此,该四个指示数字的中的每个指示数字的长度可以为1比特。该指示信息的长度为4比特。该匹配域共包括16个数字。该16个数字中的每个数字的值可以为1、0和*。在此情况下,每个数字的长度最少为2比特。因此,该匹配域的长度至少为32比特。综上所述,该网络设备保存的三个第一分类规则中的每个第一分类规则的长度为36比特。该每个第一分类规则中的指示信息的四个指示数字分别对应于分组的源ip地址、目的ip地址、源端口号和目的端口号。该网络设备在接收到分组后,可以确定该分组的分类信息包括源ip地址、目的ip地址、源端口号和目的端口号。该网络设备可以将该分类信息划分为四个字段,这四个字段分别为该分组的源ip地址、目的ip地址、源端口号和目的端口号。该网络设备根据该指示信息,确定该分组的源端口号。然后,该网络设备可以确定该第一分类规则集合中与该分组的源端口号匹配的匹配域,该匹配域所属的第一分类规则即为该分组的目标分类规则。例如,假设该网络设备接收到的分组的源ip地址、目的ip地址、源端口号和目的端口号分别为:192.101.1.1,192.101.1.2,253,800。由于该网络设备保存的第一分类规则中的指示信息均为0010,因此该网络设备只需要从该第一分类规则集合中确定与该分组的源端口号匹配的第一分类规则即可。该源端口号的二进制值为0000000011111101。可以看出,该第一分类规则集合中的第一分类规则r1的匹配域与该分组的源端口号匹配。因此,对应于该分组的目标分类规则为该第一分类规则r1。在确定了该分组的类型后,该网络设备可以根据该分组的类型对该分组进行后续处理。进一步,该网络设备可以根据第二分类规则集合确定该第一分类规则集合。该第二分类规则集合包括t个第二分类规则。该t个第二分类规则中的第t个第二分类规则包括n个数字,t=1,…,t。该网络设备确定该第t个第二分类规则包括的m个匹配域中的每个匹配域的类型,该第t个第二分类规则包括的m个匹配域中的一个匹配域的类型为第一类型或第二类型,其中该第t个第二分类规则包括的m个匹配域中的k个匹配域的类型为该第一类型,该第t个第二分类规则包括的m个匹配域中的x个匹配域的类型为该第二类型,该第t个第二分类规则包括的m个匹配域中的k个匹配域中的第k个匹配域包括的数字数目与该k个字段中的第k个字段包括的比特的数目相等,该第t个第二分类规则包括的m个匹配域中的k个匹配域共包括q个数字,k=1,…,k。该网络设备根据该第t个第二分类规则包括的m个匹配域中的每个匹配域的类型以及该k个匹配域,确定该m个指示数字和该t个第一分类规则中的第t个第一分类规则,其中,该第t个第一分类规则包括k个匹配域,该第一规则包括的k个匹配域为该m个匹配域中的k个匹配域。更具体地,该m个指示数字与该m个匹配域一一对应。在匹配域的类型为该第一类型的情况下,与该匹配域对应的指示数字的值为第一值。在匹配域的类型为该第二类型的情况下,与该匹配域对应的指示数字的值为第二值。可选的,在一些实施例中,该网络设备确定该第t个第二分类规则包括的m个匹配域中的每个匹配域的类型,包括:该网络设备在确定该第t个第二分类规则包括的m个匹配域中的第m个匹配域包括的数字的值中包括至少一个特定值的情况下,确定该第m个匹配域的类型为该第一类型;该网络设备在确定该第t个第二分类规则包括的m个匹配域中的第m个匹配域包括的数字的值均为通用值情况下,确定该第m个匹配域的类型为该第二类型,其中,该特定值包括第一特定值和第二特定值,第一比特与该第一特定值匹配,第二比特与该第二特定值匹配,该第一比特与该第二比特均与该通用值匹配,该第一比特为值为1的比特,该第二比特为值为0的比特。可选的,在一些实施例中,该第m个匹配域可以只包括一个数字(adigit)。在此情况下,该第m个匹配域包括的数字的值中包括至少一个特定值是指该第m个匹配域包括的唯一的一个数字的值为特定值。类似的,该第m个匹配域包括的数字的值均为通用值是指该第m个匹配域包括的唯一的一个数字的值为通用值。在另一些实施例中,该第m个匹配域可以包括一个数字序列(asequenceofdigits)。该数字序列由两个或两个以上的数字组成。在此情况下,该第m个匹配域包括的数字的值中包括至少一个特定值是指该第m个匹配域包括数字序列中的至少一个数字的值为特定值。类似的,该第m个匹配域包括的数字的值均为通用值是指该第m个匹配域包括的数字序列中所有数字的值均为通用值。例如,表2是一个第二分类规则的示意。表2如表2所示的第二分类规则集合包括r1’、r2’和r3’。这三个第二分类规则中的每个第二分类规则的匹配域1、匹配域2、匹配域3和匹配域4分别对应于分组的源ip地址、目的ip地址、源端口号和目的端口号。如表2所示,这三个第二分类规则中的每个第二分类规则的匹配域1、匹配域2和匹配域4的数字的值均为通用值。因此,匹配域1、匹配域2和匹配域4的类型为第二类型。匹配域3中仅有一个数字的值为通用值。因此匹配域3的类型为第一类型。这样,与匹配域1、匹配域2和匹配域4对应的指示数字的值均为0,与匹配域3对应的指示数字的值为1。换句话说,该网络设备可以确定这三个第二分类规则的指示信息均为0010。此外,该网络设备可以确定出每个第二分类规则的匹配域3为对应的第一分类规则的匹配域。这样,该网络设备可以确定出表1中的r1为与表2中的r1’对应的分类规则,表1中的r2为与表2中的r2’对应的分类规则,表1中的r3为与表2中的r3’对应的分类规则。可选的,在另一些实施例中,在p为大于或等于2的正整数的情况下,该网络设备确定该m个匹配域中的每个匹配域的类型,包括:该网络设备确定该第t个第二分类规则包括的m个匹配域中的第m个匹配域的数字的值是否与该t个第二分类规则中除该第t个第二分类规则以外的第二分类规则包括的m个匹配域中的第m个匹配域的数字的值相同;若否,则确定该第t个第二分类规则包括的m个匹配域中的第m个匹配域的类型为该第一类型;若是,则确定该第t个第二分类规则包括的m个匹配域中的第m个匹配域的类型为该第二类型。例如,表3是一个第二分类规则的示意。表3如表3所示的第二分类规则集合包括r1’、r2’和r3’。这三个第二分类规则中的每个第二分类规则的匹配域1、匹配域2、匹配域3和匹配域4分别对应于分组的源ip地址、目的ip地址、源端口号和目的端口号。如表2所示,这三个第二分类规则中的每个第二分类规则的匹配域2和匹配域4的数字的值均为通用值。因此,匹配域2和匹配域4的类型为第二类型。这三个第二分类规则中的每个第二分类规则的匹配域1的数字虽然包括通用值和特定值,但是这三个第二分类规则的匹配域1均相同。在此情况下,该网络设备也可以将匹配域1的类型确定为第二类型。匹配域3中仅有一个数字的值为通用值,且这三个第二分类规则的匹配域3均不相同。因此匹配域3的类型为第一类型。这样,与匹配域1、匹配域2和匹配域4对应的指示数字的值均为0,与匹配域3对应的指示数字的值为1。换句话说,该网络设备可以确定这三个第二分类规则的指示信息均为0010。此外,该网络设备可以确定出每个第二分类规则的匹配域3为对应的第一分类规则的匹配域。这样,该网络设备可以确定出表1中的r1为与表2中的r1’对应的分类规则,表1中的r2为与表2中的r2’对应的分类规则,表1中的r3为与表2中的r3’对应的分类规则。该网络设备保存如表2所示的第二分类规则时至少需要192比特,而在保存如表1的第一分类规则时仅需36比特。因此,根据本申请实施例提供的技术方案,该网络设备保存一条分类规则所需的存储空间减小。这样,该网络设备在总存储空间不变的情况下可以保存更多的分类规则。在该网络设备保存第一分类规则的指示信息部分均相同的情况下,该网络设备可以仅保存一条指示信息。这样可以进一步减少该网络设备保存该第一分类规则时需要的存储空间。如表1所示的三个第一分类规则的指示信息均相同。在另一些实施例中,该网络设备保存的不同第一分类规则的指示信息也可以不相同。例如,该网络设备还可以保存如表4所示的第一分类规则。规则指示信息匹配域1匹配域2r400010000000011111*01/r500110000000011100*100000000011100***r61010110000000110110000000001********0000000011001*01表4该网络设备利用如表4所示的第一分类规则确定接收到的分组的类型的具体过程与根据表1确定分组的类型的具体过程相似,在此就不必赘述。该网络设备如何确定如表4所示的第一分类规则的具体过程与该网络设备如何确定如表1所示的第一分类规则的具体过程也相似,在此就不必赘述。表1至表4所示的例子中每个指示数字的长度为1比特。在另一些实施例中,每个指示数字的长度可以为2比特。具体地,在一些情况下,比较规则中一个或多个匹配域中的数字可能仅为0或1,另一些匹配域中的数字包括0、1和*。在此情况下,可以通过不同的指示数字区分这两种匹配域以及无需匹配的字段。由于需要区分三种不同的字段,因此指示数字需要至少2比特。例如,指示数字00表示与该指示数字对应的字段无需进行匹配,指示数字10表示与该指示数字对应的字段需要进行匹配且匹配域中的数字包括0、1和*,指示数字11表示与该指示数字对应的字段需要进行匹配且匹配域中的数字仅包括0或1。这样,在存储匹配域时,11对应的匹配域中的每个数字可以仅为1比特。例如,表5是另一个第一分类规则集合的示意。规则指示信息匹配域1匹配域2r100-00-10-110000000011111*010000000011111001r200-00-10-110000000011100*100000000011100110r300-00-10-110000000011001*010000000011001101表5如表5所示,该网络设备保存的第一分类规则包括r1、r2和r3。每个第一分类规则均包括指示信息以及两个匹配域。该指示信息共包括四个指示数字。该四个指示数字的中的每个指示数字的长度为2比特。该指示信息的长度为8比特。该四个指示数字分别为00,00,10和11。可以理解的是,表5中指示信息中符号“-”仅是为了在理解本申请实施例时更好地区分不同的指示数字。在实际应用中,该网络设备保存的指示信息中并不会包括符号“-”。该匹配域1共包括16个数字。该匹配域1包括的16个数字中的每个数字的值可以为1、0和*。在此情况下,该匹配域1包括的16个数字中的每个数字的长度最少为2比特。因此,该匹配域的长度至少为32比特。该匹配域2也包括16个数字。该匹配域2包括的16个数字的值为0或1。在此情况下,该匹配域2包括的16个数字中的每个数字的长度可以为1比特。因此,该匹配域的长度最少可以为16比特。综上所述,该网络设备保存的三个第一分类规则中的每个第一分类规则的长度为56比特。在保存如表5所示的第一分类规则时如果该网络设备依然采用如表1所示的方法,指示信息的长度可以缩短为4比特,匹配域2的长度至少为32比特。因此,在保存如表5所示的第一分类规则时如果采用图1所示的方法时一条第一分类规则的长度为68比特。因此,上述实施例能够进一步减少保存第一分类规则所需的比特数。该网络设备在接收到分组时可以根据第一分类规则中指示数字的值确定该分组中的每个字段是否是需要进行比较的字段。为方便描述,可以称比特值为10和11的指示数字为第一值,比特值为00的指示数字为第二值。若指示数字的值为第一值,则该指示数字对应的字段需要进行比较;若指示数字的值为第二值,则该指示数字对应的字段无需进行比较。该网络设备确定分组的类型的具体实施方式与上述例子中网络设备确定分组的类型的具体实施方式类似,在此就不必赘述。该网络设备确定如表5所示的第一分类规则集合的具体实施方式与上述例子中网络设备确定如表1所示的第一分类规则的具体实施方式类似,在此就不必赘述。可选的,在一些实施例中,该网络设备接收到的任一个分组都与该网络设备保存的至少一个第一分类规则匹配。在此情况下,该目标分类规则为该网络设备保存的一个第一分类规则,该网络设备可以直接确定该分组的类型。进一步,在一些实施例中,该网络设备确定的分组的类型可能会与两个或两个以上的第一分类规则均匹配。在此情况下,该分组的类型为优先级最高的第一分类规则的类型。该目标分类规则为该网络设备保存的一个第一分类规则。可选的,在另一些实施例中,该网络设备接收到的分组可能与该网络设备所保存的任一个第一分类规则均不匹配。在此情况下,该网络设备可以确定这个分组的类型为一个特殊类型。类型为该特殊类型的分组也会有一个对应的处理。该网络设备在确定该分组的类型为该特殊类型后,可以对该分组进行相应的处理。或者,换句话说,可以认为存在一个特殊的分类规则,该网络设备并没有保存该特殊的分类规则。但是,在该网络设备接收到的分组与该网络设备保存的任一个第一分类规则均不匹配的情况下,可以认为该分组与该特殊的分类规则匹配。进一步,可以认为该特殊的分类规则也包括指示信息和匹配域,根据该指示信息确定的该分组的一个或多个字段与该匹配域的匹配。该特殊的分类规则对应的类型即为该特殊类型。图2是根据本申请实施例提供的一种网络设备的结构框图。如图2所示,网络设备200包括:接收单元201,存储单元202和处理单元203。接收单元201,用于接收分组,其中该分组包括分类信息,该分类信息包括m个字段,该m个字段包括x个字段和k个字段,该m个字段中的比特的数量为n,该x个字段中的比特的数量为p,该k个字段中的比特的数量为q,n为大于或等于2的正整数,n等于q与p的和,m等于k与x的和,q、p、k和x均为正整数,m为大于或等于2的正整数。存储单元202,用于存储指示信息和第一分类规则集合。处理单元203,用于根据存储单元202保存的指示信息,确定该m个字段中的该k个字段,该指示信息包括m个指示数字,该m个字段与该m个指示数字一一对应,该k个字段中每个字段对应的指示数字的值等于第一值,该x个字段中每个字段对应的指示数字的值等于第二值,该第一值不等于该第二值;处理单元203,还用于根据存储单元202保存的第一分类规则集合以及该k个字段,确定目标分类规则,该目标分类规则是该第一分类规则集合中的一个第一分类规则,该第一分类规则集合包括t个第一分类规则,该t个第一分类规则中的每个第一分类规则包括k个匹配域,该t个第一分类规则中的每个第一分类规则包括的k个匹配域中的数字的数量为q,该t个第一分类规则中的每个第一分类规则包括的k个匹配域与该k个字段一一对应,该目标分类规则包括的k个匹配域与该k个字段匹配,该目标分类规则包括的k个匹配域与该k个字段一一对应,t为大于等于1的正整数。处理单元203,还用于根据该目标分类规则对该分组进行处理。可选的,在一些实施例中,m’、n和q’满足以下关系:m’ q’小于2n,其中m’表示该m个指示数字包括的比特的数量,q’表示该t个第一分类规则中的每个第一分类规则包括的k个匹配域包括的比特的数量。接收单元201可以由收发器或接收器实现,存储单元202可以由存储器实现,处理单元203可以由处理器实现。接收单元201、存储单元202和处理单元203的具体操作和功能可以参考图1的方法,为了避免重复,在此就不必赘述。图3是根据本申请实施例提供的网络设备的结构框图。如图3所示的网络设备300包括:处理器301、存储器302和收发器303。网络设备300中的各个组件通过总线系统304耦合在一起,其中总线系统304除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线系统304。上述本发明实施例揭示的方法可以应用于处理器301中,或者由处理器301实现。处理器301可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器301中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器301可以是通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存取存储器(randomaccessmemory,ram)、闪存、只读存储器(read-onlymemory,rom)、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器302,处理器301读取存储器302中的指令,结合其硬件完成上述方法的步骤。收发器303,用于接收分组,其中该分组包括分类信息,该分类信息包括m个字段,该m个字段包括x个字段和k个字段,该m个字段中的比特的数量为n,该x个字段中的比特的数量为p,该k个字段中的比特的数量为q,n为大于或等于2的正整数,n等于q与p的和,m等于k与x的和,q、p、k和x均为正整数,m为大于或等于2的正整数。存储器302,用于存储指示信息和第一分类规则集合。处理器303,用于根据存储器302保存的指示信息,确定该m个字段中的该k个字段,该指示信息包括m个指示数字,该m个字段与该m个指示数字一一对应,该k个字段中每个字段对应的指示数字的值等于第一值,该x个字段中每个字段对应的指示数字的值等于第二值,该第一值不等于该第二值;处理器303,还用于根据存储器302保存的第一分类规则集合以及该k个字段,确定目标分类规则,该目标分类规则是该第一分类规则集合中的一个第一分类规则,该第一分类规则集合包括t个第一分类规则,该t个第一分类规则中的每个第一分类规则包括k个匹配域,该t个第一分类规则中的每个第一分类规则包括的k个匹配域中的数字的数量为q,该t个第一分类规则中的每个第一分类规则包括的k个匹配域与该k个字段一一对应,该目标分类规则包括的k个匹配域与该k个字段匹配,该目标分类规则包括的k个匹配域与该k个字段一一对应,t为大于等于1的正整数。处理器303,还用于根据该目标分类规则对该分组进行处理。处理器301、存储器302和收发器303的具体操作和功能可以参考图1的方法,为了避免重复,在此就不必赘述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。当前第1页1 2 3 
技术特征:1.一种处理分组的方法,其特征在于,所述方法包括:
网络设备接收分组,其中所述分组包括分类信息,所述分类信息包括m个字段,所述m个字段包括x个字段和k个字段,所述m个字段中的比特的数量为n,所述x个字段中的比特的数量为p,所述k个字段中的比特的数量为q,n为大于或等于2的正整数,n等于q与p的和,m等于k与x的和,q、p、k和x均为正整数,m为大于或等于2的正整数,所述分类信息包括以下信息中的一个或多个:源互联网协议ip地址、目的ip地址、源端口号和目的端口号;
所述网络设备根据指示信息,确定所述m个字段中的所述k个字段,所述指示信息包括m个指示数字,所述m个字段与所述m个指示数字一一对应,所述k个字段中每个字段对应的指示数字的值等于第一值,所述x个字段中每个字段对应的指示数字的值等于第二值,所述第一值不等于所述第二值;
所述网络设备根据所述网络设备保存的第一分类规则集合以及所述k个字段,确定目标分类规则,所述目标分类规则是所述第一分类规则集合中的一个第一分类规则,所述第一分类规则集合包括t个第一分类规则,所述t个第一分类规则中的每个第一分类规则包括k个匹配域,所述t个第一分类规则中的每个第一分类规则包括的k个匹配域中的数字的数量为q,所述t个第一分类规则中的每个第一分类规则包括的k个匹配域与所述k个字段一一对应,所述目标分类规则包括的k个匹配域与所述k个字段匹配,所述目标分类规则包括的k个匹配域与所述k个字段一一对应,t为大于等于1的正整数;
所述网络设备根据所述目标分类规则对所述分组进行处理。
2.如权利要求1所述的方法,其特征在于,m’、n和q’满足以下关系:m’ q’小于2n,其中m’表示所述m个指示数字包括的比特的数量,q’表示所述t个第一分类规则中的每个第一分类规则包括的k个匹配域包括的比特的数量。
3.如权利要求1或2所述的方法,其特征在于,在所述网络设备根据所述网络设备保存的指示信息,确定m个字段中的k个字段之前,所述方法还包括:
所述网络设备获取第二分类规则集合,所述第二分类规则集合包括t个第二分类规则,其中,所述t个第二分类规则中的第t个第二分类规则的数字的数量为n,所述第t个第二分类规则包括m个匹配域,所述第t个第二分类规则包括的m个匹配域中的第m个匹配域包括的数字的数量与所述m个字段中的第m个字段包含的比特的数量相等,t=1,…,t,m=1,…,m;
所述网络设备确定所述第t个第二分类规则包括的m个匹配域中的每个匹配域的类型,所述第t个第二分类规则包括的m个匹配域中的一个匹配域的类型为第一类型或第二类型,所述第t个第二分类规则包括的m个匹配域中的k个匹配域的类型为所述第一类型,所述第t个第二分类规则包括的m个匹配域中的x个匹配域的类型为所述第二类型,所述第t个第二分类规则包括的m个匹配域中的k个匹配域中的第k个匹配域包括的数字的数量与所述k个字段中的第k个字段包括的比特的数量相等,所述第t个第二分类规则包括的m个匹配域中的k个匹配域中的数字的数量为q,k=1,…,k;
所述网络设备根据所述第t个第二分类规则包括的m个匹配域中的每个匹配域的类型以及所述第t个第二分类规则包括的m个匹配域中的k个匹配域,确定所述m个指示数字和所述t个第一分类规则中的第t个第一分类规则,其中,所述第t个第一分类规则包括k个匹配域,所述第一分类规则包括的k个匹配域为所述m个匹配域中的k个匹配域。
4.如权利要求3所述的方法,其特征在于,所述网络设备确定所述第t个第二分类规则包括的m个匹配域中的每个匹配域的类型,包括:
所述网络设备在确定所述第t个第二分类规则包括的m个匹配域中的第m个匹配域包括的数字的值中包括至少一个特定值的情况下,确定所述第m个匹配域的类型为所述第一类型;
所述网络设备在确定所述第t个第二分类规则包括的m个匹配域中的第m个匹配域包括的数字的值均为通用值情况下,确定所述第m个匹配域的类型为所述第二类型,其中,所述特定值包括第一特定值和第二特定值,第一比特与所述第一特定值匹配,第二比特与所述第二特定值匹配,所述第一比特与所述第二比特均与所述通用值匹配,所述第一比特的值为1,所述第二比特的值为0。
5.如权利要求3所述的方法,其特征在于,在p为大于或等于2的正整数的情况下,所述网络设备确定所述第t个第二分类规则包括的m个匹配域中的每个匹配域的类型,包括:
所述网络设备确定所述第t个第二分类规则包括的m个匹配域中的第m个匹配域包括的数字的值是否与所述t个第二分类规则中除所述第t个第二分类规则以外的第二分类规则包括的m个匹配域中的第m个匹配域包括的数字的值均相同;
若否,则确定所述第t个第二分类规则包括的m个匹配域中的第m个匹配域的类型为所述第一类型;
若是,则确定所述第t个第二分类规则包括的m个匹配域中的第m个匹配域的类型为所述第二类型。
6.一种网络设备,其特征在于,所述网络设备包括:
接收单元,用于接收分组,其中所述分组包括分类信息,所述分类信息包括m个字段,所述m个字段包括x个字段和k个字段,所述m个字段中的比特的数量为n,所述x个字段中的比特的数量为p,所述k个字段中的比特的数量为q,n为大于或等于2的正整数,n等于q与p的和,m等于k与x的和,q、p、k和x均为正整数,m为大于或等于2的正整数,所述分类信息包括以下信息中的一个或多个:源互联网协议ip地址、目的ip地址、源端口号和目的端口号;
存储单元,用于存储指示信息和第一分类规则集合;
处理单元,用于根据指示信息确定所述m个字段中的所述k个字段,所述指示信息包括m个指示数字,所述m个字段与所述m个指示数字一一对应,所述k个字段中每个字段对应的指示数字的值等于第一值,所述x个字段中每个字段对应的指示数字的值等于第二值,所述第一值不等于所述第二值;
所述处理单元,还用于根据所述存储单元保存的第一分类规则集合以及所述k个字段,确定目标分类规则,所述目标分类规则是所述第一分类规则集合中的一个第一分类规则,所述第一分类规则集合包括t个第一分类规则,所述t个第一分类规则中的每个第一分类规则包括k个匹配域,所述t个第一分类规则中的每个第一分类规则包括的k个匹配域中的数字的数量为q,所述t个第一分类规则中的每个第一分类规则包括的k个匹配域与所述k个字段一一对应,所述目标分类规则包括的k个匹配域与所述k个字段匹配,所述目标分类规则包括的k个匹配域与所述k个字段一一对应,t为大于等于1的正整数;
所述处理单元,还用于根据所述目标分类规则对所述分组进行处理。
7.如权利要求6所述的网络设备,其特征在于,m’、n和q’满足以下关系:m’ q’小于2n,其中m’表示所述m个指示数字包括的比特的数量,q’表示所述t个第一分类规则中的每个第一分类规则包括的k个匹配域包括的比特的数量。
8.如权利要求6或7所述的网络设备,其特征在于,
所述处理单元,还用于获取第二分类规则集合,所述第二分类规则集合包括t个第二分类规则,其中,所述t个第二分类规则中的第t个第二分类规则的数字的数量为n,所述第t个第二分类规则包括m个匹配域,所述第t个第二分类规则包括的m个匹配域中的第m个匹配域包括的数字的数量与所述m个字段中的第m个字段包含的比特的数量相等,t=1,…,t,m=1,…,m;
所述处理单元,还用于确定所述第t个第二分类规则包括的m个匹配域中的每个匹配域的类型,所述第t个第二分类规则包括的m个匹配域中的一个匹配域的类型为第一类型或第二类型,所述第t个第二分类规则包括的m个匹配域中的k个匹配域的类型为所述第一类型,所述第t个第二分类规则包括的m个匹配域中的x个匹配域的类型为所述第二类型,所述第t个第二分类规则包括的m个匹配域中的k个匹配域中的第k个匹配域包括的数字的数量与所述k个字段中的第k个字段包括的比特的数量相等,所述第t个第二分类规则包括的m个匹配域中的k个匹配域中的数字的数量为q,k=1,…,k;
所述处理单元,还用于根据所述第t个第二分类规则包括的m个匹配域中的每个匹配域的类型以及所述第t个第二分类规则包括的m个匹配域中的k个匹配域,确定所述m个指示数字和所述t个第一分类规则中的第t个第一分类规则,其中,所述第t个第一分类规则包括k个匹配域,所述第一分类规则包括的k个匹配域为所述m个匹配域中的k个匹配域;
所述存储单元,还用于保存所述处理单元确定的所述m个指示数字和所述t个第一分类规则中的第t个第一分类规则。
9.如权利要求8所述的网络设备,其特征在于,所述处理单元,具体用于在确定所述第t个第二分类规则包括的m个匹配域中的第m个匹配域包括的数字的值中包括至少一个特定值的情况下,确定所述第m个匹配域的类型为所述第一类型;
所述处理单元,具体用于在确定所述第t个第二分类规则包括的m个匹配域中的第m个匹配域包括的数字的值均为通用值情况下,确定所述第m个匹配域的类型为所述第二类型,其中,所述特定值包括第一特定值和第二特定值,第一比特与所述第一特定值匹配,第二比特与所述第二特定值匹配,所述第一比特与所述第二比特均与所述通用值匹配,所述第一比特的值为1,所述第二比特的值为0。
10.如权利要求8所述的网络设备,其特征在于,所述处理单元,具体用于在p为大于或等于2的正整数的情况下,确定所述第t个第二分类规则包括的m个匹配域中的第m个匹配域包括的数字的值是否与所述t个第二分类规则中除所述第t个第二分类规则以外的第二分类规则包括的m个匹配域中的第m个匹配域包括的数字的值均相同;
若否,则确定所述第t个第二分类规则包括的m个匹配域中的第m个匹配域的类型为所述第一类型;
若是,则确定所述第t个第二分类规则包括的m个匹配域中的第m个匹配域的类型为所述第二类型。
技术总结本申请实施例提供处理分组的方法和网络设备。该方法包括:网络设备接收分组,其中该分组包括分类信息,该分类信息包括M个字段;该网络设备根据该网络设备保存的指示信息,确定该M个字段中的该K个字段;该网络设备根据该网络设备保存的第一分类规则集合以及该K个字段,确定目标分类规则并根据该目标分类规则对该分组进行处理。根据上述技术方案,该网络设备在确定分组的类型是无需使用分类信息中的每个比特。该网络设备只需要将该分类信息的部分比特与分类规则进行比较即可确定该分组的类型。这样,可以减少确定分组类型时比较的次数,从而可以提高处理分组的效率。
技术研发人员:胡晶;刘淑英
受保护的技术使用者:华为技术有限公司
技术研发日:2017.03.13
技术公布日:2021.08.03