一种多域流分类流水线的实现方法

文档序号:7756333阅读:195来源:国知局
专利名称:一种多域流分类流水线的实现方法
技术领域
本发明属于计算机网络QoS (服务质量)领域,尤其涉及一种多域流分类流水线的实现方法。
背景技术
QoS全称为“Quality of Service”,中文名为“服务质量”。QoS是网络的一种安全机制,是用来解决网络延迟和阻塞等问题的一种技术。流分类采用一定的规则识别符合某类特征的报文,它是有区别地进行服务的前提和基础。如图1所示,流分类的基本原理就是,数据包中的多个域根据分类参数以及搜索引擎去规则库中匹配。通过这种匹配就可以达到流分类的目的,这也是区别地进行服务的前提和基础。目前常用的硬件实现^Ternary CAM。Ternary CAM (简称T-CAM,是一个硬件设备,它能起到和完全相关联存储器一样的功用)具有最快的分类时间,但是价格比较高,耗电量大,只适合小规则库。

发明内容
本发明要解决的技术问题是提供一种多域流分类流水线的实现方法,用 SRAM (SRAM是英文Matic RAM的缩写,它是一种具有静止存取功能的内存,不需要刷新电路即能保存它内部存储的数据)替换Ternary CAM,该方法功耗小,成本低,处理带宽高, RULE规则可以灵活扩大。为解决上述技术问题,本发明一种多域流分类流水线的实现方法,包括如下步骤(1)接收到数据包后进行数据包信息域的提取;(2)建立多个搜索模板,该搜索模板具有多比特域选择器、查找域掩码和联合标记;(3)采用流水线方式通过步骤( 建立的搜索模板选出160比特宽度的查找域,该查找域是经过掩码过滤的;(4)用步骤(3)的查找域合上搜索模板的序列号,得到一个新查找域,用该新查找域进行哈希运算去查RULE规则表,进而去匹配RULE行为表;(5)根据匹配结果,判断最终规则行为。在步骤(1)中,所述数据包信息域包括IP头,VLAN和MAC地址;所述进行数据包信息域的提取具体为对收到的数据包解析,得到该数据包的格式,从而可以获取该数据包信息域。在步骤(1)中,基于多维查找转换为一维查找的算法,把流分类查找的各个数据包信息域连接起来组成一个查找域,该查找域的宽度为160比特。在步骤⑵中,所述多比特域选择器用于选择相关的数据包信息域;所述查找域掩码用于去除规则不关心的数据包信息域的比特;所述联合标记用于表示是否联合下一个搜索模板做搜索。步骤C3)具体为采用流水线方式分4个时钟选出160比特的查找域,第一个时钟选择从M比特到19比特的相关域,第二个时钟选择从18比特到13比特的相关域,第三个时钟选择从12比特到7比特的相关域,第四个时钟选择从6比特到1比特的相关域,每次都记录填充的起始位置,查找域初始值为0。在步骤(3)中,所述查找域经过掩码过滤采用查找域和查找域掩码做逻辑与的方法进行过滤。在步骤中,所述搜索模板的序列号的比特数量根据搜索模板的数量来决定。在步骤中,如果该搜索模板的联合标记有效,那么就保留该搜索模板的哈希运算的结果,迭代入下一个搜索模板的哈希运算,得到结果去查RULE规则表,进而去匹配 RULE行为表。在步骤(5)中,由于有多个搜索模板可以命中多条规则,那么根据每条规则的优先级去判断最终规则行为。在步骤(5)中,判断最终规则行为具体采用如下方法每条规则都配置有优先级, 因此判断就根据每条规则的优先级高低,从高到底;如果优先级相同,就根据搜索模板的序列号大小,从大到小判断。本发明的有益效果在于本发明的技术方案描述了多域流分类流水线的实现方法,这种方法硬件实现简单,搜索时间只需一个时钟类似Ternary CAM(用SRAM替换 Ternary CAM),功耗小,成本低,处理带宽高,RULE规则可以灵活扩大。


