CN107707479A - 五元组规则的查找方法及装置 - Google Patents
五元组规则的查找方法及装置 Download PDFInfo
- Publication number
- CN107707479A CN107707479A CN201711043135.6A CN201711043135A CN107707479A CN 107707479 A CN107707479 A CN 107707479A CN 201711043135 A CN201711043135 A CN 201711043135A CN 107707479 A CN107707479 A CN 107707479A
- Authority
- CN
- China
- Prior art keywords
- information
- lookup
- tuple
- node
- found
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种五元组规则的查找方法及装置,所述方法包括:将待处理五元组、第一预设规则库与查找节点地址作为一组待查找信息,并确定多组所述待查找信息;根据依次接收到的查找命令,将所述待查找信息作为当前查找信息,并行启动查找操作,并根据当前查找节点地址确定查找结果,其中,所述查找结果为与所述当前查找信息相对应的目标规则或者相邻地址信息;统计所有待查找信息相对应的查找结果,以确定新一轮待查找信息,直至遍历所有预设规则库,结束查找。本发明实施例充分利用了待查找信息等待查找结果之间的等待时间,在相同的时间内,本发明能够查找出更多五元组相对应的规则,有效提高了五元组规则查找的效率。
Description
技术领域
本发明实施例涉及通讯技术领域,尤其涉及一种五元组规则的查找方法及装置。
背景技术
五元组规则查找是实现网络数据转发的重要一步。具体的,通过提取网络数据包中的五元组,并根据五元组按顺序查找不同的五元组规则库,能够获取该网络数据包的策略,以实现不同数据包的不同转发处理操作。
其中,五元组指的源IP地址、源端口号、目的IP地址、目的端口号和协议类型,分别使用sip、dip、sp、dp、protocol表示。规则指的是网络数据包的转发处理策略,五元组规则指的是根据不同的匹配条件分成的关于五元组的规则库,如sip规则库,dip规则库,sip_dp规则库等,其中,每个规则库又包含若干条规则。例如,基于规则库中的规则,将源IP地址为10.10.10.10的数据包统一转发至某一个端口。由于信息技术的快速发展,用户需求量剧增,因此,现网中的每条10G光纤线路所包含的数据流数量是千万级的。其中,每个数据流即包含了一个网络数据包,每个网络数据包中又包含了五元组,而与五元组相匹配的五元组规则库的容量也是庞大的。因此,要实现对如此大规模网络数据包的五元组规则进行查找,需要大容量存储器,即DRAM(Dynamic Random Access Memory,动态随机存取存储器)。
但是,由于DRAM的读操作发出,到读结果返回有一定延迟,导致大规模网络数据包查找的五元组规则的花费时间长,效率低,大大降低了五元组规则的查找效率。
发明内容
本发明实施例提供一种五元组规则的查找方法及装置,能够有效提高五元组规则查找的效率。
第一方面,本发明实施例提供了一种五元组规则的查找方法,包括:
将待处理五元组、第一预设规则库与查找节点地址作为一组待查找信息,并确定多组所述待查找信息;
根据依次接收到的查找命令,将所述待查找信息作为当前查找信息,并行启动查找操作,并根据当前查找节点地址确定查找结果,其中,所述查找结果为与所述当前查找信息相对应的目标规则或者相邻地址信息;
统计所有待查找信息相对应的查找结果,以确定新一轮待查找信息,直至遍历所有预设规则库,结束查找。
第二方面,本发明实施例还提供了一种五元组规则的查找装置,包括:
待查找信息确定模块,用于将待处理五元组、第一预设规则库与查找节点地址作为一组待查找信息,并确定多组所述待查找信息;
查找结果确定模块,用于根据依次接收到的查找命令,将所述待查找信息作为当前查找信息,并行启动查找操作,并根据当前查找节点地址确定查找结果,其中,所述查找结果为与所述当前查找信息相对应的目标规则或者相邻地址信息;
查找结束模块,用于统计所有待查找信息相对应的查找结果,以确定新一轮待查找信息,直至遍历所有预设规则库,结束查找。
本发明实施例提供了一种五元组规则的查找方法及装置,通过将待处理五元组、第一预设规则库与查找节点地址作为一组待查找信息,并确定多组所述待查找信息;根据依次接收到的查找命令,将所述待查找信息作为当前查找信息,并行启动查找操作,并根据当前查找节点地址确定查找结果;统计所有待查找信息相对应的查找结果,以确定新一轮待查找信息,直至遍历所有预设规则库,结束查找,本发明通过将多组待查找信息依次作为当前查找信息,并行启动查找操作,充分利用了待查找信息等待查找结果之间的等待时间,在相同的时间内,本发明能够查找出更多五元组相对应的规则,有效提高了五元组规则查找的效率。
附图说明
图1A是现有技术中的一种五元组规则的查找的流程图;
图1B是现有技术中五元组规则查找的顺序示意图;
图1C是本发明实施例一中的一种五元组规则的查找方法的流程图;
图1D是本发明实施例一中的一种五元组规则查找的顺序示意图;
图1E是本发明实施例一中的一种缓存库协作完成五元组规则查找的示意图;
图2是本发明实施例二中的一种五元组规则的查找方法的流程图;
图3是本发明实施例三中的一种五元组规则的查找装置的结构图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
现有技术中,五元组规则的查找过程通常是采用哈希(hash)计算方法将五元组进行预处理,形成关于不同的规则库的初始五元组。图1A为现有技术中五元组规则查找的流程示意图。如图1A所示,当五元组进行查找sip规则库时,仅对sip规则库进行hash计算,得到初始五元组。将计算后的初始五元组与sip规则库基地址作为物理地址,以实现在sip规则库中进行查找的操作。由于sip规则库中包含多个规则节点,如规则节点0(node0)、规则节点1(node1)与规则节点2(node2)等,因此逐一对规则节点进行判断。如果对sip规则库中某规则节点的判断命中,则输出sip规则库中相应的转发策略;如果对sip规则库中某节点判断未命中,且存在hash冲突,则说明存在下一个规则节点,即继续查找下一规则节点;如果对sip规则库中某节点判断未命中,且不存在hash冲突,则说明五元组在该sip规则库的查找无结果,开始查找下一规则库,即dip规则库。并且,在dip规则库查找的方法与在sip查找的方法相同,不再赘述。
需要说明的是,目前五元组规则的查找通常采用CPU(Central Processing Unit,中央处理器)芯片或FPGA(Field-Programmable Gate Array,现场可编程门阵列)芯片实现查找。并且,查找方式为一个数据包中的五元组查找完所有五元组规则库,或者命中高优先级的五元组规则库之后,才能进行下一个数据包的五元组规则查找。图1B为现有技术中五元组规则查找的顺序示意图。如图1B所示,以数据包1与数据包2为例,现有技术的五元组规则查找方式,是数据包1中的五元组遍历过所有规则库的规则节点后,才能进行数据包2中的五元组规则查找。由此可知,当数据包数量巨大时,这样逐一数据包进行规则查找的方式相当浪费时间,查找效率低。本申请提供的方法,基于FPGA芯片进行五元组规则的查找操作能够有效改善上述规则查找效率低的情况,具体如下:
实施例一
图1C为本发明实施例一提供的一种五元组规则的查找方法的流程图,本实施例可适用于各种五元组规则的查找的情况,该方法可以由本发明实施例提供的五元组规则的查找装置来执行,该装置可采用软件和/或硬件的方式实现,该装置可集成在任何提供五元组规则的查找功能的设备中,例如可以是电脑,如图1C所示,具体包括:
S110、将待处理五元组、第一预设规则库与查找节点地址作为一组待查找信息,并确定多组所述待查找信息。
其中,待处理五元组指的是需要查找五元组规则的五元组信息,从数据包中提取而得的二进制格式的传输信息。由于五元组规则库包括多个,因此根据用户需求确定各个五元组规则库查找的顺序,第一预设规则库指的是待处理五元组第一个查找的五元组规则库,可以为sip规则库、dip规则库或者dp规则库等,本发明实施例对第一预设规则库的具体内容不作限定。由于五元组的规则数量巨大,数量级可为百万级、千万级甚至更多,因此每个五元组规则库需要分配多个物理空间用于存储五元组的规则。查找节点地址指的是五元组规则库中第一节点的基地址。
由于现网中接收的数据包的数据量较大,本发明实施例可实现多组数据包中的五元组并行查找五元组规则,因此可以确定包含多组待处理五元组、第一预设规则库与查找节点地址组成的待查找信息。
示例性的,在将待处理五元组、第一预设规则库与查找节点地址作为一组待查找信息,并确定多组所述待查找信息之前,包括:根据待处理数据包提取所述待处理五元组;通过哈希算法计算所述待处理五元组对应的哈希值;基于所述哈希值与所述第一预设规则库,确定所述查找节点地址;
其中,待处理数据包包括待处理五元组、负载数据等信息,通过编程从待处理数据包中提取待处理五元组。通过哈希算法将待处理五元组进行处理得到相应的哈希值,使得待处理五元组的数据满足五元组规则的查找规格。由于每个规则库基地址不变,待处理五元组经过数据处理得到的哈希值是一定的,因此由哈希值与第一预设规则库确定的查找节点地址是固定不变的。
S120、根据依次接收到的查找命令,将所述待查找信息作为当前查找信息,并行启动查找操作,并根据当前查找节点地址确定查找结果。
其中,所述查找结果为与所述当前查找信息相对应的目标规则或者相邻地址信息。其中,目标规则指的是待查找五元组在五元组规则库中想要查找的规则,相邻地址信息指的是与当前查找节点地址相邻的节点地址,当当前查找信息在当前查找节点地址中命中失败,则表明没有在当前查找节点地址中成功查找其相对应的规则,因此需要记录相邻地址信息,用以存储下次查找的地址信息。当前查找信息指的是接收到查找命令进行查找操作的待查找信息。
具体的,数据包中的五元组查找是将根据查找命令依次启动的,并且根据查找命令并行启动查找操作,也就是说,多组待查找信息等待查找命令,根据查找命令依次将接收到查找命令的待查找信息作为当前查找信息,并行进行查找操作,当当前查找地址存储的信息命中时,则输出目标规则,当当前查找地址存储的信息命中失败时,则输出相邻地址信息。例如,当一百个数据包依次接收到查找命令,将并行进行查找操作,接收查找结果。
S130、统计所有待查找信息相对应的查找结果,以确定新一轮待查找信息,直至遍历所有预设规则库,结束查找。
当所有待查找信息接收到查找结果,再根据查找结果确定下一轮的待查找信息。例如,当一百个数据包接收到的查找结果中有五十个目标规则,五十个相邻地址信息,则可对上述一百个数据包进行不同的查找操作。由于待处理五元组包含有五个元素,可以在多个预设规则库中存储有相应的目标规则,因此需要遍历所有的预设规则库,在结束查找操作。图1D是本发明实施例中的一种五元组规则查找的顺序示意图,由图1D所示,本申请实施例是数据包1到数据包N对sip规则库中的节点查找结束之后,再对下一个规则库中的节点进行查找。
示例性的,还包括:将多组所述待查找信息存储至第一缓存库,将所述当前查找信息存储至第二缓存库,以及将所述查找结果存储至第三缓存库。
其中,第一缓存库、第二缓存库以及第三缓存库为FPGA内部的fifo(First InputFirst Output,先入先出队列)存储器,用于存储不同内容。其中,第一缓存库fifo1用于在当前查找信息输入预设规则库之前,缓存多组待查找信息,包括待查找五元组、预设规则库与查找节点地址。第二缓存库fifo2用于缓存当前查找信息,包括当前查找五元组、当前预设规则库以及当前查找节点地址。第三缓存库fifo3用于缓存查找结果以及与查找结果相对应的当前查找信息。其中,查找结果可包括相邻地址信息,例如第三缓存库fifo3存储内容可包括当前查找五元组、需要查找的下一节点地址或者下一个预设规则库以及当前查找结果等。
示例性的,还包括:设定所述第一缓存库与所述第三缓存库的查找优先级;根据所述查找优先级,所述第一缓存库与所述第三缓存库的存储状态,确定所述当前查找信息。
其中,查找优先级指的是当前查找信息进行查找的优先顺序。存储状态为缓存库中是否存储有待查找信息,即存储是否为空。具体的,在多组待查找信息进行查找操作过程中,会将当前一轮的查找结果存储至第三缓存库fifo3中,第三缓存库fifo3中也同样存储着待查找五元组,下一节点地址或者下一预设规则库的信息,若将第三缓存库fifo3中存储的任意一组待查找信息作为当前查找信息,也能进行查找操作。但是,本发明实施例设定第一缓存库fifo1与第三缓存库fifo3的查找优先级,用于实现多组待查找信息依次根据查找命令并行进行查找,再根据查找结果确定下一轮查找信息。
具体的,本申请实施例的优先级可设定为:当第一缓存库fifo1与第三缓存库fifo3不为空时,优先将第一缓存库fifo1中存储的待查找信息均作为当前查找信息进行查找操作,当第一缓存库fifo1为空时,才选择第三缓存库fifo3中存储的待查找信息均作为当前查找信息进行查找操作。本发明实施例优先级的设定可以通过编程设定,结合选择器实现,图1E为本申请实施例提供的一种缓存库协作完成五元组规则查找的示意图。如图1E所示,其中,选择器用于在第一缓存库fifo1与第三缓存库fifo3中选择其一获取待查找信息作为当前查找信息,传输至Sdram controller中进行五元组规则的查找,并将查找结果存储至第二缓存库fifo2。其中,Sdram controller为FPGA中的内存控制器,用于实现待查找信息的查找过程。需要说明的是,第三缓存库可实现当返回一个查找结果时,从第二缓存库fifo2中提取与查找结果相对应的当前查找信息,通过逻辑判断,确定当前查找信息是否需要查找下一节点或者下一个规则库。如果需要查找下一节点或者下一个规则库,则将该查找结果与相对应的当前查找信息共同存储至第三缓存库fifo3中;如果不需要查找下一节点或者下一个规则库,则直接输出查找结果,例如目标规则。其中,第三缓存库fifo3可包括当前查找五元组、需要查找的下一节点地址或者下一个预设规则库以及当前查找结果等信息。当该轮待查找信息全部查找结束,基于第一缓存库fifo1与第三缓存库fifo3存储的待查找信息,根据优先级确定下一轮的当前查找信息再进行查找操作。需要说明的是,本发明实施例提供的优先级的设定仅仅是一种示例,本发明实施例不对优先级的设定进行限定。
本发明实施例提供了一种五元组规则的查找方法,通过将待处理五元组、第一预设规则库与查找节点地址作为一组待查找信息,并确定多组所述待查找信息;根据依次接收到的查找命令,将所述待查找信息作为当前查找信息,并行启动查找操作,并根据当前查找节点地址确定查找结果;统计所有待查找信息相对应的查找结果,以确定新一轮待查找信息,直至遍历所有预设规则库,结束查找,本发明通过将多组待查找信息依次作为当前查找信息,并行启动查找操作,充分利用了待查找信息等待查找结果之间的等待时间,在相同的时间内,本发明能够查找出更多五元组相对应的规则,有效提高了五元组规则查找的效率。
实施例二
图2为本发明实施例二提供的一种五元组规则的查找的流程图,本实施例在上述实施例的基础上进行优化,提供了优化的根据当前查找节点地址确定查找结果的处理方法,具体是:
相应的,本实施例的方法包括:
S210、将待处理五元组、第一预设规则库与查找节点地址作为一组待查找信息,并确定多组所述待查找信息。
S220、根据依次接收到的查找命令,将所述待查找信息作为当前查找信息,并行启动查找操作。
S230、根据所述当前查找节点地址,判断所述第一预设规则库中的第一节点地址是否有效。
其中,判断第一预设规则库中的第一节点地址是否有效为根据FPGA内设定的数据格式而定,若数据格式一致,则有效,若数据格式不一致,则无效。
示例性的,若所述第一预设规则库中的第一节点地址无效,则判断是否存在第二预设规则库。
具体的,若根据当前查找节点地址,判断的与第一预设规则库中的第一节点地址无效,则判断是否存在第二预设规则库。若存在第二预设规则库,则根据哈希值与第二预设规则库重新计算第二预设规则库的查找节点地址,根据待处理五元组、第二预设规则库、与重新计算的查找节点地址作为新的待查找信息,等待查找命令,从而对第二预设规则库中的第一节点进行判断。
S240、判断所述第一节点是否命中。
具体的,若判断第一预设规则库中的第一节点地址有效,则判断第一节点是否命中。
示例性的,判断第一节点是否命中,包括:判断所述第一节点内的预存五元组与所述当前查找信息内包含的当前待处理五元组是否一致;若一致,则命中;若不一致,则未命中。
具体的,当前查找信息根据当前查找节点地址,可以判断第一预设规则库中的第一节点是否命中,即判断第一节点地址中存储的预设五元组与当前待处理五元组是否一致。例如,若第一预设规则库为sip规则库,则判断sip规则库中的node0是否命中。本发明实施例判断node0是否命中可设定为判断node0中存储的预存五元组与当前查找信息内包含的当前待处理五元组是否一致。
S250、输出与所述第一节点相匹配的目标规则。
具体的,若第一节点查找命中,则输出与第一节点相匹配的目标规则。
S260、判断所述第一节点是否存在下一节点。
若第一节点的查找未命中,则判断第一节点是否存在下一节点。例如,若第一预设规则库中的node0未命中,则可判断是否存在下一节点,即第一预设规则库中的node1。
S270、将所述下一节点地址替换所述当前查找信息中的当前查找节点地址,以确定所述当前查找信息相对应的相邻地址信息。
例如,若第一预设规则库存在下一节点地址node1,则将下一节点地址node1替换当前查找信息中的当前查找节点地址node0,以作为相邻地址信息,用于为下一轮的查找提供查找节点地址。
S280、判断是否存在第二预设规则库。
例如,若第一预设规则库不存在下一节点地址node1,则判断是否存在第二预设规则库,即下一个预设规则库。若有第二预设规则库,则存储第二预设规则库的相关信息,用以下一轮的查找提供查找节点地址。
S290、将所述第二预设规则库替换所述当前查找信息中的第一预设规则库,以确定所述当前查找信息相对应的相邻地址信息。
例如,若存在第二预设规则库dip,则将第二预设规则库替换当前查找信息中的第一预设规则库sip,以确定当前查找信息相对应的相邻地址信息。具体的,确定当前查找信息相对应的相邻地址信息过程为,通过当前待处理五元组对应的哈希值与第二预设规则库dip,确定相邻地址信息。
S2100、将所述目标规则或者所述相邻地址信息作为查找结果进行输出。
具体的,第一缓存库中存储的所有待查找信息对第一预设规则库中的第一节点进行查找,若第一节点命中,则输出存储至第一节点内的目标规则,若不命中,则判断第一节点是否存在下一节点或者第二预设规则库。
S2110、统计所有待查找信息相对应的查找结果,以确定新一轮待查找信息,直至遍历所有预设规则库,结束查找。
例如,当一百个数据包接收到的查找结果中有五十个目标规则,五十个相邻地址信息,其中二十五个相邻地址信息为第一预设规则库中的第二节点node2,二十五个相邻地址信息为第二预设规则库中的第一节点node1,则根据程序设定可对上述一百个数据包的第二轮进行不同的查找操作。具体例如,可以将查找到五十个目标规则的五元组结束查找,或者进行第二预设规则库的查找;二十五个相邻地址信息为第一预设规则库中的第二节点node2进行相对应的查找;对二十五个相邻地址信息为第二预设规则库中的第一节点node1进行相对应的查找。
本发明实施例相比等一个数据包(待处理五元组)查完所有预设规则库,再处理下一个数据包(待处理五元组),N个数据包(待处理五元组)并行进行第一预设规则库中的第一节点查找,等待查找结果返回,通过返回结果再进行下一轮节点查找,平均到每个数据包(待处理五元组)的读延迟仅为原来的1/N,有效提高了五元组规则查找的效率。
实施例三
图3为本发明实施例三提供的一种五元组规则的查找装置的结构示意图,本实施例可适用于各种五元组规则的查找的情况,该装置可采用软件和/或硬件的方式实现,该装置可集成在任何提供五元组规则的查找功能的设备中,例如可以是电脑,如图3所示,具体包括:待查找信息确定模块31、查找结果确定模块32和查找结束模块33。
待查找信息确定模块31,用于将待处理五元组、第一预设规则库与查找节点地址作为一组待查找信息,并确定多组所述待查找信息;
查找结果确定模块32,用于根据依次接收到的查找命令,将所述待查找信息作为当前查找信息,并行启动查找操作,并根据当前查找节点地址确定查找结果,其中,所述查找结果为与所述当前查找信息相对应的目标规则或者相邻地址信息;
查找结束模块33,用于统计所有待查找信息相对应的查找结果,以确定新一轮待查找信息,直至遍历所有预设规则库,结束查找。
在上述实施例基础上,所述查找结果确定模块32具体用于:
根据所述当前查找节点地址,判断所述第一预设规则库中的第一节点地址是否有效;
若有效,则判断所述第一节点是否命中;
若命中,则输出与所述第一节点相匹配的目标规则;
若未命中,则判断所述第一节点是否存在下一节点;
若存在所述下一节点,则将所述下一节点地址替换所述当前查找信息中的当前查找节点地址,以确定所述当前查找信息相对应的相邻地址信息,并替换所述当前查找信息中的查找节点地址;
若不存在所述下一节点,则判断是否存在第二预设规则库;
若存在所述第二预设规则库,则将所述第二预设规则库替换所述当前查找信息中的第一预设规则库,以确定所述当前查找信息相对应的相邻地址信息;将所述目标规则或者所述相邻地址信息作为查找结果进行输出。
在上述实施例基础上,所述查找结果确定模块32具体还用于:根据所述当前查找节点地址,确定所述第一预设规则库中的第一节点地址;判断所述第一节点内的预存五元组与所述当前查找信息内包含的当前待处理五元组是否一致;若一致,则命中;若不一致,则未命中。
在上述实施例基础上,还包括:若所述第一预设规则库中的第一节点地址无效,则判断是否存在第二预设规则库。
在上述实施例基础上,还包括:地址查找确定模块。
地址查找确定模块,用于在将待处理五元组、第一预设规则库与查找节点地址作为一组待查找信息,并确定多组所述待查找信息之前,根据待处理数据包提取所述待处理五元组;通过哈希算法计算所述待处理五元组对应的哈希值;基于所述哈希值与所述第一预设规则库,确定所述查找节点地址;
相应的,确定所述当前查找信息相对应的相邻地址信息,包括:基于根据所述当前待处理五元组对应的哈希值与所述第二预设规则库,确定所述相邻地址信息。
在上述实施例基础上,还包括:存储模块。
存储模块,用于将多组所述待查找信息存储至第一缓存库,将所述当前查找信息存储至第二缓存库,以及将所述查找结果存储至第三缓存库。
在上述实施例基础上,还包括:当前查找信息确定模块。
当前查找信息确定模块,用于设定所述第一缓存库与所述第三缓存库的查找优先级;根据所述查找优先级,所述第一缓存库与所述第三缓存库的存储状态,确定所述当前查找信息。
本发明实施例提供了一种五元组规则的查找装置,通过将待处理五元组、第一预设规则库与查找节点地址作为一组待查找信息,并确定多组所述待查找信息;根据依次接收到的查找命令,将所述待查找信息作为当前查找信息,并行启动查找操作,并根据当前查找节点地址确定查找结果;统计所有待查找信息相对应的查找结果,以确定新一轮待查找信息,直至遍历所有预设规则库,结束查找,本发明通过将多组待查找信息依次作为当前查找信息,并行启动查找操作,充分利用了待查找信息等待查找结果之间的等待时间,在相同的时间内,本发明能够查找出更多五元组相对应的规则,有效提高了五元组规则查找的效率。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种五元组规则的查找方法,其特征在于,包括:
将待处理五元组、第一预设规则库与查找节点地址作为一组待查找信息,并确定多组所述待查找信息;
根据依次接收到的查找命令,将所述待查找信息作为当前查找信息,并行启动查找操作,并根据当前查找节点地址确定查找结果,其中,所述查找结果为与所述当前查找信息相对应的目标规则或者相邻地址信息;
统计所有待查找信息相对应的查找结果,以确定新一轮待查找信息,直至遍历所有预设规则库,结束查找。
2.根据权利要求1所述的方法,其特征在于,根据当前查找节点地址确定查找结果,包括:
根据所述当前查找节点地址,判断所述第一预设规则库中的第一节点地址是否有效;
若有效,则判断所述第一节点是否命中;
若命中,则输出与所述第一节点相匹配的目标规则;
若未命中,则判断所述第一节点是否存在下一节点;
若存在所述下一节点,则将所述下一节点地址替换所述当前查找信息中的当前查找节点地址,以确定所述当前查找信息相对应的相邻地址信息;
若不存在所述下一节点,则判断是否存在第二预设规则库;
若存在所述第二预设规则库,则将所述第二预设规则库替换所述当前查找信息中的第一预设规则库,以确定所述当前查找信息相对应的相邻地址信息;
将所述目标规则或者所述相邻地址信息作为查找结果进行输出。
3.根据权利要求2所述的方法,其特征在于,判断所述第一节点是否命中,包括:
判断所述第一节点内的预存五元组与所述当前查找信息内包含的当前待处理五元组是否一致;
若一致,则命中;若不一致,则未命中。
4.根据权利要求2或3所述的方法,其特征在于,还包括
若所述第一预设规则库中的第一节点地址无效,则判断是否存在第二预设规则库。
5.根据权利要求1-3任一所述的方法,其特征在于,在将待处理五元组、第一预设规则库与查找节点地址作为一组待查找信息,并确定多组所述待查找信息之前,包括:
根据待处理数据包提取所述待处理五元组;
通过哈希算法计算所述待处理五元组对应的哈希值;
基于所述哈希值与所述第一预设规则库,确定所述查找节点地址;
相应的,确定所述当前查找信息相对应的相邻地址信息,包括:
基于根据所述当前待处理五元组对应的哈希值与所述第二预设规则库,确定所述相邻地址信息。
6.根据权利要求1-3任一所述的方法,其特征在于,还包括:
将多组所述待查找信息存储至第一缓存库,将所述当前查找信息存储至第二缓存库,以及将所述查找结果存储至第三缓存库。
7.根据权利要求6所述的方法,其特征在于,还包括:
设定所述第一缓存库与所述第三缓存库的查找优先级;
根据所述查找优先级,所述第一缓存库与所述第三缓存库的存储状态,确定所述当前查找信息。
8.一种五元组规则的查找装置,其特征在于,包括:
待查找信息确定模块,用于将待处理五元组、第一预设规则库与查找节点地址作为一组待查找信息,并确定多组所述待查找信息;
查找结果确定模块,用于根据依次接收到的查找命令,将所述待查找信息作为当前查找信息,并行启动查找操作,并根据当前查找节点地址确定查找结果,其中,所述查找结果为与所述当前查找信息相对应的目标规则或者相邻地址信息;
查找结束模块,用于统计所有待查找信息相对应的查找结果,以确定新一轮待查找信息,直至遍历所有预设规则库,结束查找。
9.根据权利要求8所述的装置,其特征在于,所述查找结果确定模块具体用于:
根据所述当前查找节点地址,判断所述第一预设规则库中的第一节点地址是否有效;
若有效,则判断所述第一节点是否命中;
若命中,则输出与所述第一节点相匹配的目标规则;
若未命中,则判断所述第一节点是否存在下一节点;
若存在所述下一节点,则将所述下一节点地址替换所述当前查找信息中的当前查找节点地址,以确定所述当前查找信息相对应的相邻地址信息,并替换所述当前查找信息中的查找节点地址;
若不存在所述下一节点,则判断是否存在第二预设规则库;
若存在所述第二预设规则库,则将所述第二预设规则库替换所述当前查找信息中的第一预设规则库,以确定所述当前查找信息相对应的相邻地址信息;将所述目标规则或者所述相邻地址信息作为查找结果进行输出。
10.根据权利要求9所述的装置,其特征在于,所述查找结果确定模块具体还用于:
根据所述当前查找节点地址,确定所述第一预设规则库中的第一节点地址;
判断所述第一节点内的预存五元组与所述当前查找信息内包含的当前待处理五元组是否一致;
若一致,则命中;若不一致,则未命中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711043135.6A CN107707479B (zh) | 2017-10-31 | 2017-10-31 | 五元组规则的查找方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711043135.6A CN107707479B (zh) | 2017-10-31 | 2017-10-31 | 五元组规则的查找方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107707479A true CN107707479A (zh) | 2018-02-16 |
CN107707479B CN107707479B (zh) | 2021-08-31 |
Family
ID=61178056
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711043135.6A Active CN107707479B (zh) | 2017-10-31 | 2017-10-31 | 五元组规则的查找方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107707479B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112367262A (zh) * | 2020-08-20 | 2021-02-12 | 国家计算机网络与信息安全管理中心 | 一种五元组规则的匹配方法及装置 |
CN114363257A (zh) * | 2021-12-29 | 2022-04-15 | 杭州迪普信息技术有限公司 | 隧道报文的五元组匹配方法及装置 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102811169A (zh) * | 2012-07-24 | 2012-12-05 | 成都卫士通信息产业股份有限公司 | 采用哈希算法进行多核并行处理的vpn实现方法及系统 |
CN103188231A (zh) * | 2011-12-30 | 2013-07-03 | 北京锐安科技有限公司 | 一种多核板卡acl规则匹配方法 |
CN103560958A (zh) * | 2013-10-18 | 2014-02-05 | 华为技术有限公司 | 一种数据包的规则匹配方法及装置 |
CN103973684A (zh) * | 2014-05-07 | 2014-08-06 | 北京神州绿盟信息安全科技股份有限公司 | 规则编译匹配方法及装置 |
CN104253754A (zh) * | 2014-09-11 | 2014-12-31 | 杭州华三通信技术有限公司 | 一种acl快速匹配的方法和设备 |
CN104580202A (zh) * | 2014-12-31 | 2015-04-29 | 曙光信息产业(北京)有限公司 | 报文的匹配方法和装置 |
US20150117450A1 (en) * | 2013-10-30 | 2015-04-30 | Telefonaktiebolaget L M Ericsson (Publ) | Method and computing device for packet classification |
CN104954200A (zh) * | 2015-06-17 | 2015-09-30 | 国家计算机网络与信息安全管理中心 | 一种网络数据包的多类型规则高速匹配方法及装置 |
CN105337991A (zh) * | 2015-11-23 | 2016-02-17 | 湖南戎腾网络科技有限公司 | 一种一体化的报文流查找与更新方法 |
US20160112329A1 (en) * | 2013-06-28 | 2016-04-21 | Huawei Technologies Co., Ltd. | Multi-Level Flow Table Search Method and Apparatus |
CN106059957A (zh) * | 2016-05-18 | 2016-10-26 | 中国科学院信息工程研究所 | 一种高并发网络环境下快速流表查找方法和系统 |
CN106789733A (zh) * | 2016-12-01 | 2017-05-31 | 北京锐安科技有限公司 | 一种提高大规模网络流表查找效率的装置及方法 |
-
2017
- 2017-10-31 CN CN201711043135.6A patent/CN107707479B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103188231A (zh) * | 2011-12-30 | 2013-07-03 | 北京锐安科技有限公司 | 一种多核板卡acl规则匹配方法 |
CN102811169A (zh) * | 2012-07-24 | 2012-12-05 | 成都卫士通信息产业股份有限公司 | 采用哈希算法进行多核并行处理的vpn实现方法及系统 |
US20160112329A1 (en) * | 2013-06-28 | 2016-04-21 | Huawei Technologies Co., Ltd. | Multi-Level Flow Table Search Method and Apparatus |
CN103560958A (zh) * | 2013-10-18 | 2014-02-05 | 华为技术有限公司 | 一种数据包的规则匹配方法及装置 |
US20150117450A1 (en) * | 2013-10-30 | 2015-04-30 | Telefonaktiebolaget L M Ericsson (Publ) | Method and computing device for packet classification |
CN103973684A (zh) * | 2014-05-07 | 2014-08-06 | 北京神州绿盟信息安全科技股份有限公司 | 规则编译匹配方法及装置 |
CN104253754A (zh) * | 2014-09-11 | 2014-12-31 | 杭州华三通信技术有限公司 | 一种acl快速匹配的方法和设备 |
CN104580202A (zh) * | 2014-12-31 | 2015-04-29 | 曙光信息产业(北京)有限公司 | 报文的匹配方法和装置 |
CN104954200A (zh) * | 2015-06-17 | 2015-09-30 | 国家计算机网络与信息安全管理中心 | 一种网络数据包的多类型规则高速匹配方法及装置 |
CN105337991A (zh) * | 2015-11-23 | 2016-02-17 | 湖南戎腾网络科技有限公司 | 一种一体化的报文流查找与更新方法 |
CN106059957A (zh) * | 2016-05-18 | 2016-10-26 | 中国科学院信息工程研究所 | 一种高并发网络环境下快速流表查找方法和系统 |
CN106789733A (zh) * | 2016-12-01 | 2017-05-31 | 北京锐安科技有限公司 | 一种提高大规模网络流表查找效率的装置及方法 |
Non-Patent Citations (2)
Title |
---|
KARLENTACHER等: ""A Parallel Search for Korobov Lattice Rules"", 《HTTPS://CORE.AC.UK/DISPLAY/24415737》 * |
胡国良: ""基于并行Bloom过滤器组的深度包检测研究"", 《万方数据库》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112367262A (zh) * | 2020-08-20 | 2021-02-12 | 国家计算机网络与信息安全管理中心 | 一种五元组规则的匹配方法及装置 |
CN114363257A (zh) * | 2021-12-29 | 2022-04-15 | 杭州迪普信息技术有限公司 | 隧道报文的五元组匹配方法及装置 |
CN114363257B (zh) * | 2021-12-29 | 2023-10-17 | 杭州迪普信息技术有限公司 | 隧道报文的五元组匹配方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107707479B (zh) | 2021-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7630373B2 (en) | Packet transfer apparatus | |
US7281085B1 (en) | Method and device for virtualization of multiple data sets on same associative memory | |
US6854117B1 (en) | Parallel network processor array | |
US7606236B2 (en) | Forwarding information base lookup method | |
US8625604B2 (en) | Hash-based prefix-compressed trie for IP route lookup | |
EP1551141B1 (en) | Apparatus and method using hashing for efficiently implementing an IP lookup solution in hardware | |
CN110808910B (zh) | 一种支持QoS的OpenFlow流表节能存储架构及其方法 | |
CA2274962C (en) | High speed variable length best match look-up in a switching device | |
JP3935880B2 (ja) | ネットワーク・プロセッサおよびコンピュータ・システム用ハイブリッド・サーチ・メモリ | |
CN109921996A (zh) | 一种高性能的OpenFlow虚拟流表查找方法 | |
CN100550847C (zh) | 一种解决Hash冲突的方法及装置 | |
US7096277B2 (en) | Distributed lookup based on packet contents | |
CN107528783B (zh) | 利用对前缀长度进行两个搜索阶段的ip路由缓存 | |
US7000061B2 (en) | Caching queue status updates | |
JP2005513895A5 (zh) | ||
CN111131084B (zh) | 一种QoS感知的OpenFlow流表查找方法 | |
CN102195874A (zh) | 数据分组的预提取 | |
CN107454142B (zh) | 一种内容路由器的非阻塞内容缓存方法及装置 | |
CN106789733B (zh) | 一种提高大规模网络流表查找效率的装置及方法 | |
CN108769252A (zh) | 一种基于请求内容关联性的icn网络预缓存方法 | |
CN107707479A (zh) | 五元组规则的查找方法及装置 | |
CN107248939A (zh) | 基于hash存储器的网络流高速关联方法 | |
US20190171582A1 (en) | Managing cache memory in a network element based on costs associated with fetching missing cache entries | |
CN114996023B (zh) | 目标缓存装置、处理装置、网络设备及表项获取方法 | |
Qiu et al. | Ultra-low-latency and flexible in-memory key-value store system design on CPU-FPGA |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |