CN104579970B - 一种IPv6报文的策略匹配装置 - Google Patents
一种IPv6报文的策略匹配装置 Download PDFInfo
- Publication number
- CN104579970B CN104579970B CN201310522858.XA CN201310522858A CN104579970B CN 104579970 B CN104579970 B CN 104579970B CN 201310522858 A CN201310522858 A CN 201310522858A CN 104579970 B CN104579970 B CN 104579970B
- Authority
- CN
- China
- Prior art keywords
- list item
- matching
- address
- contents
- tuples
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种IPv6报文的快速策略匹配方法及对应装置,其中该方法包括:在收到报文后,将IPv6的IP五元组按照设定算法运算出结果;将结果以及源、目的端口与表项进行匹配。本发明能够减小单元表项的宽度,从而节省了存储空间,同时使硬件控制器访问的次数减少,极大的提高了匹配效率。
Description
技术领域
本发明涉及计算机通信领域,尤其涉及一种IPv6报文的策略匹配装置。
背景技术
在网络中,经常需要对特定的报文进行特定的处理,因此需要在网络设备上配置报文策略,在报文策略中定义出报文特性信息与处理动作的对应关系。当网络设备收到报文后,根据报文所携带的特性信息匹配报文策略,根据匹配到的报文策略对报文进行对应处理。目前,在定义报文策略是,所使用的报文特性信息通常为报文的五元组。报文的五元组包括,源IP地址、目的IP地址、源端口号、目的端口号和协议类型。设备会根据五元组的匹配结果对报文进行相应的处理,因此对报文的五元组进行过滤匹配是十分重要的。
现有技术一般是将匹配策略存储在内存中,将规则策略以特定数据结构来组织存储,当报文进入设备,控制器提取报文的五元组与内存中的策略匹配,并按照策略去执行响应的动作,对于内存中的规则策略,为了实现快速匹配查找,一般来说,并不会按照表项的顺序查找,这样做的效率实在太低了,一般的技术在策略下刷的时候会按特定的运算方法将规则下载到内存中特定的位置,这样硬件控制器或者软件收到报文后提取报文的五元组同样按照上述的方法进行策略的匹配查找。
随着现在互联网的发展迅速,互联网用户、手机访问网络用户也在不断增加,所使用的业务众多;与此同时,针对各种业务的服务以及协议也越来越细化,服务器类型与数量繁杂多样,各种网络设备的使用和推广也层出不穷;另外,IPv6的发展越来越迅速,网络产品支持对IPv6数据的业务处理也在飞速发展。然而,IPv6五元组信息相对于IPv4五元组信息来说,需要更大的存储空间,这就意味着内存控制器需要更多的访问次数来解决每次访问的最小访问单元的问题。因此,如何实现IPv6报文高效的策略存储和匹配成为网络产品急需要解决的问题。
发明内容
有鉴于此,本发明提供一种IPv6报文的策略匹配装置,应用于电子设备上,包括:表项地址建立单元、表项内容建立单元和查表匹配单元,其中:
表项地址建立单元,用于将IPv6报文的IP五元组的部分内容按照第一预定算法进行运算获得表项地址,如果运算出的表项地址没有被使用,则确定该表项为当前表项,如果已被使用,则获取一个空闲表项作为当前表项,并将该空闲表项通过关联指针与之前存在冲突的表项以链表的方式关联起来;
表项内容建立单元,用于将该IPv6报文的IP五元组的部分内容按照第二预定算法进行运算,将计算出的结果作为表项内容,存放在当前表项中;
查表匹配单元,用于提取IPv6报文中的IP五元组,并将该五元组部分内容按照第一预定算法进行运算以获得对应的表项地址,再将该五元组部分内容按照第二预定算法进行运算,将计算所得结果与该表项的表项内容进行匹配,如果匹配不成功则在关联的链表中的各个表项中进行表项内容的遍历匹配。
本发明能够减小单元表项的宽度,从而节省了存储空间,同时使硬件控制器访问的次数减少,极大的提高了匹配效率。
附图说明
图1是本发明一种实施方式中IPv6报文策略匹配装置的逻辑结构及其典型硬件环境示意图。
图2是本发明一种实施方式中IPv6报文策略匹配方法的一般处理流程图。
图3是报文匹配策略原始数据结构图。
图4是本发明表项结构图。
具体实施方式
本发明提供一种IPv6报文的策略匹配方法及装置,用以解决IPv6报文五元组的高效的策略存储和匹配的问题。在一种优选实施方式中,本发明提供一种IPv6报文的策略匹配装置,其应用于网络设备上,请参考图1。从逻辑的角度来看,该装置包括:表项地址建立单元、表项内容建立单元和查表匹配单元。从实现角度来说,其可以采用软件实现,也可以采用硬件实现,甚至软件硬件结合的方式实现,该装置运行过程通常包括如下步骤,如图2所示。
步骤101,表项地址建立单元将IPv6报文的IP五元组的部分内容按照第一预定算法进行运算获得表项地址,如果运算出的表项地址没有被使用,则确定该表项为当前表项,如果已被使用,则获取一个空闲表项作为当前表项,并将该空闲表项通过关联指针与之前存在冲突的表项以链表的方式关联起来;
步骤102,表项内容建立单元将该IPv6报文的IP五元组的部分内容按照第二预定算法进行运算,将计算出的结果作为表项内容,存放在当前表项中;
步骤103,表项匹配单元提取IPv6报文中的IP五元组,并将该五元组部分内容按照第一预定算法进行运算以获得对应的表项地址,再将该五元组部分内容按照第二预定算法进行运算,将计算所得结果与该表项的表项内容进行匹配,如果匹配不成功则在关联的链表中的各个表项中进行表项内容的遍历匹配。
在进行报文匹配之前,首先需要在网络设备上配置报文策略,在报文策略中定义出报文特性信息与处理动作的对应关系。原始的策略数据结构如图3 所示,该数据结构包含IPv6报文的完全五元组信息、策略优先级、动作,其中Next_tbl_index是解决冲突的链表下一索引地址。由图可知,原始的策略表项单元大小为3*128bit的宽度。由于IPv6五元组信息相对IPv4五元组信息来说,需要更大的存储空间,而更大的空间意味着内存控制器需要更多的访问次数来解决每次访问的最小访问单元的问题。为了节省存储空间,减少内存控制器访问次数,需要根据原始策略重新组织建立表项。
在配置了报文匹配策略之后,需要建立表项。因为只有找到表项地址,根据表项地址才能找到与之相对应的表项内容。如同找某个人要先知道这个人的住址一样,先得找到表项内容的住址才能找到表项内容,这里的表项内容的住址就是表项地址。所以要先确定表项地址。
具体的说,先将IPv6报文的IP五元组的部分内容按照第一预定算法进行运算获得表项地址。这里所说的预定算法,可以是CRC32算法,也可以是其他算法。而用于运算的数据是IPv6报文IP五元组的部分内容,可以是源IP地址或者目的IP地址,也可以是IP五元组中的其他内容。在优选的实施方式中,是用 CRC32算法对源IP地址和目的IP地址进行运算,得到表项地址。
然后检查该表项地址是否已被使用,如果没有被使用,也就是说没有冲突,就说明该表项为当前表项;如果已被使用,也就是说与已存在表项有冲突,说明该表项不可用,需寻找新的空闲表项作为当前表项。其中,本发明的优选实施方式中,检查运算处理的表项地址与已经存在的表项地址是否有冲突的方法为:如该表项被使用,则置位该表项的标志位,如果发现表项标志位被置位,则说明该表项已被使用。另外,在本发明的优选实施方式中,是用链表的形式来解决冲突的,如图4所示。解决冲突的具体过程是,找一个空闲表项,再把这个表项通过指针1与之前冲突的表项地址关联起来,而表中的Next_tbl_index用于存放与之关联的下一表项的指针1,也就是说,可以根据表项单元中Next_tbl_index里的指针1找到下一个关联的表项。
确定表项地址后,接下来需要填写表项内容。具体的说,将IPv6报文的IP 五元组的部分内容按照第二预定算法进行运算。其中,进行运算的IPv6报文IP 五元组部分内容和之前进行表项地址运算的数据内容是一致的。另外,在优选的实施方式中,第二预定算法为MD5算法,但也可以是其他可将数据进行压缩的算法。然后将计算出的结果作为表项内容,存放在与表项地址指向的位置中。经过MD5算法的运算,原始表项由原来的3*128bit被压缩成2*128bit,宽度缩减了三分之一,节约了存储空间。
例如,第一个五元组中的源IP地址和目的IP地址用第一预定算法,也就是CRC32算法进行运行,得到结果为A,找到表项地址A,发现该表项标志位没有被置位,证明该表项没有被使用,说明运算结果不冲突。然后把该五元组中的源IP地址和目的IP地址用第二预定算法,也就是MD5算法进行运算,得到的结果作为表项内容填写在该表项中,并把该表项标志位进行置位。第二个五元组中的源IP地址和目的IP地址用CRC32算法进行运行,得到结果为B,找到表项地址B,发现该表项标志位已被置位,证明该表项已被使用,说明运算结果冲突,所以需要找一个空闲表项,再把这个空闲表项通过指针1与之前冲突的表项地址B关联起来,然后把该五元组中的源IP地址和目的IP地址用MD5算法进行运算,得到的结果作为表项内容填写在这个空闲表项中,最后将该空闲表项标志位进行置位。
由于表项宽度减小,报文策略匹配的效率也会相应提高。在优选的实施方式中,报文策略匹配的具体过程是:提取IPv6报文中的IP五元组,并将该五元组部分内容按照第一预定算法,也就是CRC32算法进行运算,根据所得结果找到对应的表项地址,再将该五元组部分内容按照第二预定算法,也就是MD5算法进行运算,将计算所得结果与该地址对应的表项内容进行匹配,如果匹配不成功则通过指针1与在该表项地址关联的链表中各个表项的表项内容逐一进行匹配,直到匹配成功为止。由于进行匹配的表项内容是经过压缩的,数据位数的减少会导致冲突的概率提高,也就是说,数据位数越少,冲突的可能性就越大。为了减小冲突,在报文策略匹配的过程中,不仅需要看表项内容数据,还要比较端口号和协议号,压缩后匹配的错误几率很低很低,可以认为不可能存在。
本发明中的技术方案除了可以用软件来实现,也可以用硬件实现。
本发明可以有效的减小每个单元表项的宽度,节省内存空间,从而减少硬件控制器访问的次数,提高报文匹配效率。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (6)
1.一种IPv6报文的策略匹配装置,应用于电子设备上,包括:表项地址建立单元、表项内容建立单元和查表匹配单元,其特征在于:
表项地址建立单元,用于将IPv6报文的IP五元组的部分内容按照第一预定算法进行运算获得表项地址,如果运算出的表项地址没有被使用,即没有冲突,则确定该表项为当前表项,如果已被使用,即与已存在表项有冲突,则获取一个空闲表项作为当前表项,并将该空闲表项通过关联指针与之前存在冲突的表项以链表的方式关联起来;
表项内容建立单元,用于将该IPv6报文的IP五元组的部分内容按照第二预定算法进行运算,将计算出的结果作为表项内容,存放在当前表项中;
查表匹配单元,用于提取IPv6报文中的IP五元组,并将该五元组部分内容按照第一预定算法进行运算以获得对应的表项地址,再将该五元组部分内容按照第二预定算法进行运算,将计算所得结果与该表项的表项内容进行匹配,如果匹配不成功则在关联的链表中的各个表项中进行表项内容的遍历匹配。
2.如权利要求1所述的装置,其特征在于,所述关联指针存放在表项内容中指定的区域上,所述查表匹配单元在将用第二预定算法计算所得结果与当前表项内容进行匹配时,如果匹配不成功,则通过当前表项中的关联指针确定链表中下一个表项的表项地址。
3.如权利要求1所述的装置,其特征在于,所述第一预定算法为CRC32算法,所述第二预定算法为MD5算法。
4.如权利要求3所述的装置,其特征在于,所述第二预定算法所计算出来的结果比五元组信息少。
5.如权利要求1所述的装置,其特征在于,所述IP五元组部分内容为源IP地址和目的IP地址。
6.如权利要求4所述的装置,其特征在于,所述查表匹配单元进一步用于将源端口和目的端口进行匹配。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310522858.XA CN104579970B (zh) | 2013-10-29 | 2013-10-29 | 一种IPv6报文的策略匹配装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310522858.XA CN104579970B (zh) | 2013-10-29 | 2013-10-29 | 一种IPv6报文的策略匹配装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104579970A CN104579970A (zh) | 2015-04-29 |
CN104579970B true CN104579970B (zh) | 2018-06-12 |
Family
ID=53095196
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310522858.XA Active CN104579970B (zh) | 2013-10-29 | 2013-10-29 | 一种IPv6报文的策略匹配装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104579970B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106936719A (zh) * | 2017-05-17 | 2017-07-07 | 济南浪潮高新科技投资发展有限公司 | 一种ip报文策略匹配方法 |
CN107707485A (zh) * | 2017-10-23 | 2018-02-16 | 济南浪潮高新科技投资发展有限公司 | 一种范围型ip报文策略匹配电路及方法 |
CN108449445A (zh) * | 2018-04-13 | 2018-08-24 | 济南浪潮高新科技投资发展有限公司 | 一种范围型报文匹配电路及方法 |
CN110071923A (zh) * | 2019-04-24 | 2019-07-30 | 杭州迪普信息技术有限公司 | 报文识别方法、装置、电子设备及机器可读存储介质 |
CN113641672B (zh) * | 2021-07-30 | 2024-06-25 | 武汉思普崚技术有限公司 | 一种多维度快速匹配方法、装置及存储介质 |
CN113904798B (zh) * | 2021-08-27 | 2024-03-22 | 长沙星融元数据技术有限公司 | Ip报文的多元组过滤方法、系统、设备及存储介质 |
CN114338529B (zh) * | 2021-12-29 | 2024-03-08 | 杭州迪普信息技术有限公司 | 五元组规则匹配方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103051534A (zh) * | 2012-11-20 | 2013-04-17 | 杭州迪普科技有限公司 | 一种报文处理方法及装置 |
CN103188355A (zh) * | 2013-04-02 | 2013-07-03 | 汉柏科技有限公司 | 一种通过预判断对报文进行动态匹配的方法 |
CN103312627A (zh) * | 2013-05-30 | 2013-09-18 | 中国人民解放军国防科学技术大学 | 基于两级存储的正则表达式匹配方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100364289C (zh) * | 2004-04-30 | 2008-01-23 | 华为技术有限公司 | 在基于弹性分组环的网络中实现二层设备互连的方法 |
CN100550847C (zh) * | 2006-09-29 | 2009-10-14 | 华为数字技术有限公司 | 一种解决Hash冲突的方法及装置 |
US7937438B1 (en) * | 2009-12-07 | 2011-05-03 | Amazon Technologies, Inc. | Using virtual networking devices to manage external connections |
CN101909007B (zh) * | 2010-07-29 | 2013-03-13 | 福建星网锐捷网络有限公司 | 绑定表项生成方法、装置及网络设备 |
CN102291301B (zh) * | 2011-08-10 | 2015-06-10 | 杭州迪普科技有限公司 | 一种报文特征的匹配方法及装置 |
CN102664773A (zh) * | 2012-05-22 | 2012-09-12 | 中国人民解放军信息工程大学 | 一种网络流量的探测方法和探测装置 |
CN102938736B (zh) * | 2012-11-20 | 2016-06-08 | 杭州迪普科技有限公司 | 一种实现IPv4报文穿越IPv6网络的方法和设备 |
-
2013
- 2013-10-29 CN CN201310522858.XA patent/CN104579970B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103051534A (zh) * | 2012-11-20 | 2013-04-17 | 杭州迪普科技有限公司 | 一种报文处理方法及装置 |
CN103188355A (zh) * | 2013-04-02 | 2013-07-03 | 汉柏科技有限公司 | 一种通过预判断对报文进行动态匹配的方法 |
CN103312627A (zh) * | 2013-05-30 | 2013-09-18 | 中国人民解放军国防科学技术大学 | 基于两级存储的正则表达式匹配方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104579970A (zh) | 2015-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104579970B (zh) | 一种IPv6报文的策略匹配装置 | |
US7979082B2 (en) | Method and apparatus for message identification | |
US11005760B2 (en) | Ensuring data locality for secure transmission of data | |
CN103118003B (zh) | 一种基于资产的风险扫描方法、装置及系统 | |
US9742616B2 (en) | Device for indicating packet processing hints | |
CN106161633B (zh) | 一种基于云计算环境下打包文件的传输方法及系统 | |
US11431662B2 (en) | Techniques for message deduplication | |
CN103763112B (zh) | 一种用户身份保护方法和装置 | |
US9307555B2 (en) | Method and system for mobile terminal to access the network through cell phone | |
US20190207873A1 (en) | Techniques for batched bulk processing | |
CN107465666A (zh) | 一种客户端ip获取方法与装置 | |
US8365045B2 (en) | Flow based data packet processing | |
CN111224831B (zh) | 用于生成话单的方法和系统 | |
US20190207888A1 (en) | Techniques for message indexing | |
US20190207899A1 (en) | Techniques for messaging conversation indexing | |
CN116015796A (zh) | 一种流表更新方法、装置、防火墙设备及存储介质 | |
CN109710502A (zh) | 日志传输方法、装置及存储介质 | |
CN109428774B (zh) | 一种dpi设备的数据处理方法及相关的dpi设备 | |
CN110351208A (zh) | 一种报文转发方法、装置、设备及计算机可读存储介质 | |
US10157102B2 (en) | Techniques to scan and reorganize media files to remove gaps | |
CN116028196A (zh) | 数据处理方法、装置及存储介质 | |
CN108062690A (zh) | 广告推送的方法、装置、电子设备及存储介质 | |
CN106506400A (zh) | 一种数据流识别方法及出口设备 | |
CN107612831B (zh) | 一种访问源站的数据报文的传输方法及装置 | |
US20140136647A1 (en) | Router and operating method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 100029 Beijing city Chaoyang District Yumin Road No. 3 Applicant after: State Computer Network and Information Safety Management Center Applicant after: Hangzhou Dipu Polytron Technologies Inc Address before: 100029 Beijing city Chaoyang District Yumin Road No. 3 Applicant before: State Computer Network and Information Safety Management Center Applicant before: Hangzhou Dipu Technology Co., Ltd. |
|
COR | Change of bibliographic data | ||
GR01 | Patent grant | ||
GR01 | Patent grant |