图1是流分类算法的基本原理示意图;图2是本发明流分类流程示意图;图3是本发明方法中一种流水线实现查找域的示意图;图4是本发明方法中另一种流水线实现查找域的示意图;图5是本发明中规则搜索和比较示意图。
具体实施例方式如图2所示,本发明一种多域流分类流水线的实现方法,具体包括如下步骤1.接收到数据包开始流分类;2.对接收到包进行数据包信息域的提取(如IP头,VLAN,MAC地址等等); VLAN(Virtual Local Area Network)又称虚拟局域网,是指在交换局域网的基础上,采用网络管理软件构建的可跨越不同网段、不同网络的端到端的逻辑网络;MAC地址(Media Access Control地址)或称为硬体位址,用来定义网路设备的位置;基于多维查找转换为一维查找的算法,即把流分类查找的各个数据包信息域连接起来组成一个查找域(宽度 160比特);3.流水线实现查找域去匹配规则表建立多个搜索模板,该搜索模板具有多比特域选择器(用于选择相关的数据包信息域)、查找域掩码(用于去除规则不关心的数据包信息域的比特)和联合标记(用于表示是否联合下一个搜索模板做搜索);由于多比特域选择器在一个时钟内实现比较困难,因此采用流水线方式实现,即每个时钟实现6种域的选择;通过搜索模板可以得到一个有160比特宽度的查找域,并且已经是经过掩码过滤的;
4.规则搜索和比较用该查找域合上搜索模板的序列号,得到一个新查找域。用该新查找域进行哈希算法去查RULE规则表(该RULE规则表内的规则要和搜索模板进行比较),进而去匹配RULE行为表(该RULE行为表是命中RULE规则表后需要对数据包做的行为),得到最终规则行为。哈希算法将任意长度的二进制值映射为固定长度的较小二进制值,这个小的二进制值称为哈希值。哈希表是根据设定的哈希函数H(key)和处理冲突方法将一组关键字映象到一个有限的地址区间上,并以关键字在地址区间中的象作为记录在表中的存储位置,这种表称为哈希表或散列,所得存储位置称为哈希地址或散列地址。作为线性数据结构与表格和队列等相比,哈希表无疑是查找速度比较快的一种。RULE规则表即哈希表。 另外对于IP五元组(通常是指由源IP地址,源端口,目的IP地址,目的端口,和传输层协议号这五个量组成的一个集合)的查找由于IPV6 (IPv6是互联网协议第四版(IPv4) 的更新版;最初它在IETF的IPng选取过程中胜出时称为互联网下一代网际协议(IPng), IPv6是被正式广泛使用的第二版互联网协议),超过了 160比特,因此用两个搜索模板联合进行哈希算法得到RULE规则。下面给出本发明在IPDSLAM-10G芯片中的实施例,具体包括如下步骤1.接收到数据包开始流分类;2.对接收到的数据包进行数据包信息域的提取(如IP头,VLAN,MAC地址等等)。 对收到的数据包解析,得到该数据包的格式,从而可以获取该数据包信息域。基于多维查找转换为一维查找的算法(即把多个信息域分别搜索的多维查找算法转换为合成一个信息域去搜索的一维查找算法),即把流分类查找的各个数据包信息域连接起来组成一个查找域(宽度160比特)。3.建立8个搜索模板,该搜索模板具有M个比特的域选择器(用于选择相关的数据包信息域)、160比特的查找域掩码(用于去除规则不关心的数据包信息域的比特)和联合标记(用于表示是否联合下一个搜索模板做搜索)。查找域初始值为0 (见图3和图4中的查找域初始状态为PAD ZERO)。采用流水线方式分4个时钟选出160比特的查找域,第一个时钟选择从M比特到19比特的相关域(例如,第一个时钟选择24比特、23比特、19比特的相关域,即field24、field23、fieldl9,见图3和图4),第二个时钟选择从18比特到13比特的相关域(例如,第二个时钟选择18比特、13比特的相关域,即fieldl8、fieldl3,见图3和图4),第三个时钟可以选择从12比特到7比特的相关域(例如,第三个时钟选择12比特、11比特的相关域,即fieldl2、fieldll, 见图3和图4),第四个时钟可以选择从6比特到1比特的相关域(例如,如图3所示,第四个时钟选择1比特的相关域,即fieldl ;如图4所示,第四个时钟选择2比特的相关域,即 field2),每次都记录填充的起始位置。域选择器的选择原则是高比特的优先选择,放置到查找域的高位。如果160比特的查找域被填满后就不再填充了。如果查找域空间只能容下某个信息域的一部分,那么就把该信息域的剩余部分剔除(如图4所示,第四个时钟选择2 比特的相关域(field》高比特填充,该查找域空间只能容下该2比特的相关域(field2) 的一部分,那么就把该2比特的相关域(field》的剩余部分剔除)。如果选择相关信息域填不满,则查找域后续比特保持0 (PAD ZERO)不变。同时为了减少域选择器的逻辑,M比特的域选择器按照所选数据包信息域宽度的大小从小到大排列。4.如图5所示,规则搜索和比较用该查找域和域掩码(即查找域掩码)做逻辑与(AND)(即该查找域经过查找域掩码过滤),再合上搜索模板的3比特的序列号(这里合上搜索模板的多少比特的序列号是根据有多少搜索模板决定的,8个搜索模板对应的就是 3比特的序列号,16个搜索模板对应的就是4比特的序列号,32个搜索模板对应的就是5比特的序列号,因此合上多少比特序列号应根据搜索模板的数量来决定),得到一个163比特的新查找域。用该新查找域进行哈希运算去查RULE TABLE (RULE规则表),比较新查找域与 RULE规则表内的规则是否匹配,如RULE规则表内有匹配的规则,再进而去匹配RULE行为表 (该RULE行为表是命中RULE规则表后需要对数据包做的行为)。如果该搜索模板的联合标记有效,那么就保留本搜索模板的哈希运算的结果,迭代入下一个搜索模板的哈希运算, 得到结果去查RULE规则表,进而去匹配RULE行为表。5.由于有8个模板可以最多命中8条RULE (规则),那么根据每条RULE (规则)的优先级去判断最终的规则行为。每条RULE都配置有优先级,因此判断就根据每条规则的优先级高低,从高到底,例如命中8条RULE,选择其中优先级最高的RULE在RULE行为表中对应的行为,即得到最终的规则行为。如果优先级相同,就根据搜索模板的序列号大小,从大到小判断。例如,8条RULE中有2条RULE的优先级最高且优先级相同,则选择该2条RULE 的搜索模板的序列号大的那条RULE在RULE行为表中对应的行为,即得到最终的规则行为。
权利要求
1.一种多域流分类流水线的实现方法,其特征在于,包括如下步骤(1)接收到数据包后进行数据包信息域的提取;(2)建立多个搜索模板,该搜索模板具有多比特域选择器、查找域掩码和联合标记;(3)采用流水线方式通过步骤( 建立的搜索模板选出160比特宽度的查找域,该查找域是经过掩码过滤的;(4)用步骤(3)的查找域合上搜索模板的序列号,得到一个新查找域,用该新查找域进行哈希运算去查RULE规则表,进而去匹配RULE行为表;(5)根据匹配结果,判断最终规则行为。
2.如权利要求1所述的多域流分类流水线的实现方法,其特征在于,在步骤(1)中,所述数据包信息域包括IP头,VLAN和MAC地址;所述进行数据包信息域的提取具体为对收到的数据包解析,得到该数据包的格式,从而可以获取该数据包信息域。
3.如权利要求1或2所述的多域流分类流水线的实现方法,其特征在于,在步骤(1) 中,基于多维查找转换为一维查找的算法,把流分类查找的各个数据包信息域连接起来组成一个查找域,该查找域的宽度为160比特。
4.如权利要求1所述的多域流分类流水线的实现方法,其特征在于,在步骤O)中,所述多比特域选择器用于选择相关的数据包信息域;所述查找域掩码用于去除规则不关心的数据包信息域的比特;所述联合标记用于表示是否联合下一个搜索模板做搜索。
5.如权利要求1所述的多域流分类流水线的实现方法,其特征在于,步骤(3)具体为 采用流水线方式分4个时钟选出160比特的查找域,第一个时钟选择从M比特到19比特的相关域,第二个时钟选择从18比特到13比特的相关域,第三个时钟选择从12比特到7 比特的相关域,第四个时钟选择从6比特到1比特的相关域,每次都记录填充的起始位置, 查找域初始值为0。
6.如权利要求1所述的多域流分类流水线的实现方法,其特征在于,在步骤(3)中,所述查找域经过掩码过滤采用查找域和查找域掩码做逻辑与的方法进行过滤。
7.如权利要求5所述的多域流分类流水线的实现方法,其特征在于,在步骤(4)中,所述搜索模板的序列号的比特数量根据搜索模板的数量来决定。
8.如权利要求1所述的多域流分类流水线的实现方法,其特征在于,在步骤(4)中,如果该搜索模板的联合标记有效,那么就保留该搜索模板的哈希运算的结果,迭代入下一个搜索模板的哈希运算,得到结果去查RULE规则表,进而去匹配RULE行为表。
9.如权利要求1所述的多域流分类流水线的实现方法,其特征在于,在步骤(5)中,由于有多个搜索模板可以命中多条规则,那么根据每条规则的优先级去判断最终规则行为。
10.如权利要求9所述的多域流分类流水线的实现方法,其特征在于,在步骤(5)中,判断最终规则行为具体采用如下方法每条规则都配置有优先级,因此判断就根据每条规则的优先级高低,从高到底;如果优先级相同,就根据搜索模板的序列号大小,从大到小判断。
全文摘要
本发明公开了一种多域流分类流水线的实现方法,包括如下步骤(1)接收到数据包后进行数据包信息域的提取;(2)建立多个搜索模板,该搜索模板具有多比特域选择器、查找域掩码和联合标记;(3)采用流水线方式通过步骤(2)建立的搜索模板选出160比特宽度的查找域,该查找域是经过掩码过滤的;(4)用步骤(3)的查找域合上搜索模板的序列号,得到一个新查找域,用该新查找域进行哈希运算去查RULE规则表,进而去匹配RULE行为表;(5)根据匹配结果,判断最终规则行为。该方法功耗小,成本低,处理带宽高,RULE规则可以灵活扩大。
文档编号H04L12/56GK102377581SQ20101024821
公开日2012年3月14日 申请日期2010年8月9日 优先权日2010年8月9日
发明者何运锋, 蔡云阳 申请人:高通创锐讯通讯科技(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1