CN109905413B - 一种ip地址的匹配方法及装置 - Google Patents
一种ip地址的匹配方法及装置 Download PDFInfo
- Publication number
- CN109905413B CN109905413B CN201910365327.1A CN201910365327A CN109905413B CN 109905413 B CN109905413 B CN 109905413B CN 201910365327 A CN201910365327 A CN 201910365327A CN 109905413 B CN109905413 B CN 109905413B
- Authority
- CN
- China
- Prior art keywords
- separation
- bit
- network
- node
- network segment
- 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
Images
Abstract
本申请提供了一种IP地址的匹配方法及装置,涉及网络安全技术领域,该方法包括:获取待匹配的目标IP地址;在所述定位表中选择至少一待匹配分隔位、以及各所述待匹配分隔位对应的第一分隔网段,计算所述目标IP地址中网络位号为所述待匹配分隔位对应的地址网段的第一特征值,并通过比较所述第一特征值及各所述第一分隔网段的特征值,在所述定位表中查找是否存在与所述目标IP地址匹配的最长分隔网段;若存在所述最长分隔网段,则在所述前缀树中,从存储所述最长分隔网段的目标分隔子节点开始,通过比较所述目标IP地址的比特序列,按照最长匹配原则,在所述前缀树中查找是否存在与所述目标IP地址匹配的目标子节点。采用本申请可以提高IP地址的匹配效率。
Description
技术领域
本申请涉及网络安全技术领域,特别是涉及一种IP地址的匹配方法及装置。
背景技术
目前,网络设备中通常存储有安全策略,安全策略包括多个安全规则(rule)。安全规则中通常包含互联网协议IP地址匹配项,以便对IP地址进行匹配。在实际应用中,通常以IP前缀的形式来表示该IP地址匹配项对应的IP地址范围,IP前缀包括IP地址和前缀长度。例如,rule1的IP地址匹配项为FFFF/16,rule2的IP地址匹配项为FE/8。其中,“/”之前的字符为16进制表示的IP地址,“/”之后的数字为前缀长度(即以二进制表示的IP地址中,IP前缀包含的位数,可记为N)。前缀长度表示固定的位,即前缀长度表示IP地址范围中的前N位与IP地址中的前N位相同。
网络设备通常根据各安全规则中的IP地址匹配项(即已知地址网段)构建前缀树,前缀树由根节点和多个子节点构成,每一个子节点表示某一位的网络位号、并存储前缀长度等于该子节点所表示的网络位号的地址网段。如图1所示,为前缀树的一种示例。其中,表示的网络位号相同的子节点构成一个节点层。
网络设备可以根据安全规则包含的已知地址网段和预设的前缀树生成算法来生成前缀树,具体的处理过程为:针对每个已知地址网段,从根节点开始遍历节点,查找存储与该已知地址网段匹配的最长网段的目标子节点。如果该最长网段与该已知地址网段不相同,则通过比较已知地址网段和该最长网段的比特序列,在该已知地址网段中确定与该最长网段的失配位,并提取该失配位之前的网络位号作为前缀长度的地址网段作为公共前缀。其中,失配位为通过比较比特序列确定出的第一个不匹配的比特位的网络位号。例如,FE/8与FFFF/15的失配位为第8位,则提取出前7位FF/7作为公共前缀。然后,在前缀树中添加存储该公共前缀的第一子节点。若目标子节点存储的公共前缀不为该已知地址网段,则为该第一子节点添加一孩子节点,用于存储该已知地址网段,并将存储最长网段的子节点作为第一子节点的另一孩子节点。若第一子节点存储的公共前缀为该已知地址网段,则将存储最长网段的子节点作为第一子节点的孩子节点。之后,关联存储该已知地址网段的子节点和该已知地址网段所属的安全规则。其中,与公共前缀的失配位为0的地址网段存储在左孩子节点中,与公共前缀的失配位为1的地址网段存储在右孩子节点中。如果该目标子节点与该已知地址网段匹配,则直接关联目标子节点与该已知地址网段所属的安全规则。
然而,对于IPV6中的IP地址,前缀树最多包含128个节点层。因此,在通过前缀树进行IP地址的匹配时,最多需要进行128次匹配才能判断是否命中规则,匹配效率较低。
发明内容
本申请实施例的目的在于提供一种IP地址的匹配方法及装置,以提高IP地址的匹配效率。具体技术方案如下:
第一方面,提供了一种IP地址的匹配方法,所述方法应用于网络设备,所述网络设备中存储有依据至少一个已知地址网段创建的前缀树和所述前缀树对应的定位表,其中,所述前缀树的每一子节点表示至少一位的网络位号并存储前缀长度等于该子节点所表示的网络位号的地址网段,所述前缀树包括表示互联网协议IP地址中分隔位的分隔子节点,所述分隔位为预设比特位所表示的网络位号,所述前缀树中除所述分隔子节点之外的其他子节点存储所述至少一个已知地址网段中前缀长度等于该子节点所表示网络位号的网段,所述定位表包含分隔位、所述前缀树中表示该分隔位的分隔子节点存储的分隔网段、以及该分隔网段的特征值;
所述方法包括:
获取待匹配的目标IP地址;
在所述定位表中选择至少一待匹配分隔位、以及各所述待匹配分隔位对应的第一分隔网段,计算所述目标IP地址中网络位号为所述待匹配分隔位对应的地址网段的第一特征值,并通过比较所述第一特征值及各所述第一分隔网段的特征值,在所述定位表中查找是否存在与所述目标IP地址匹配的最长分隔网段;
若存在所述最长分隔网段,则在所述前缀树中,从存储所述最长分隔网段的目标分隔子节点开始,通过比较所述目标IP地址的比特序列,按照最长匹配原则,在所述前缀树中查找是否存在与所述目标IP地址匹配的目标子节点。
可选的,所述在所述定位表中选择至少一待匹配分隔位、以及各所述待匹配分隔位对应的第一分隔网段,计算所述目标IP地址中网络位号为所述待匹配分隔位对应的地址网段的第一特征值,并通过比较所述第一特征值及各所述第一分隔网段的特征值,在所述定位表中查找是否存在与所述目标IP地址匹配的最长分隔网段,包括:
在所述定位表中包含的各所述分隔位中确定中间分隔位作为所述待匹配分隔位;
计算所述目标IP地址中网络位号为所述中间分隔位对应的地址网段的第一特征值,并判断所述定位表中所述中间分隔位对应的各特征值中,是否存在所述第一特征值;
如果存在所述第一特征值、且所述前缀树中存储所述第一特征值对应的分隔网段的分隔子节点存在孩子节点,则在所述中间分隔位之后的分隔位中重新确定中间分隔位作为所述待匹配分隔位,以确定是否存在与所述目标IP地址匹配的最长分隔网段;
如果不存在所述第一特征值,则在所述中间分隔位之前的分隔位中重新确定中间分隔位作为所述待匹配分隔位,以确定是否存在与所述目标IP地址匹配的最长分隔网段。
可选的,所述方法还包括:
若不存在所述最长分隔网段,则在所述前缀树中,从根节点开始,通过比较所述目标IP地址的比特序列,按照最长匹配原则,在所述前缀树中查找是否存在与所述目标IP地址匹配的目标子节点。
可选的,在所述获取待匹配的目标IP地址之前,所述方法还包括:
获取第一已知地址网段,并判断所述第一已知地址网段的网络位号是否小于各分隔位中网络位号最小的分隔位;
若小于,则在当前的前缀树中添加网络位号为所述第一已知地址网段的网络位号的子节点,并将所述第一已知地址网段存储至所述子节点;
否则,则针对所述至少一分隔位中的第一分隔位,在当前的前缀树中,查找表示网络位号为所述第一分隔位的第一分隔子节点;
若未查找到所述第一分隔子节点,则建立所述第一分隔子节点,将所述第一已知地址网段中网络位号为所述第一分隔位对应的分隔网段存储至所述第一分隔子节点;或者,若查找到所述第一分隔子节点,且所述第一分隔子节点存储的地址网段不是所述第一已知地址网段中网络位号为所述第一分隔位对应的分隔网段,则建立所述第一分隔子节点的兄弟节点,并将所述第一已知地址网段中网络位号为所述第一分隔位对应的分隔网段存储至所述第一分隔子节点的兄弟节点;
继续查找表示网络位号为所述至少一分隔位中除第一分隔位之外的其他分隔位的分隔子节点,直到查找到所述至少一分隔位中所有分隔位的分隔子节点;
判断所述第一已知地址网段的网络位号是否是所述至少一分隔位中网络位号;
若所述第一已知地址网段的网络位号不是所述至少一分隔位中网络位号,则在当前的前缀树中确定表示网络位号小于所述第一已知地址网段的网络位号、且与所述第一已知地址网段的网络位号最接近的子节点,为确定出的子节点添加孩子节点,并将所述第一已知地址网段存储至添加的孩子节点。
可选的,还包括:
计算各分隔子节点存储的分隔网段的特征值,并在所述定位表中记录各所述分隔位、表示网络位号为该分隔位的分隔子节点存储的分隔网段及分隔网段的特征值。
可选的,还包括:
在添加存储所述第一已知地址网段的子节点后,关联添加的子节点与所述第一已知地址网段所属的安全规则。
第二方面,提供了一种IP地址的匹配装置,所述装置应用于网络设备,所述网络设备中存储有依据至少一个已知地址网段创建的前缀树和所述前缀树对应的定位表,其中,所述前缀树的每一子节点表示至少一位的网络位号并存储前缀长度等于该子节点所表示的网络位号的地址网段,所述前缀树包括表示互联网协议IP地址中分隔位的分隔子节点,所述分隔位为预设比特位所表示的网络位号,所述前缀树中除所述分隔子节点之外的其他子节点存储所述至少一个已知地址网段中前缀长度等于该子节点所表示网络位号的网段,所述定位表包含分隔位、所述前缀树中表示该分隔位的分隔子节点存储的分隔网段、以及该分隔网段的特征值;
所述装置包括:
获取模块,用于获取待匹配的目标IP地址;
第一查找模块,用于在所述定位表中选择至少一待匹配分隔位、以及各所述待匹配分隔位对应的第一分隔网段,计算所述目标IP地址中网络位号为所述待匹配分隔位对应的地址网段的第一特征值,并通过比较所述第一特征值及各所述第一分隔网段的特征值,在所述定位表中查找是否存在与所述目标IP地址匹配的最长分隔网段;
第二查找模块,用于若存在所述最长分隔网段,则在所述前缀树中,从存储所述最长分隔网段的目标分隔子节点开始,通过比较所述目标IP地址的比特序列,按照最长匹配原则,在所述前缀树中查找是否存在与所述目标IP地址匹配的目标子节点。
可选的,所述第一查找模块,具体用于:
在所述定位表中包含的各所述分隔位中确定中间分隔位作为所述待匹配分隔位;
计算所述目标IP地址中网络位号为所述中间分隔位对应的地址网段的第一特征值,并判断所述定位表中所述中间分隔位对应的各特征值中,是否存在所述第一特征值;
如果存在所述第一特征值、且所述前缀树中存储所述第一特征值对应的分隔网段的分隔子节点存在孩子节点,则在所述中间分隔位之后的分隔位中重新确定中间分隔位作为所述待匹配分隔位,以确定是否存在与所述目标IP地址匹配的最长分隔网段;
如果不存在所述第一特征值,则在所述中间分隔位之前的分隔位中重新确定中间分隔位作为所述待匹配分隔位,以确定是否存在与所述目标IP地址匹配的最长分隔网段。
可选的,所述装置还包括:
第三查找模块,用于若不存在所述最长分隔网段,则在所述前缀树中,从根节点开始,通过比较所述目标IP地址的比特序列,按照最长匹配原则,在所述前缀树中查找是否存在与所述目标IP地址匹配的目标子节点。
可选的,所述装置还包括:
第一判断模块,用于获取第一已知地址网段,并判断所述第一已知地址网段的网络位号是否小于各分隔位中网络位号最小的分隔位;
若小于,则在当前的前缀树中添加网络位号为所述第一已知地址网段的网络位号的子节点,并将所述第一已知地址网段存储至所述子节点;
否则,则针对所述至少一分隔位中的第一分隔位,在当前的前缀树中,查找表示网络位号为所述第一分隔位的第一分隔子节点;
若未查找到所述第一分隔子节点,则建立所述第一分隔子节点,将所述第一已知地址网段中网络位号为所述第一分隔位对应的分隔网段存储至所述第一分隔子节点;或者,若查找到所述第一分隔子节点,且所述第一分隔子节点存储的地址网段不是所述第一已知地址网段中网络位号为所述第一分隔位对应的分隔网段,则建立所述第一分隔子节点的兄弟节点,并将所述第一已知地址网段中网络位号为所述第一分隔位对应的分隔网段存储至所述第一分隔子节点的兄弟节点;
继续查找表示网络位号为所述至少一分隔位中除第一分隔位之外的其他分隔位的分隔子节点,直到查找到所述至少一分隔位中所有分隔位的分隔子节点;
第二判断模块,用于判断所述第一已知地址网段的网络位号是否是所述至少一分隔位中网络位号;
若所述第一已知地址网段的网络位号不是所述至少一分隔位中网络位号,则在当前的前缀树中确定表示网络位号小于所述第一已知地址网段的网络位号、且与所述第一已知地址网段的网络位号最接近的子节点,为确定出的子节点添加孩子节点,并将所述第一已知地址网段存储至添加的孩子节点。
可选的,所述装置还包括:
记录模块,用于计算各分隔子节点存储的分隔网段的特征值,并在所述定位表中记录各所述分隔位、表示网络位号为该分隔位的分隔子节点存储的分隔网段及分隔网段的特征值。
可选的,所述装置还包括:
关联模块,用于在添加存储所述第一已知地址网段的子节点后,关联添加的子节点与所述第一已知地址网段所属的安全规则。
第三方面,提供了一种网络设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第一方面任一所述的方法步骤。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面任一所述的方法步骤。
第七方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的方法。
本申请实施例提供的一种IP地址的匹配方法及装置。网络设备中存储有依据至少一个已知地址网段创建的前缀树和前缀树对应的定位表,其中,前缀树的每一子节点表示至少一位的网络位号并存储前缀长度等于该子节点所表示的网络位号的地址网段,前缀树包括表示互联网协议IP地址中分隔位的分隔子节点,分隔位为预设比特位所表示的网络位号,前缀树中除分隔子节点之外的其他子节点存储至少一个已知地址网段中前缀长度等于该子节点所表示网络位号的网段,定位表包含分隔位、前缀树中表示该分隔位的分隔子节点存储的分隔网段、以及该分隔网段的特征值。
网络设备获取到待匹配的目标IP地址后,在定位表中选择至少一待匹配分隔位、以及各待匹配分隔位对应的第一分隔网段,计算目标IP地址中网络位号为待匹配分隔位对应的地址网段的第一特征值,并通过比较第一特征值及各第一分隔网段的特征值,在定位表中查找是否存在与目标IP地址匹配的最长分隔网段。若存在最长分隔网段,则在前缀树中,从存储最长分隔网段的目标分隔子节点开始,通过比较目标IP地址的比特序列,按照最长匹配原则,在前缀树中查找是否存在与目标IP地址匹配的目标子节点。本方案中,通过设置分隔位,可以先对分隔位对应的分隔网段进行匹配。在确定出在与目标IP地址匹配的最长分隔网段后,直接在前缀树中,从存储最长分隔网段的目标分隔子节点开始进行匹配,无需匹配表示网络位号小于分隔位的子节点,能够有效的减少匹配次数,提高IP地址的匹配效率。
当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种现有的前缀树的示意图;
图2为本申请实施例提供的一种构建前缀树的方法流程图;
图3A为本申请实施例提供的一种包含表示IP地址中分隔位的分隔子节点的前缀树的示意图;
图3B为本申请实施例提供的另一种包含表示IP地址中分隔位的分隔子节点的前缀树的示意图;
图3C为本申请实施例提供的另一种包含表示IP地址中分隔位的分隔子节点的前缀树的示意图;
图3D为本申请实施例提供的另一种包含表示IP地址中分隔位的分隔子节点的前缀树的示意图;
图4为本申请实施例提供的一种IP地址的匹配方法流程图;
图5为本申请实施例提供的一种IP地址的匹配装置的结构示意图;
图6为本申请实施例提供的一种网络设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种IP地址的匹配方法,可以应用于网络设备。其中,网络设备可以为防火墙、入侵防御系统(英文:Intrusion Prevention System,简称:IPS)设备等设备。目前,当网络设备接收到通信报文时,可以基于预先配置的安全策略对该通信报文进行过滤。安全策略可以包括至少一个匹配规则(即rule),匹配规则中可以包括IP地址匹配项,比如源IP地址匹配项、目的IP地址匹配项等。已知地址网段通常为一个已知地址网段。
在实际应用中,通常以IP前缀的形式来表示该已知地址网段,IP前缀包括IP地址和前缀长度。例如,rule1的IP地址匹配项为FFFF/16,rule2的IP地址匹配项为FE/8。其中,“/”之前的字符为16进制表示的IP地址,“/”之后的数字为前缀长度(即以二进制表示的IP地址中,IP前缀包含的位数,可记为N)。前缀长度表示固定的位,即前缀长度表示IP地址范围中的前N位与IP地址中的前N位相同。
网络设备通常会根据各安全规则中的已知地址网段构建前缀树,前缀树由根节点和多个子节点构成,每一个子节点表示某一位的网络位号、并存储前缀长度等于该子节点所表示的网络位号的地址网段。其中,表示的网络位号相同的子节点构成一个节点层。后续,当获取到待匹配的IP地址时,网络设备可以通过该前缀树进行IP地址匹配,从而确定出该IP地址命中的安全规则。
本申请实施例提供的前缀树中,可以包括表示IP地址中分隔位的分隔子节点,前缀树中除分隔子节点之外的其他子节点存储至少一个已知地址网段中前缀长度等于该子节点所表示网络位号的网段。
其中,分隔位为预设比特位所表示的网络位号。可选的,分隔位可以为预设比特位数的整数倍所表示的网络位号,也可以由技术人员根据需要进行设置。在一种实现方式中,可以按照对IP地址包含的网络位号进行等分划分的方式,确定分隔位,例如,IP地址可以为128位的二进制数(即包含128个网络位号),可以将该IP地址按照4等分进行划分,也即,可以设置第32位、第64位和第96位为分隔位。在另一种实现方式中,由于程序中会将IP地址当成长度为16的char型数组,或者长度为8的USHORT型数组,或者长度为4的UINT型数组,因此,分隔位可以为程序中数组长度的整数倍。例如,对于IPV6中的IP地址,可以以16为单位进行划分(即8等分),或者以8为单位进行划分(即16等分),或者以4为单位进行划分(即32等分),本申请实施例不做限定。本申请实施例中,分隔位的数目可以为奇数,以便进行折半查找。
网络设备中还可以存储前缀树对应的定位表,定位表包含分隔位、前缀树中表示该分隔位的分隔子节点存储的分隔网段、以及该分隔网段的特征值。其中,该特征可以为哈希值。
为了便于理解,本申请实施例首先对前缀树和定位表的构建过程进行说明,如图2所示,具体包括以下步骤。
步骤S201,获取第一已知地址网段。
其中,第一已知地址网段可以为某安全规则(比如第一安全规则)设定的匹配项中包含的网段。
本申请实施例中,安全策略可以包括多个安全规则,各安全规则设定的匹配项中可以包括已知地址网段,已知地址网段可以用于对IP地址进行匹配。网络设备可以从多个安全策略中,先获取第一安全策略,然后再获取第一安全策略中的第一已知地址网段。或者,也可以获取全部安全规则中包含的已知地址网段,并进行去重处理,得到网段集合,并建立已知地址网段和安全规则的对应关系,进而从网段集合中获取第一已知地址网段。
步骤S202,判断第一已知地址网段的网络位号是否小于各分隔位中网络位号最小的分隔位。
本申请实施例中,网络设备获取到第一已知地址网段后,可以在各分隔位中,确定网络位号最小的分隔位,然后将第一已知地址网段的网络位号与该分隔位进行对比。如果第一已知地址网段的网络位号,小于各分隔位中网络位号最小的分隔位,则执行步骤S203;否则,执行步骤S204。
步骤S203,在当前的前缀树中添加网络位号为第一已知地址网段的网络位号的子节点,并将第一已知地址网段存储至子节点。
本申请实施例中,如果第一已知地址网段的网络位号,小于各分隔位中网络位号最小的分隔位,则说明第一已知地址网段中,不包含任一分隔位对应的网段。网络设备可以根据现有技术中的前缀树生成算法,在当前的前缀树中添加网络位号为第一已知地址网段的网络位号的子节点,并将第一已知地址网段存储至子节点。具体的处理过程为:从当前前缀树的根节点开始遍历子节点,确定存储与第一已知地址网段匹配的最长网段的第一子节点。如果该最长网段与第一已知地址网段不相同,则在第一已知地址网段中,确定与该最长网段的失配位,并提取该失配位之前的地址网段作为公共前缀。
例如,假设当前前缀树中包含子节点为:存储FF/6的子节点、以及存储FFFF/15的子节点,第一已知地址网段为FE/8,FE/8与FF/6匹配的比特位的网络位号为6,FE/8与FFFF/15匹配的比特位的网络位号为7,则确定FFFF/15为与FE/8匹配的最长网段。FE/8与FFFF/15的失配位为第8位,则提取出前7位FF/7作为公共前缀。
然后,网络设备可以在前缀树中添加存储该公共前缀的第一子节点,将存储最长网段的子节点作为第一子节点的一孩子节点,并为该第一子节点添加另一孩子节点,用于存储第一已知地址网段。之后,关联存储第一已知地址网段的子节点和第一已知地址网段所属的安全规则。其中,与公共前缀的失配位为0的地址网段存储在左孩子节点中,与公共前缀的失配位为1的地址网段存储在右孩子节点中。如果该第一子节点与第一已知地址网段匹配,则直接关联第一子节点与第一已知地址网段所属的安全规则。
步骤S204,针对至少一分隔位中的第一分隔位,在当前的前缀树中,查找表示网络位号为第一分隔位的第一分隔子节点。
本申请实施例中,如果第一已知地址网段的网络位号,不小于各分隔位中网络位号最小的分隔位,则说明第一已知地址网段的比特序列,包含网络位号为至少一分隔位对应的第一网段的比特序列,即第一已知地址网段的比特序列中前缀长度为该分隔位的比特序列,与前缀长度为该分隔位所表示网络位号的第一网段的比特序列相同。例如:分隔位为4、8,第一已经地址网段为FF/6,那么说明FF/6的比特序列包含F/4的比特序列,即,FF/6的前4位与F/4的前4位相同。针对至少一分隔位中的第一分隔位,网络设备可以在当前的前缀树中,查找表示网络位号为第一分隔位的第一分隔子节点。
在本申请实施例中,分隔位对应的分隔网段,即为前缀长度为该分隔位所表示网络位号的地址网段。
步骤S205,若未查找到第一分隔子节点,则建立第一分隔子节点,将第一已知地址网段中网络位号为第一分隔位对应的分隔网段存储至第一分隔子节点。或者,若查找到第一分隔子节点,且第一分隔子节点存储的地址网段不是第一已知地址网段中网络位号为第一分隔位对应的分隔网段,则建立第一分隔子节点的兄弟节点,并将第一已知地址网段中网络位号为第一分隔位对应的分隔网段存储至第一分隔子节点的兄弟节点。
在本申请实施例中,地址网段中网络位号为分隔位对应的分隔网段是指:前缀长度为该分隔位所表示的网络位号、且前缀中各网络位组成的比特序列与该地址网段对应网络位组成的比特序列相同的网段。例如:地址网段为FF/6,分隔位为4,那么地址网段(FF/6)中网络位号分隔位(4)对应的分隔网段为(F/4)。
本申请实施例中,若未查找到第一分隔子节点,则说明当前前缀树中还未添加表示网络位号为第一分隔位的分隔子节点,网络设备可以建立第一分隔子节点,并可以在第一已知地址网段中,确定网络位号为第一分隔位对应的分隔网段(可称为目标分隔网段),然后将目标分隔网段存储至第一分隔子节点,具体的处理过程如下。
网络设备可以在当前的前缀树中,确定表示网络位号小于第一分隔位、且与第一分隔位最接近的子节点,然后,可以在这些子节点中,确定存储与目标分隔网段匹配的网段的第二子节点。例如,子节点表示的网络位号可记为N,表示的网络位号为N的子节点所构成的节点层可以记为DN,当前的前缀树包括根节点、D4节点层和D8节点层,第一分隔位为12,则表示网络位号小于12、且与12最接近的子节点为D8节点层中的子节点。其中,在对第一已知地址网段进行处理时,由于当前前缀树中只存在根节点,则确定表示网络位号小于第一分隔位、且与第一分隔位最接近的节点为根节点。在这里,与第一分隔位最接近的子节点/节点,可以是表示网络位号与第一分隔位差值最小的子节点/节点。
网络设备确定第二子节点后,可以在目标分隔网段中,确定与第二子节点存储的地址网段的失配位。例如,假设第二子节点表示的网络位号为M,则目标分隔网段中的M+1位为失配位。网络设备可以获取该失配位的数值,以便进行后续处理。例如,目标分隔网段为FF/12,第二子节点存储的地址网段为FF/8,则失配位为1。
可选的,如果失配位为0,则网络设备添加第二子节点的左孩子节点,将目标分隔网段存储至左孩子节点中。如果失配位为1,则网络设备添加第二子节点的右孩子节点,将目标分隔网段存储至右孩子节点。
本申请实施例中,如表一所示,每个子节点中可以存储以下数据。
表一
字段 | 含义 |
StartLevel | 节点的起始地址 |
EndLevel | 节点的截止地址 |
Route | 节点索引 |
RuleList | 与本节点关联的rule列表 |
Address | IP地址 |
Mask Address | 前缀长度 |
*pstLeft | 本节点的左子节点的节点位置 |
*pstRight | 本节点的右子节点的节点位置 |
*pstParent | 本节点的父节点的节点位置 |
若查找到第一分隔子节点,则网络设备进一步比较第一分隔子节点存储的地址网段与目标分隔网段是否相同。
如果第一分隔子节点存储的地址网段与目标分隔网段不相同,则网络设备建立第一分隔子节点的兄弟节点,并将目标分隔网段存储至第一分隔子节点的兄弟节点。
如果第一分隔子节点存储的地址网段与目标分隔网段相同,则说明当前前缀树中已经存在存储目标分隔网段的分隔子节点,网络设备无需进行处理。
步骤S206,继续查找表示网络位号为至少一分隔位中除第一分隔位之外的其他分隔位的分隔子节点,直到查找到至少一分隔位中所有分隔位的分隔子节点。
本申请实施例中,针对至少一分隔位中除第一分隔位之外的其他每一分隔位,网络设备执行步骤S204-205,以继续查找表示网络位号为至少一分隔位中除第一分隔位之外的其他分隔位的分隔子节点,直到查找到至少一分隔位中所有分隔位的分隔子节点。这样,确定第一已知地址网段中每个分隔位对应的分隔网段,并在前缀树中添加表示每个分隔位、且存储前缀长度等于该分隔位的地址网段的子节点。
步骤S207,判断第一已知地址网段的网络位号是否是至少一分隔位中网络位号。
本申请实施例中,网络设备获取到第一已知地址网段后,还可以判断第一已知地址网段的网络位号是否是至少一分隔位中网络位号。例如,设置第32位、第64位和第96位为分隔位,则判断第一已知地址网段的网络位号是否为32、64和96中的一个。
步骤S208,若第一已知地址网段的网络位号不是至少一分隔位中网络位号,则在当前的前缀树中确定表示网络位号小于第一已知地址网段的网络位号、且与第一已知地址网段的网络位号最接近的子节点,为确定出的子节点添加孩子节点,并将第一已知地址网段存储至添加的孩子节点。
本申请实施例中,若第一已知地址网段的网络位号不是至少一分隔位中网络位号,则网络设备根据现有技术中的前缀树生成算法,在当前的前缀树中确定表示网络位号小于第一已知地址网段的网络位号、且与第一已知地址网段的网络位号最接近的子节点,然后,为确定出的子节点添加孩子节点,并将第一已知地址网段存储至添加的孩子节点。该处理过程与步骤S203的处理过程类似,此处不再赘述。
可选的,网络设备还可以更新定位表,具体可以为:计算各分隔子节点存储的分隔网段的特征值,并在定位表中记录各分隔位、表示网络位号为该分隔位的分隔子节点存储的分隔网段及分隔网段的特征值。
本申请实施例中,网络设备中可以存储有定位表,在对第一个已知地址网段进行处理时,当前的前缀树中只包含根节点,当前的定位表中只包含分隔位,其他字段为空。为了实现定位表中的IP前缀与目标IP地址的能够快速的进行匹配,网络设备可以分别计算每个分隔网段的特征值,以便后续根据特征值进行快速匹配。其中,该特征值可以为哈希值。本申请实施例以定位表中存储有每个分隔网段的特征值的情况为例进行说明。如表二所示,定位表可以包括以下字段。
表二
分隔位 | 哈希值 | 分隔网段 | 节点位置 |
针对前缀树中的每个分隔子节点,网络设备建立该分隔子节点后,可以获取分隔子节点的节点位置,该节点位置可以是该节点的存储地址,并且,网络设备还可以计算该分隔子节点存储的分隔网段的特征值,然后,网络设备可以在定位表中,记录该分隔位、表示网络位号为该分隔位的分隔子节点存储的分隔网段、该分隔网段的特征值、以及该分隔子节点的节点位置。如表三所示,为本申请实施例提供的一种定位表的示例。
表三
其中,分隔位4对应的节点层中包含1个分隔子节点,该分隔子节点的存储的分隔网段为F/4;分隔位8对应的节点层中包含2个分隔子节点中,这2个分隔子节点存储的分隔网段分别为FF/8和FE/8;分隔位12对应的节点层中包含1个分隔子节点中,该分隔子节点存储的分隔网段为FFF/12。
本申请实施例还提供了一种前缀树和定位表的构建过程示例,本示例以16位的IP地址为例进行说明,其他情况与之类似。假设有4个rule,每个rule包含的IP前缀如表四所示。预设的分隔位的网络位号为第4位、第8位和第12位。
表四
rule | IP |
rule1 | FFFF/16 |
rule2 | FFFE/16 |
rule3 | FE/8 |
rule4 | FC/7 |
网络设备按照从rule1-rule4的顺序构建前缀树。网络设备首先对rule1包含的已知地址网段FFFF/16进行处理,FFFF/16中,分隔位4对应的分隔网段为F/4、分隔位8对应的分隔网段为FF/8、分隔位12对应的分隔网段为FFF/12。网络设备先对F/4进行匹配,由于当前的前缀树中只存在根节点,而根节点中不包含任何分隔网段,可以确定失配位为1,生成根节点的右孩子节点(可记为节点1),节点1表示的网络位号为4、并存储分隔网段F/4,然后,对FF/8进行匹配,FF/8与F/4的失配位为1,则生成节点1的右孩子节点(可记为节点2),节点2表示的网络位号为8、并存储分隔网段FF/8,然后,对FFF/12进行匹配,FFF/12与FF/8的失配位为1,则生成节点2的右孩子节点(可记为节点3),节点3表示的网络位号为12、并存储分隔网段FFF/12。网络设备将FFFF/16插入到当前的前缀树。当前的前缀树中,与FFFF/16匹配的最长分隔网段为FFF/12,存储FFF/12的分隔子节点为节点3,而FFFF/16与FFF/12的失配位为1,则生成节点3的右孩子节点(可记为节点4),节点4表示的网络位号为16、并存储已知地址网段FFFF/16,然后关联节点4和rule1,此时,前缀树可以如图3A所示。同时,网络设备还可以分别计算上述确定出的每个分隔网段的哈希值,然后在定位表中添加上述确定出的分隔网段、以及每个分隔网段的哈希值、以及存储各分隔网段的分隔子节点的节点位置,得到的定位表可以如表五所示。
表五
分隔位 | 哈希值 | 分隔网段 | 节点位置 |
4 | 哈希值1 | F/4 | 地址1 |
8 | 哈希值2 | FF/8 | 地址2 |
12 | 哈希值4 | FFF/12 | 地址4 |
网络设备对rule2包含的已知地址网段FFFE/16进行处理,FFFE/16中,分隔位4对应的分隔网段为F/4、分隔位8对应的分隔网段为FF/8、分隔位12对应的分隔网段为FFF/12。这些分隔位均存在于当前的前缀树中,则网络设备仅需按照现有的前缀树生成算法,添加表示网络位号为16、并存储FFFE/16的子节点(可记为节点5),然后关联节点5和rule2。得到的前缀树如图3B所示,此时,无需修改定位表。
网络设备对rule3包含的已知地址网段FE/8进行处理,FE/8中,分隔位4对应的分隔网段为F/4、分隔位8对应的分隔网段为FE/8。其中,当前的前缀树中存在表示网络位号为8的分隔子节点,但该分隔子节点存储的分隔网段不是FE/8,则需要建立表示网络位号为8、且存储FE/8的分隔子节点。表示网络位号为8的分隔子节点的上一层节点层,是表示网络位号为4的分隔子节点构成的节点层。其中,F/4与FE/8匹配的失配位为0,则生成节点1的左孩子节点(可记为节点6),然后关联节点6和rule3。节点6表示的网络位号为8、并存储分隔网段FE/8,得到的前缀树如图3C所示。同时,网络设备计算FE/8的哈希值,并将定位表更新如下。
表六
网络设备对rule4包含的已知地址网段FC/7进行处理,FC/7中,分隔位4对应的分隔网段为F/4。当前的前缀树中存在存储F/4的分隔子节点,则网络设备仅需按照现有的前缀树生成算法,添加表示网络位号为7、且存储FC/7的子节点(可记为节点7),然后关联节点7和rule4。得到的前缀树如图3D所示,此时,无需修改定位表。
下面将结合具体实施方式,对本申请实施例提供的一种IP地址的匹配方法进行详细的说明,如图4所示,具体步骤如下。
步骤401,获取待匹配的目标IP地址。
本申请实施例中,网络设备可以获取待匹配的目标IP地址。例如,当网络设备接收到通信报文后,可以对通信报文进行解析,得到通信报文中携带的IP地址,作为目标IP地址。目标IP地址可以是源IP地址,也可以是目的IP地址。
步骤402,在定位表中选择至少一待匹配分隔位、以及各待匹配分隔位对应的第一分隔网段,计算目标IP地址中网络位号为待匹配分隔位的地址网段的第一特征值,并通过比较第一特征值及各第一分隔网段的特征值,在定位表中查找是否存在与目标IP地址匹配的最长分隔网段。
本申请实施例中,网络设备可以在定位表进行查找,以确定至少一待匹配分隔位。例如,网络设备可以按照分隔位由小到大的顺序进行查找,具体的,网络设备可以按照分隔位由小到大的顺序确定待匹配分隔位,并从定位表中获取该待匹配分隔位对应的分隔网段(即第一分隔网段)。在另一个示例中,还可以以由大到小的顺序确定待匹配分隔位。本申请实施例确定待匹配分隔位的方式多种多样,不作特别限定,以下仅作示例。
针对每个待匹配分隔位,网络设备可以从目标IP地址中,提取该待匹配分隔位对应的地址网段,并根据预设的特征值算法,计算提取出的地址网段的第一特征值。然后,网络设备可以将第一特征值与该待匹配分隔位对应的第一分隔网段的特征值进行对比,如果二者相同,则确定第一分隔网段与目标IP地址匹配。如果二者不相同,则确定第一分隔网段与目标IP地址不匹配。这样,网络设备可以对每个待匹配分隔位进行匹配,以确定定位表中是否存在与目标IP地址匹配的最长分隔网段。
以16位的IP地址为例,如果分隔位为8,则网络设备可以从该IP地址中提取前8位的比特序列,然后计算提取出的比特序列的哈希值(可记为哈希值M),进而将哈希值M与定位表中分隔位8对应的各哈希值中进行对比,以确定是否存在与哈希值M相同的哈希值。
在一个实施例中,可以通过折半查找规则来查找定位表,具体的,步骤402可以包括以下步骤。
步骤一、在定位表中包含的各分隔位中确定中间分隔位作为所述待匹配分隔位。
本申请实施例中,网络设备可以在预设的多个分隔位中,确定中间分隔位,以表五为例,中间分隔位为第8位。可选的,分隔位的总数可以为奇数,以便确定中间分隔位。另外,对于分隔位的总数为偶数的,中间分隔位可以为总数除以2所表示的分隔位。例如,总数为6个,则中间分隔位为第3(即6/2=3)个分隔位。
步骤二、计算目标IP地址中网络位号为中间分隔位对应的地址网段的第一特征值,并判断定位表中中间分隔位对应的各特征值中,是否存在第一特征值。
本申请实施例中,网络设备确定中间分隔位后,可以计算目标IP地址中网络位号为中间分隔位对应的地址网段的第一特征值。然后,网络设备可以在定位表中,查询中间分隔位对应的特征值,进而将第一特征值与查询到的各特征值进行对比,以确定中间分隔位对应的各特征值中是否第一特征值。例如,参照表六,目标IP地址为FFFD/16,中间分隔位8对应的地址网段为FF/8,计算出的第一特征值为哈希值2,可以确定中间分隔位8对应的各特征值中,存在哈希值2。
步骤三、如果存在第一特征值、且前缀树中存储第一特征值对应的分隔网段的分隔子节点存在孩子节点,则在中间分隔位之后的分隔位中重新确定中间分隔位作为所述待匹配分隔位,以确定是否存在与目标IP地址匹配的最长分隔网段。
本申请实施例中,如果存在第一特征值,则可以进一步判断前缀树中存储第一特征值对应的分隔网段的分隔子节点是否存在孩子节点。
如果不存在孩子节点,则说明该分隔子节点为是该分隔子节点所属分支的最后一个节点,网络设备可以获取关联该分隔子节点的安全规则,将该安全规则作为该目标IP地址命中的安全规则,匹配结束。
如果存在孩子节点,则可以在该中间分隔位之后的分隔位中,重新确定中间分隔位,作为所述待匹配分隔位,以便继续进行查找。
在一种示例中,假设分隔位为第4位、第8位、第12位、第16位、第20位,中间分隔位为第12位,则计算目标IP地址中网络位号为第12位对应的地址网段的特征值A,如果第12位对应的特征值中存在特征值A、且前缀树中存储特征值A对应的分隔网段的分隔子节点存在孩子节点,则在第12位之后的分隔位中,重新确定中间分隔位。第12位-第20位的中间分隔位为第16位,则计算目标IP地址中网络位号为第16位对应的地址网段的特征值B,如果第16位对应的特征值中存在特征值B、且前缀树中存储特征值B对应的分隔网段的分隔子节点存在孩子节点,则继续在第16位之后的分隔位中进行查找。由于第16位之后只存在分隔位20,则计算目标IP地址中网络位号为第20位对应的地址网段的特征值C,将第20位对应的特征值与特征值C进行对比。
步骤四、如果不存在第一特征值,则在中间分隔位之前的分隔位中重新确定中间分隔位作为所述待匹配分隔位,以确定是否存在与目标IP地址匹配的最长分隔网段。
本申请实施例中,如果不存在第一特征值,则网络设备可以在该中间分隔位之前的分隔位中,重新确定中间分隔位,作为所述待匹配分隔位,以便进行查找。
在一种示例中,假设分隔位为第4位、第8位、第12位、第16位、第20位,中间分隔位为第12位,则计算目标IP地址中网络位号为第12位对应的地址网段的特征值A,如果第12位对应的特征值中不存在特征值A,则在第12位之前的分隔位中,重新确定中间分隔位。第4位-第12位的中间分隔位为第8位,则计算目标IP地址中网络位号为第8位对应的地址网段的特征值D,如果第8位对应的特征值中不存在特征值D,则继续对第8位之前的分隔位进行查找。由于第8位之前只存在分隔位4,则计算目标IP地址中网络位号为第4位对应的地址网段的特征值E,将第4位对应特征值与特征值E进行匹配。
基于上述折半查找规则,能够快速的确定出定位表中是否存在与目标IP地址匹配的最长分隔网段。
步骤403,若存在最长分隔网段,则在前缀树中,从存储最长分隔网段的目标分隔子节点开始,通过比较目标IP地址的比特序列,按照最长匹配原则,在前缀树中查找是否存在与目标IP地址匹配的目标子节点。
本申请实施例中,网络设备确定出目标IP前缀后,可以在前缀树中,确定存储最长分隔网段的目标分隔子节点,然后,从该目标分隔子节点开始,对目标IP地址进行前缀树匹配,具体的,可以通过比较目标IP地址的比特序列,按照最长匹配原则,在前缀树中查找是否存在与目标IP地址匹配的目标子节点,从而得到目标IP地址对应的匹配结果。前缀树匹配的过程属于现有技术,本申请实施例不再赘述。
可选的,如表六所示,定位表还可以包括与分隔位对应的节点层中各节点的节点位置。相应的,网络设备可以从定位表中,获取存储最长分隔网段的目标分隔子节点的节点位置,进而根据目标分隔子节点的节点位置,获取到目标节点中存储的具体数据,以便从目标分隔子节点开始,对目标IP地址进行前缀树匹配。
现有技术中,在构建前缀树时,只要是公共IP前缀均进行合并。而本申请实施例中,预先设置IP地址中的分隔位,在构建前缀树时,对表示IP地址中分隔位的分隔子节点不做合并。并且,存储前缀树对应的定位表(即哈希表)。在IP地址匹配的过程中,网络设备可以先在定位表中进行粗匹配,然后再在前缀树中进行精确匹配,减少了前缀树的查找次数,显著的提高了查找效率。
对于IPV6地址(即128位地址),按照本申请实施例的匹配次数与分隔位的个数有关,具体如表七所示。
表七
本申请分隔位的个数 | 本申请匹配的次数 |
3 | 2次查Hash+32次前缀树遍历 |
7 | 3次查Hash+16次前缀树遍历 |
15 | 4次查Hash+8次前缀树遍历 |
31 | 5次查Hash+4次前缀树遍历 |
127 | 7次查Hash |
可见,通过本申请实施例提供的IP地址的匹配方法,无需遍历整个前缀树即可得到IP地址的匹配结果,与现有技术的128次的匹配次数相比,有效的减少了查找次数,提高了IP地址的匹配效率。
本申请实施例提供的一种IP地址的匹配方法。网络设备中存储有依据至少一个已知地址网段创建的前缀树和前缀树对应的定位表,其中,前缀树的每一子节点表示至少一位的网络位号并存储前缀长度等于该子节点所表示的网络位号的地址网段,前缀树包括表示互联网协议IP地址中分隔位的分隔子节点,分隔位为预设比特位所表示的网络位号,前缀树中除分隔子节点之外的其他子节点存储至少一个已知地址网段中前缀长度等于该子节点所表示网络位号的网段,定位表包含分隔位、前缀树中表示该分隔位的分隔子节点存储的分隔网段、以及该分隔网段的特征值。
网络设备获取到待匹配的目标IP地址后,在定位表中选择至少一待匹配分隔位、以及各待匹配分隔位对应的第一分隔网段,计算目标IP地址中网络位号为待匹配分隔位对应的地址网段的第一特征值,并通过比较第一特征值及各第一分隔网段的特征值,在定位表中查找是否存在与目标IP地址匹配的最长分隔网段。若存在最长分隔网段,则在前缀树中,从存储最长分隔网段的目标分隔子节点开始,通过比较目标IP地址的比特序列,按照最长匹配原则,在前缀树中查找是否存在与目标IP地址匹配的目标子节点。本方案中,通过设置分隔位,可以先对分隔位对应的分隔网段进行匹配。在确定出在与目标IP地址匹配的最长分隔网段后,直接在前缀树中,从存储最长分隔网段的目标分隔子节点开始进行匹配,无需匹配表示网络位号小于分隔位的子节点,能够有效的减少匹配次数,提高IP地址的匹配效率。
基于相同的技术构思,本申请实施例还提供了一种IP地址的匹配装置,该装置应用于网络设备,网络设备中存储有依据至少一个已知地址网段创建的前缀树和前缀树对应的定位表,其中,前缀树的每一子节点表示至少一位的网络位号并存储前缀长度等于该子节点所表示的网络位号的地址网段,前缀树包括表示互联网协议IP地址中分隔位的分隔子节点,分隔位为预设比特位所表示的网络位号,前缀树中除分隔子节点之外的其他子节点存储至少一个已知地址网段中前缀长度等于该子节点所表示网络位号的网段,定位表包含分隔位、前缀树中表示该分隔位的分隔子节点存储的分隔网段、以及该分隔网段的特征值;
如图5所示,该装置包括:
获取模块510,用于获取待匹配的目标IP地址;
第一查找模块520,用于在定位表中选择至少一待匹配分隔位、以及各待匹配分隔位对应的第一分隔网段,计算目标IP地址中网络位号为待匹配分隔位对应的地址网段的第一特征值,并通过比较第一特征值及各第一分隔网段的特征值,在定位表中查找是否存在与目标IP地址匹配的最长分隔网段;
第二查找模块530,用于若存在最长分隔网段,则在前缀树中,从存储最长分隔网段的目标分隔子节点开始,通过比较目标IP地址的比特序列,按照最长匹配原则,在前缀树中查找是否存在与目标IP地址匹配的目标子节点。
可选的,第一查找模块520,具体用于:
在定位表中包含的各分隔位中确定中间分隔位作为待匹配分隔位;
计算目标IP地址中网络位号为中间分隔位对应的地址网段的第一特征值,并判断定位表中中间分隔位对应的各特征值中,是否存在第一特征值;
如果存在第一特征值、且前缀树中存储第一特征值对应的分隔网段的分隔子节点存在孩子节点,则在中间分隔位之后的分隔位中重新确定中间分隔位作为待匹配分隔位,以确定是否存在与目标IP地址匹配的最长分隔网段;
如果不存在第一特征值,则在中间分隔位之前的分隔位中重新确定中间分隔位作为待匹配分隔位,以确定是否存在与目标IP地址匹配的最长分隔网段。
可选的,该装置还包括:
第三查找模块,用于若不存在最长分隔网段,则在前缀树中,从根节点开始,通过比较目标IP地址的比特序列,按照最长匹配原则,在前缀树中查找是否存在与目标IP地址匹配的目标子节点。
可选的,该装置还包括:
第一判断模块,用于获取第一已知地址网段,并判断第一已知地址网段的网络位号是否小于各分隔位中网络位号最小的分隔位;
若小于,则在当前的前缀树中添加网络位号为第一已知地址网段的网络位号的子节点,并将第一已知地址网段存储至子节点;
否则,则针对至少一分隔位中的第一分隔位,在当前的前缀树中,查找表示网络位号为第一分隔位的第一分隔子节点;
若未查找到第一分隔子节点,则建立第一分隔子节点,将第一已知地址网段中网络位号为第一分隔位对应的分隔网段存储至第一分隔子节点;或者,若查找到第一分隔子节点,且第一分隔子节点存储的地址网段不是第一已知地址网段中网络位号为第一分隔位对应的分隔网段,则建立第一分隔子节点的兄弟节点,并将第一已知地址网段中网络位号为第一分隔位对应的分隔网段存储至第一分隔子节点的兄弟节点;
继续查找表示网络位号为至少一分隔位中除第一分隔位之外的其他分隔位的分隔子节点,直到查找到至少一分隔位中所有分隔位的分隔子节点;
第二判断模块,用于判断第一已知地址网段的网络位号是否是至少一分隔位中网络位号;
若第一已知地址网段的网络位号不是至少一分隔位中网络位号,则在当前的前缀树中确定表示网络位号小于第一已知地址网段的网络位号、且与第一已知地址网段的网络位号最接近的子节点,为确定出的子节点添加孩子节点,并将第一已知地址网段存储至添加的孩子节点。
可选的,该装置还包括:
记录模块,用于计算各分隔子节点存储的分隔网段的特征值,并在定位表中记录各分隔位、表示网络位号为该分隔位的分隔子节点存储的分隔网段及分隔网段的特征值。
可选的,该装置还包括:
关联模块,用于在添加存储第一已知地址网段的子节点后,关联添加的子节点与第一已知地址网段所属的安全规则。
本申请实施例提供的一种IP地址的匹配装置。网络设备中存储有依据至少一个已知地址网段创建的前缀树和前缀树对应的定位表,其中,前缀树的每一子节点表示至少一位的网络位号并存储前缀长度等于该子节点所表示的网络位号的地址网段,前缀树包括表示互联网协议IP地址中分隔位的分隔子节点,分隔位为预设比特位所表示的网络位号,前缀树中除分隔子节点之外的其他子节点存储至少一个已知地址网段中前缀长度等于该子节点所表示网络位号的网段,定位表包含分隔位、前缀树中表示该分隔位的分隔子节点存储的分隔网段、以及该分隔网段的特征值。
网络设备获取到待匹配的目标IP地址后,在定位表中选择至少一待匹配分隔位、以及各待匹配分隔位对应的第一分隔网段,计算目标IP地址中网络位号为待匹配分隔位对应的地址网段的第一特征值,并通过比较第一特征值及各第一分隔网段的特征值,在定位表中查找是否存在与目标IP地址匹配的最长分隔网段。若存在最长分隔网段,则在前缀树中,从存储最长分隔网段的目标分隔子节点开始,通过比较目标IP地址的比特序列,按照最长匹配原则,在前缀树中查找是否存在与目标IP地址匹配的目标子节点。本方案中,通过设置分隔位,可以先对分隔位对应的分隔网段进行匹配。在确定出在与目标IP地址匹配的最长分隔网段后,直接在前缀树中,从存储最长分隔网段的目标分隔子节点开始进行匹配,无需匹配表示网络位号小于分隔位的子节点,能够有效的减少匹配次数,提高IP地址的匹配效率。
本申请实施例还提供了一种网络设备,如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,
存储器603,用于存放计算机程序;
处理器601,用于执行存储器603上所存放的程序时,实现如下步骤:
获取待匹配的目标IP地址;
在所述定位表中选择至少一待匹配分隔位、以及各所述待匹配分隔位对应的第一分隔网段,计算所述目标IP地址中网络位号为所述待匹配分隔位对应的地址网段的第一特征值,并通过比较所述第一特征值及各所述第一分隔网段的特征值,在所述定位表中查找是否存在与所述目标IP地址匹配的最长分隔网段;
若存在所述最长分隔网段,则在所述前缀树中,从存储所述最长分隔网段的目标分隔子节点开始,通过比较所述目标IP地址的比特序列,按照最长匹配原则,在所述前缀树中查找是否存在与所述目标IP地址匹配的目标子节点。
可选的,所述在所述定位表中选择至少一待匹配分隔位、以及各所述待匹配分隔位对应的第一分隔网段,计算所述目标IP地址中网络位号为所述待匹配分隔位对应的地址网段的第一特征值,并通过比较所述第一特征值及各所述第一分隔网段的特征值,在所述定位表中查找是否存在与所述目标IP地址匹配的最长分隔网段,包括:
在所述定位表中包含的各所述分隔位中确定中间分隔位作为所述待匹配分隔位;
计算所述目标IP地址中网络位号为所述中间分隔位对应的地址网段的第一特征值,并判断所述定位表中所述中间分隔位对应的各特征值中,是否存在所述第一特征值;
如果存在所述第一特征值、且所述前缀树中存储所述第一特征值对应的分隔网段的分隔子节点存在孩子节点,则在所述中间分隔位之后的分隔位中重新确定中间分隔位作为所述待匹配分隔位,以确定是否存在与所述目标IP地址匹配的最长分隔网段;
如果不存在所述第一特征值,则在所述中间分隔位之前的分隔位中重新确定中间分隔位作为所述待匹配分隔位,以确定是否存在与所述目标IP地址匹配的最长分隔网段。
可选的,所述方法还包括:
若不存在所述最长分隔网段,则在所述前缀树中,从根节点开始,通过比较所述目标IP地址的比特序列,按照最长匹配原则,在所述前缀树中查找是否存在与所述目标IP地址匹配的目标子节点。
可选的,在所述获取待匹配的目标IP地址之前,所述方法还包括:
获取第一已知地址网段,并判断所述第一已知地址网段的网络位号是否小于各分隔位中网络位号最小的分隔位;
若小于,则在当前的前缀树中添加网络位号为所述第一已知地址网段的网络位号的子节点,并将所述第一已知地址网段存储至所述子节点;
否则,则针对所述至少一分隔位中的第一分隔位,在当前的前缀树中,查找表示网络位号为所述第一分隔位的第一分隔子节点;
若未查找到所述第一分隔子节点,则建立所述第一分隔子节点,将所述第一已知地址网段中网络位号为所述第一分隔位对应的分隔网段存储至所述第一分隔子节点;或者,若查找到所述第一分隔子节点,且所述第一分隔子节点存储的地址网段不是所述第一已知地址网段中网络位号为所述第一分隔位对应的分隔网段,则建立所述第一分隔子节点的兄弟节点,并将所述第一已知地址网段中网络位号为所述第一分隔位对应的分隔网段存储至所述第一分隔子节点的兄弟节点;
继续查找表示网络位号为所述至少一分隔位中除第一分隔位之外的其他分隔位的分隔子节点,直到查找到所述至少一分隔位中所有分隔位的分隔子节点;
判断所述第一已知地址网段的网络位号是否是所述至少一分隔位中网络位号;
若所述第一已知地址网段的网络位号不是所述至少一分隔位中网络位号,则在当前的前缀树中确定表示网络位号小于所述第一已知地址网段的网络位号、且与所述第一已知地址网段的网络位号最接近的子节点,为确定出的子节点添加孩子节点,并将所述第一已知地址网段存储至添加的孩子节点。
可选的,还包括:
计算各分隔子节点存储的分隔网段的特征值,并在所述定位表中记录各所述分隔位、表示网络位号为该分隔位的分隔子节点存储的分隔网段及分隔网段的特征值。
可选的,还包括:
在添加存储所述第一已知地址网段的子节点后,关联添加的子节点与所述第一已知地址网段所属的安全规则。
上述网络设备提到的通信总线可以是外设部件互连标准(英文:PeripheralComponent Interconnect,简称:PCI)总线或扩展工业标准结构(英文:Extended IndustryStandard Architecture,简称:EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述网络设备与其他设备之间的通信。
存储器可以包括随机存取存储器(英文:Random Access Memory,简称:RAM),也可以包括非易失性存储器(英文:Non-Volatile Memory,简称:NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(英文:Central ProcessingUnit,简称:CPU)、网络处理器(英文:Network Processor,简称:NP)等;还可以是数字信号处理器(英文:Digital Signal Processing,简称:DSP)、专用集成电路(英文:ApplicationSpecific Integrated Circuit,简称:ASIC)、现场可编程门阵列(英文:Field-Programmable Gate Array,简称:FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
基于相同的技术构思,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述的IP地址的匹配方法的步骤。
基于相同的技术构思,本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述的IP地址的匹配方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (12)
1.一种IP地址的匹配方法,其特征在于,所述方法应用于网络设备,所述IP地址为IPv6中的IP地址,所述网络设备中存储有依据至少一个已知地址网段创建的前缀树和所述前缀树对应的定位表,其中,所述前缀树的每一子节点表示至少一位的网络位号并存储前缀长度等于该子节点所表示的网络位号的地址网段,所述前缀树包括表示互联网协议IP地址中分隔位的分隔子节点,所述分隔位为预设比特位所表示的网络位号,所述前缀树中除所述分隔子节点之外的其他子节点存储所述至少一个已知地址网段中前缀长度等于该子节点所表示网络位号的网段,所述定位表包含分隔位、所述前缀树中表示该分隔位的分隔子节点存储的分隔网段、该分隔网段的特征值,以及所述分隔位对应的节点层中各节点的节点位置;
所述方法包括:
获取待匹配的目标IP地址;
在所述定位表中包含的各所述分隔位中确定中间分隔位作为待匹配分隔位;
计算所述目标IP地址中网络位号为所述中间分隔位对应的地址网段的第一特征值,并判断所述定位表中所述中间分隔位对应的各特征值中,是否存在所述第一特征值;
如果存在所述第一特征值、且所述前缀树中存储所述第一特征值对应的分隔网段的分隔子节点存在孩子节点,则在所述中间分隔位之后的分隔位中重新确定中间分隔位作为所述待匹配分隔位,以确定是否存在与所述目标IP地址匹配的最长分隔网段;
如果不存在所述第一特征值,则在所述中间分隔位之前的分隔位中重新确定中间分隔位作为所述待匹配分隔位,以确定是否存在与所述目标IP地址匹配的最长分隔网段;
若存在所述最长分隔网段,则从所述定位表中,获取存储所述最长分隔网段的目标分隔子节点的节点位置,根据所述目标分隔子节点的节点位置,获取目标分隔子节点中存储的具体数据,从所述目标分隔子节点开始,通过比较所述目标IP地址的比特序列,按照最长匹配原则,在所述前缀树中查找是否存在与所述目标IP地址匹配的目标子节点。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若不存在所述最长分隔网段,则在所述前缀树中,从根节点开始,通过比较所述目标IP地址的比特序列,按照最长匹配原则,在所述前缀树中查找是否存在与所述目标IP地址匹配的目标子节点。
3.根据权利要求1所述的方法,其特征在于,在所述获取待匹配的目标IP地址之前,所述方法还包括:
获取第一已知地址网段,并判断所述第一已知地址网段的网络位号是否小于各分隔位中网络位号最小的分隔位;
若小于,则在当前的前缀树中添加网络位号为所述第一已知地址网段的网络位号的子节点,并将所述第一已知地址网段存储至所述子节点;
否则,则针对所述至少一分隔位中的第一分隔位,在当前的前缀树中,查找表示网络位号为所述第一分隔位的第一分隔子节点;
若未查找到所述第一分隔子节点,则建立所述第一分隔子节点,将所述第一已知地址网段中网络位号为所述第一分隔位对应的分隔网段存储至所述第一分隔子节点;或者,若查找到所述第一分隔子节点,且所述第一分隔子节点存储的地址网段不是所述第一已知地址网段中网络位号为所述第一分隔位对应的分隔网段,则建立所述第一分隔子节点的兄弟节点,并将所述第一已知地址网段中网络位号为所述第一分隔位对应的分隔网段存储至所述第一分隔子节点的兄弟节点;
继续查找表示网络位号为所述至少一分隔位中除第一分隔位之外的其他分隔位的分隔子节点,直到查找到所述至少一分隔位中所有分隔位的分隔子节点;
判断所述第一已知地址网段的网络位号是否是所述至少一分隔位中网络位号;
若所述第一已知地址网段的网络位号不是所述至少一分隔位中网络位号,则在当前的前缀树中确定表示网络位号小于所述第一已知地址网段的网络位号、且与所述第一已知地址网段的网络位号最接近的子节点,为确定出的子节点添加孩子节点,并将所述第一已知地址网段存储至添加的孩子节点。
4.根据权利要求3所述的方法,其特征在于,还包括:
计算各分隔子节点存储的分隔网段的特征值,并在所述定位表中记录各所述分隔位、表示网络位号为该分隔位的分隔子节点存储的分隔网段及分隔网段的特征值。
5.根据权利要求3所述的方法,其特征在于,还包括:
在添加存储所述第一已知地址网段的子节点后,关联添加的子节点与所述第一已知地址网段所属的安全规则。
6.一种IP地址的匹配装置,其特征在于,所述装置应用于网络设备,所述IP地址为IPv6中的IP地址,所述网络设备中存储有依据至少一个已知地址网段创建的前缀树和所述前缀树对应的定位表,其中,所述前缀树的每一子节点表示至少一位的网络位号并存储前缀长度等于该子节点所表示的网络位号的地址网段,所述前缀树包括表示互联网协议IP地址中分隔位的分隔子节点,所述分隔位为预设比特位所表示的网络位号,所述前缀树中除所述分隔子节点之外的其他子节点存储所述至少一个已知地址网段中前缀长度等于该子节点所表示网络位号的网段,所述定位表包含分隔位、所述前缀树中表示该分隔位的分隔子节点存储的分隔网段、该分隔网段的特征值,以及所述分隔位对应的节点层中各节点的节点位置;
所述装置包括:
获取模块,用于获取待匹配的目标IP地址;
第一查找模块,用于在所述定位表中包含的各所述分隔位中确定中间分隔位作为待匹配分隔位;
计算所述目标IP地址中网络位号为所述中间分隔位对应的地址网段的第一特征值,并判断所述定位表中所述中间分隔位对应的各特征值中,是否存在所述第一特征值;
如果存在所述第一特征值、且所述前缀树中存储所述第一特征值对应的分隔网段的分隔子节点存在孩子节点,则在所述中间分隔位之后的分隔位中重新确定中间分隔位作为所述待匹配分隔位,以确定是否存在与所述目标IP地址匹配的最长分隔网段;
如果不存在所述第一特征值,则在所述中间分隔位之前的分隔位中重新确定中间分隔位作为所述待匹配分隔位,以确定是否存在与所述目标IP地址匹配的最长分隔网段;
第二查找模块,用于若存在所述最长分隔网段,则从所述定位表中,获取存储所述最长分隔网段的目标分隔子节点的节点位置,根据所述目标分隔子节点的节点位置,获取目标分隔子节点中存储的具体数据,从所述目标分隔子节点开始,通过比较所述目标IP地址的比特序列,按照最长匹配原则,在所述前缀树中查找是否存在与所述目标IP地址匹配的目标子节点。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第三查找模块,用于若不存在所述最长分隔网段,则在所述前缀树中,从根节点开始,通过比较所述目标IP地址的比特序列,按照最长匹配原则,在所述前缀树中查找是否存在与所述目标IP地址匹配的目标子节点。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第一判断模块,用于获取第一已知地址网段,并判断所述第一已知地址网段的网络位号是否小于各分隔位中网络位号最小的分隔位;
若小于,则在当前的前缀树中添加网络位号为所述第一已知地址网段的网络位号的子节点,并将所述第一已知地址网段存储至所述子节点;
否则,则针对所述至少一分隔位中的第一分隔位,在当前的前缀树中,查找表示网络位号为所述第一分隔位的第一分隔子节点;
若未查找到所述第一分隔子节点,则建立所述第一分隔子节点,将所述第一已知地址网段中网络位号为所述第一分隔位对应的分隔网段存储至所述第一分隔子节点;或者,若查找到所述第一分隔子节点,且所述第一分隔子节点存储的地址网段不是所述第一已知地址网段中网络位号为所述第一分隔位对应的分隔网段,则建立所述第一分隔子节点的兄弟节点,并将所述第一已知地址网段中网络位号为所述第一分隔位的对应分隔网段存储至所述第一分隔子节点的兄弟节点;
继续查找表示网络位号为所述至少一分隔位中除第一分隔位之外的其他分隔位的分隔子节点,直到查找到所述至少一分隔位中所有分隔位的分隔子节点;
第二判断模块,用于判断所述第一已知地址网段的网络位号是否是所述至少一分隔位中网络位号;
若所述第一已知地址网段的网络位号不是所述至少一分隔位中网络位号,则在当前的前缀树中确定表示网络位号小于所述第一已知地址网段的网络位号、且与所述第一已知地址网段的网络位号最接近的子节点,为确定出的子节点添加孩子节点,并将所述第一已知地址网段存储至添加的孩子节点。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
记录模块,用于计算各分隔子节点存储的分隔网段的特征值,并在所述定位表中记录各所述分隔位、表示网络位号为该分隔位的分隔子节点存储的分隔网段及分隔网段的特征值。
10.根据权利要求8所述的装置,其特征在于,所述装置还包括:
关联模块,用于在添加存储所述第一已知地址网段的子节点后,关联添加的子节点与所述第一已知地址网段所属的安全规则。
11.一种网络设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-5任一所述的方法步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910365327.1A CN109905413B (zh) | 2019-04-30 | 2019-04-30 | 一种ip地址的匹配方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910365327.1A CN109905413B (zh) | 2019-04-30 | 2019-04-30 | 一种ip地址的匹配方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109905413A CN109905413A (zh) | 2019-06-18 |
CN109905413B true CN109905413B (zh) | 2021-10-22 |
Family
ID=66956542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910365327.1A Active CN109905413B (zh) | 2019-04-30 | 2019-04-30 | 一种ip地址的匹配方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109905413B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110855629B (zh) * | 2019-10-21 | 2022-02-11 | 新华三信息安全技术有限公司 | Ip地址的匹配方法、匹配表的生成方法及相关装置 |
CN111107181B (zh) * | 2019-12-30 | 2022-07-12 | 北京天融信网络安全技术有限公司 | Nat规则匹配方法、装置、电子设备及存储介质 |
CN113824814B (zh) * | 2021-09-23 | 2023-04-25 | 新华三信息安全技术有限公司 | 一种转发表的地址匹配方法、装置、网络设备及介质 |
CN117221224B (zh) * | 2023-11-09 | 2024-02-06 | 格创通信(浙江)有限公司 | 一种表项构建、查找方法、装置、网络设备及存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6061712A (en) * | 1998-01-07 | 2000-05-09 | Lucent Technologies, Inc. | Method for IP routing table look-up |
TW468116B (en) * | 1999-02-08 | 2001-12-11 | Wen-Shian Chen | High speed Internet protocol address lookups method for saving memory |
CN102148746A (zh) * | 2010-02-05 | 2011-08-10 | 中兴通讯股份有限公司 | 一种报文分类方法和系统 |
CN102405623B (zh) * | 2010-04-08 | 2014-10-08 | 华为技术有限公司 | 路由表项的存储方法和装置 |
CN105871726A (zh) * | 2016-03-21 | 2016-08-17 | 哈尔滨工程大学 | 一种基于公共前缀的动态添加树节点和单元的模式匹配方法 |
CN105978868A (zh) * | 2016-05-05 | 2016-09-28 | 杭州迪普科技有限公司 | Ip地址权限的查找方法及装置 |
CN107707477A (zh) * | 2017-09-28 | 2018-02-16 | 杭州迪普科技股份有限公司 | 报文的处理方法及装置、计算机可读存储介质 |
-
2019
- 2019-04-30 CN CN201910365327.1A patent/CN109905413B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109905413A (zh) | 2019-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109905413B (zh) | 一种ip地址的匹配方法及装置 | |
CN110290117B (zh) | 一种匹配ip地址的方法及装置 | |
CN109617927B (zh) | 一种匹配安全策略的方法及装置 | |
CN110120942B (zh) | 安全策略规则匹配方法及装置、防火墙设备及介质 | |
US20230127391A1 (en) | Algorithmic tcam based ternary lookup | |
US20160048585A1 (en) | Bloom filter with memory element | |
US20070115968A1 (en) | Default route coding | |
CN108011823B (zh) | 多域流表的多级化方法及装置、多级流表查找方法及装置 | |
CN105122745A (zh) | 用于网络设备的高效最长前缀匹配技术 | |
US10628382B2 (en) | Teleporting content over network using hash matches | |
US11463360B2 (en) | System and method for range matching | |
US20050083937A1 (en) | IP address lookup method using pipeline binary tree, hardware architecture, and recording medium | |
US20170366459A1 (en) | Jump on a Match Optimization for Longest Prefix Match using a Binary Search Tree | |
CN111767364B (zh) | 数据处理方法、装置和设备 | |
US8965911B2 (en) | Searching and storing data in a tree data structure using prefix-matching node | |
CN109951495B (zh) | 网段查找方法及装置 | |
Moia et al. | Similarity digest search: A survey and comparative analysis of strategies to perform known file filtering using approximate matching | |
US20200036634A1 (en) | Hybrid routing table for routing network traffic | |
US8539547B2 (en) | Policy selector representation for fast retrieval | |
CN113824814B (zh) | 一种转发表的地址匹配方法、装置、网络设备及介质 | |
KR101665583B1 (ko) | 네트워크 트래픽 고속처리 장치 및 방법 | |
KR101587756B1 (ko) | 블룸 필터 선-검색을 이용한 스트링 정보 검색 장치 및 방법 | |
CN108984780B (zh) | 基于支持重复键值树数据结构管理磁盘数据的方法和装置 | |
KR100420957B1 (ko) | 클래스 분할 기법을 이용한 라우팅 테이블 자료구조,라우팅 테이블을 이용한 라우팅 경로 검색방법 및 장치 | |
CN111353018A (zh) | 基于深度包检测的数据处理方法、装置和网络设备 |
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 |