CN116248593A - 一种流表关键字匹配方法、装置、电子设备和存储介质 - Google Patents
一种流表关键字匹配方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN116248593A CN116248593A CN202211733675.8A CN202211733675A CN116248593A CN 116248593 A CN116248593 A CN 116248593A CN 202211733675 A CN202211733675 A CN 202211733675A CN 116248593 A CN116248593 A CN 116248593A
- Authority
- CN
- China
- Prior art keywords
- message
- flow table
- hash
- signature value
- complete key
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 73
- 230000008569 process Effects 0.000 claims abstract description 23
- 238000004590 computer program Methods 0.000 claims description 15
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
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
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种流表关键字匹配方法、装置、电子设备和存储介质,流表以哈希链表结构存放,哈希链表的节点存放完整key、哈希签名值和处理信息,在新建流表节点时,在保存流表完整key的基础上,再保存一份完整key的哈希签名值。在虚拟网络报文转发过程中,接收待转发报文,提取报文的完整key计算报文的哈希签名值,比较报文与流表的哈希签名值;若报文与流表的哈希签名值匹配,将报文与流表的完整key进行比较,判断是否匹配对应的流表,并根据匹配结果确定处理操作。本发明先比较流表与报文的哈希签名值,在签名值匹配时再比较流表与报文的完整key,从而快速排除不匹配的项,提高匹配效率,提高虚拟网络报文转发的性能。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种流表关键字匹配方法、一种流表关键字匹配装置、一种电子设备和一种计算机可读存储介质。
背景技术
在云计算虚机场景下,宿主机上面的虚拟交换机通常需要转发大量数据,这些数据往往存在大量并发连接,因此虚拟交换机需要保存大量连接----流表,其规模一般是几百万到几千万的规模,通常采用哈希链表的方式来保存大量的流表。
在一个报文哈希命中一个哈希桶后,需要将报文的关键字和哈希链表中已经存在的流表的关键字逐个比较,以判断报文对应的流表是否存在。然而,云计算虚拟网络流表的关键字通常包含较多字段,需要进行多次关键字的比较,从而导致虚拟网络报文转发的性能较差。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种流表关键字匹配方法、一种流表关键字匹配装置、一种电子设备和一种计算机可读存储介质。
为了解决上述问题,本发明实施例公开了一种流表关键字匹配方法,所述流表以哈希链表结构存放,所述哈希链表的节点存放对应的完整key和哈希签名值,所述方法包括:
在虚拟网络报文转发过程中,接收待转发的报文;
提取所述报文的完整key,并根据所述报文的完整key计算所述报文的哈希签名值;
将所述报文的哈希签名值与所述流表的哈希签名值进行比较;
若所述报文的哈希签名值与所述流表的哈希签名值匹配,则将所述报文与所述流表的完整key进行比较,判断是否匹配对应的流表,并根据匹配结果确定处理操作。
可选地,所述方法还包括:
若所述报文的哈希签名值与所述流表的哈希签名值不匹配,则不将所述报文与所述流表的完整key进行比较,并将所述报文的哈希签名值与下一流表的哈希签名值进行比较。
可选地,所述提取所述报文的完整key,并根据所述报文的完整key计算所述报文的哈希签名值,包括:
提取所述报文的完整key,对所述报文的完整key进行哈希运算,得到所述报文的哈希签名值。
可选地,所述将所述报文的哈希签名值与所述流表的哈希签名值进行比较,包括:
将所述报文的哈希签名值,逐个与所述哈希链表的每个节点中的哈希签名值进行比较。
可选地,所述将所述报文与所述流表的完整key进行比较,判断是否匹配对应的流表,并根据匹配结果确定处理操作,包括:
若所述报文与所述流表的完整key匹配,则确定匹配对应的流表,并按照所述流表处理所述报文。
可选地,所述将所述报文与所述流表的完整key进行比较,判断是否匹配对应的流表,并根据匹配结果确定处理操作,还包括:
若所述报文与所述流表对应的哈希桶的所有节点均不匹配,则确定所述报文对应的流表不存在,在所述哈希链表插入新的节点,并存放所述报文的完整key和哈希签名值。
可选地,在所述提取所述报文的完整key,并根据所述报文的完整key计算所述报文的哈希签名值之后,所述方法还包括:
根据所述流表的完整key,计算所述哈希链表的哈希值,以根据所述哈希值查找对应的哈希链表。
本发明实施例还公开了一种流表关键字匹配装置,所述流表以哈希链表结构存放,所述哈希链表的节点存放对应的完整key和哈希签名值,所述装置包括:
流表关键字获取模块,用于在虚拟网络报文转发过程中,接收待转发的报文;
报文签名值运算模块,用于提取所述报文的完整key,并根据所述报文的完整key计算所述报文的哈希签名值;
签名值比较模块,用于将所述报文的哈希签名值与所述流表的哈希签名值进行比较;
签名值匹配模块,用于若所述报文的哈希签名值与所述流表的哈希签名值匹配,则将所述报文与所述流表的完整key进行比较,判断是否匹配对应的流表,并根据匹配结果确定处理操作。
可选地,所述装置还包括:
关键字不匹配模块,用于若所述报文的哈希签名值与所述流表的哈希签名值不匹配,则不将所述报文与所述流表的完整key进行比较,并将所述报文的哈希签名值与下一流表的哈希签名值进行比较。
可选地,所述报文签名值运算模块,包括:
哈希运算子模块,用于提取所述报文的完整key,对所述报文的完整key进行哈希运算,得到所述报文的哈希签名值。
可选地,所述签名值比较模块,包括:
逐个比较子模块,用于将所述报文的哈希签名值,逐个与所述哈希链表的每个节点中的哈希签名值进行比较。
可选地,所述签名匹配模块,包括:
报文处理子模块,用于若所述报文与所述流表的完整key匹配,则确定匹配对应的流表,并按照所述流表处理所述报文。
可选地,所述签名匹配模块,还包括:
节点插入子模块,用于若所述报文与所述流表对应的哈希桶的所有节点均不匹配,则确定所述报文对应的流表不存在,在所述哈希链表插入新的节点,并存放所述报文的完整key和哈希签名值。
可选地,在所述提取所述报文的完整key,并根据所述报文的完整key计算所述报文的哈希签名值之后,所述装置还包括:
链表查找模块,用于根据所述流表的完整key,计算所述哈希链表的哈希值,以根据所述哈希值查找对应的哈希链表。
本发明实施例还公开了一种电子设备,包括:处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的流表关键字匹配方法的步骤。
本发明实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的流表关键字匹配方法的步骤。
本发明实施例包括以下优点:
在本发明实施例中,流表可以以哈希链表结构存放,所述哈希链表的节点存放对应的完整key+哈希签名值和处理信息,该方法包括:在新建流表节点时,在保存流表完整key的基础上,再保存一份完整key的哈希签名值。在虚拟网络报文转发过程中,接收待转发的报文;提取报文的完整key,并根据完整key计算报文的哈希签名值;将报文与流表的哈希签名值进行比较;若报文与流表的哈希签名值匹配,再将报文与流表的完整key进行比较,判断是否匹配对应的流表,并根据匹配结果确定处理操作。本发明实施例通过先比较流表与报文的哈希签名值,在签名值匹配时再比较流表与报文的完整key,从而可以快速排除不匹配的项,提高匹配效率,提高虚拟网络报文转发的性能。
附图说明
图1是一种采用哈希链表结构存放流表的示意图;
图2是一种传统的流表关键字匹配的示意图;
图3是本发明实施例提供的一种流表关键字匹配方法的步骤流程图;
图4是本发明实施例提供的另一种流表关键字匹配方法的步骤流程图;
图5是本发明实施例提供的一种流表关键字匹配的示意图;
图6是本发明实施例提供的一种流表关键字匹配装置的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
在云计算虚机场景下,宿主机上面的虚拟交换机通常需要转发大量数据,这些数据往往存在大量并发连接,因此虚拟交换机需要保存大量连接----流表flow,其规模一般是几百万到几千万的规模。参照图1,示出了一种采用哈希链表结构存放流表的示意图,其中可以采用哈希链表的方式来保存大量的流表。
由于哈希不可避免的冲突,因此哈希链表通常有一定的深度。在一个报文哈希命中一个哈希桶bucket后,需要将报文的关键字key和哈希链表中已经存在的flow的关键字key逐个比较,以判断报文对应的flow是否存在。云计算虚拟网络flow的key通常包含较多字段(例如,源MAC(MediaAccess ControlAddress,媒体存取控制位址)、目的MAC、源IP(InternetProtocol,网际互联协议)、源端口、目的IP、目的端口、协议、报文收包端口和VPCID(VirtualPrivateCloudIdentityDocument,虚拟私有云标识)等,合计31字节)。而这些比较绝大多数都是不匹配的。
参照图2,示出了一种传统的流表关键字匹配的示意图。在传统的解决方案中,通常是在flow里面存放完整的key,从报文里提取完整的key后,再比较这两个完整key是否匹配。
然而,传统的直接比较完整key的方式,存在明显缺陷。第一,需要比较完整的key,比较的数据较多,当哈希链表深度较深,对应报文不命中或者命中靠后时需要多次完整key比较,导致虚拟网络报文转发的性能较差。第二,需要比较的完整key在报文里分布不连续,在比较时需要分多次逐字段比较,或者将key拷贝后得到连续的key再进行比较,导致虚拟网络报文转发的性能较差,匹配效率低。
本发明实施例的核心构思之一在于,流表可以以哈希链表结构存放,所述哈希链表的节点存放对应的完整key+哈希签名值和处理信息,该方法包括:在新建流表节点时,在保存流表完整key的基础上,再保存一份完整key的哈希签名值。在虚拟网络报文转发过程中,接收待转发的报文;提取报文的完整key,并根据完整key计算报文的哈希签名值;将报文与流表的哈希签名值进行比较;若报文与流表的哈希签名值匹配,再将报文与流表的完整key进行比较,判断是否匹配对应的流表,并根据匹配结果确定处理操作。本发明实施例通过先比较流表与报文的哈希签名值,在签名值匹配时再比较流表与报文的完整key,从而可以快速排除不匹配的项,提高匹配效率,提高虚拟网络报文转发的性能。
参照图3,示出了本发明实施例提供的一种流表关键字匹配方法的步骤流程图,所述流表以哈希链表结构存放,所述哈希链表的节点存放对应的完整key和哈希签名值和处理信息,所述方法具体可以包括如下步骤:
步骤301,在虚拟网络报文转发过程中,接收待转发的报文。
本发明实施例的流表关键字匹配方法可以应用于虚拟网络报文转发过程中,哈希链表的节点可以存放对应流表的完整key和哈希签名值,在比较时,先比较流表与报文的哈希签名值,在签名值匹配的情况下再比较流表与报文的完整key,从而快速排除不匹配的项,提高流表匹配效率。
在本发明实施例中,可以采用哈希链表结构存放流表,其中哈希链表的节点可以存放对应流表的完整key和哈希签名值和处理信息,在新建流表节点时,在保存流表完整key的基础上,再保存一份完整key的哈希签名值。在虚拟网络报文转发的过程中,可以接收需要转发的报文。
步骤302,提取所述报文的完整key,并根据所述报文的完整key计算所述报文的哈希签名值。
具体的,在提取需要转发的报文的完整key之后,可以采用哈希签名算法,对报文的完整key进行哈希运算,得到报文的哈希签名值。
步骤303,将所述报文的哈希签名值与所述流表的哈希签名值进行比较。
在本发明实施例中,可以首先比较报文与流表的哈希签名值,在签名值匹配的情况下再比较流表与报文的完整key,从而快速排除不匹配的项,提高流表匹配效率。
步骤304,若所述报文的哈希签名值与所述流表的哈希签名值匹配,则将所述报文与所述流表的关键字进行比较,判断是否匹配对应的流表,并根据匹配结果确定处理操作。
当报文与流表的哈希签名值匹配时,可以再比较流表与报文的完整key,从而判断是否匹配对应的流表,并根据匹配结果进行相应的处理操作。
在本发明实施例中,流表可以以哈希链表结构存放,所述哈希链表的节点存放对应的完整key+哈希签名值和处理信息,该方法包括:在新建流表节点时,在保存流表完整key的基础上,再保存一份完整key的哈希签名值。在虚拟网络报文转发过程中,接收待转发的报文;提取报文的完整key,并根据完整key计算报文的哈希签名值;将报文与流表的哈希签名值进行比较;若报文与流表的哈希签名值匹配,再将报文与流表的完整key进行比较,判断是否匹配对应的流表,并根据匹配结果确定处理操作。本发明实施例通过先比较流表与报文的哈希签名值,在签名值匹配时再比较流表与报文的完整key,从而可以快速排除不匹配的项,提高匹配效率,提高虚拟网络报文转发的性能。
参照图4,示出了本发明实施例提供的另一种流表关键字匹配方法的步骤流程图,所述流表以哈希链表结构存放,所述哈希链表的节点存放对应的完整key和哈希签名值和处理信息,所述方法具体可以包括如下步骤:
步骤401,在虚拟网络报文转发过程中,接收待转发的报文。
本发明实施例的流表关键字匹配方法可以应用于虚拟网络报文转发过程中,哈希链表的节点entry可以存放对应流表的关键字key和哈希签名值sign_value,在比较时,先比较流表与报文的哈希签名值,在签名值匹配的情况下再比较流表与报文的完整key,从而快速排除不匹配的项,提高匹配效率。
步骤402,提取所述报文的完整key,根据所述报文的完整key计算所述报文的哈希签名值。
在一种可选的实施例中,所述在所述提取所述报文的完整key,根据所述报文的完整key计算所述报文的哈希签名值之后,所述方法还可以包括:根据所述流表的完整key,计算所述哈希链表的哈希值,以根据所述哈希值查找对应的哈希链表。
在虚拟网络报文转发过程中,可以首先获取以哈希链表结构存放的流表的完整key,接着根据流表完整key,采用哈希算法计算哈希链表的哈希值hash_value,从而根据哈希值hash_value查找对应的哈希链表。哈希算法可以将任意长度的二进制值映射为固定长度的较小二进制值,这个小的二进制值可以称为哈希值,哈希值可以是一段数据唯一且极其紧凑的数值表示形式。
在一种可选的实施例中,所述步骤402可以包括:提取所述报文的完整key,对所述报文的完整key进行哈希运算,得到所述报文的哈希签名值。
在提取需要转发的报文的完整key之后,可以采用哈希签名算法,对报文的完整key进行哈希运算,得到报文的哈希签名值。
步骤403,将所述报文的哈希签名值与所述流表的哈希签名值进行比较。
在一种可选的实施例中,所述步骤403可以包括:将所述报文的哈希签名值,逐个与所述哈希链表的每个节点中的哈希签名值进行比较。
可以将报文的哈希签名值sign_value,逐个与哈希链表的每个节点entry的哈希签名值sign_value进行比较,从而判断报文与流表的哈希签名值是否相匹配。
步骤404,若所述报文的哈希签名值与所述流表的哈希签名值匹配,则将所述报文与所述流表的完整key进行比较,判断是否匹配对应的流表,并根据匹配结果确定处理操作。
在一种可选的实施例中,所述步骤404可以包括:若所述报文的与所述流表的完整key匹配,则确定匹配对应的流表,并按照所述流表处理所述报文。
若报文与流表的哈希签名值匹配,则可以将报文与流表的完整key进行比较,此时在大部分情况下,报文与流表的完整key也是匹配的。当报文与流表的完整key匹配,即匹配命中时,可以确定匹配对应的流表,并按照匹配的流表处理报文。
在一种可选的实施例中,所述步骤404还可以包括:若所述报文与所述流表对应的哈希桶的所有节点均不匹配,则确定所述报文对应的流表不存在,在所述哈希链表插入新的节点,并存放所述报文的完整key和哈希签名值。
若报文与流表的哈希签名值匹配,则可以将报文与流表的完整key进行比较。当报文与流表对应的哈希桶的所有节点都不匹配时,可以确定报文对应的流表不存在,可以在哈希链表的尾部插入一个新的节点entry,新的节点entry可以同时存放报文的完整key和哈希签名值sign_value。
步骤405,若所述报文的哈希签名值与所述流表的哈希签名值不匹配,则不将所述报文与所述流表的完整key进行比较,并将所述报文的哈希签名值与下一流表的哈希签名值进行比较。
若报文与流表的哈希签名值不匹配,则报文与流表的完整key也不会相匹配,此时可以不将报文与流表的完整key进行比较,并直接将报文的哈希签名值与下一流表的哈希签名值进行比较。
在本发明实施例中,通过在原有的直接比较完整key的基础上,增加一个完整key的哈希签名。在比较时,先比较哈希签名,只有签名匹配的情况下才比较完整的key。因为签名的哈希算法和哈希桶的哈希算法不一样,且签名的4字节一般也远大于哈希桶的宽度,签名再次冲突的概率极低,因此签名匹配的绝大多数key也匹配,本发明通过签名的比较,可以快速排除不匹配的项,从而流表提高匹配效率。
在本发明实施例中,流表可以以哈希链表结构存放,所述哈希链表的节点存放对应的完整key+哈希签名值和处理信息,该方法包括:在新建流表节点时,在保存流表完整key的基础上,再保存一份完整key的哈希签名值。在虚拟网络报文转发过程中,接收待转发的报文;提取报文的完整key,并根据完整key计算报文的哈希签名值;将报文与流表的哈希签名值进行比较;若报文与流表的哈希签名值匹配,再将报文与流表的完整key进行比较,判断是否匹配对应的流表,并根据匹配结果确定处理操作。本发明实施例通过先比较流表与报文的哈希签名值,在签名值匹配时再比较流表与报文的完整key,从而可以快速排除不匹配的项,提高匹配效率,提高虚拟网络报文转发的性能。
为了使本领域技术人员更好地理解本发明实施例,下面通过一个示例加以说明。参照图5,示出了本发明实施例提供的一种流表关键字匹配的示意图。首先收到报文,根据完整的key,计算哈希链表的哈希值,记为hash_value,采用另一种哈希算法计算签名值,记为sign_value。接着根据hash_value,找到对应的哈希链表,逐个比较哈希链表的每个entry的sign_value和报文的sign_value。如果sign_value不匹配,则key不匹配,可以直接跳过比较下一个;如果sign_value匹配,可以再比较key,此时绝大多数情况下key也匹配。如果匹配命中,可以按照这个entry的流表处理报文;如果匹配不命中,则可以在哈希链表尾部插入一个新的entry,新的entry同时存放完整key+sign。
以哈希链表平均深度为8作为示例,假设每个报文平均要比较一半桶深。在传统方案中,需要比较的字节数为31*4=124;而在本发明实施例提供的流表关键字匹配方案中,需要比较的字节数为4*4+31=47字节。可见,由于流表匹配每个报文均要执行,本发明实施例可以提高虚拟网络报文转发的性能,从而提高流表关键字匹配的效率。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图6,示出了本发明实施例提供的一种流表关键字匹配装置的结构框图,所述流表以哈希链表结构存放,所述哈希链表的节点存放对应流表的关键字和哈希签名值,具体可以包括如下模块:
流表关键字获取模块601,用于在虚拟网络报文转发过程中,接收待转发的报文;
报文签名值运算模块602,用于用于提取所述报文的完整key,并根据所述报文的完整key计算所述报文的哈希签名值;
签名值比较模块603,用于将所述报文的哈希签名值与所述流表的哈希签名值进行比较;
签名值匹配模块604,用于若所述报文的哈希签名值与所述流表的哈希签名值匹配,则将所述报文与所述流表的完整key进行比较,判断是否匹配对应的流表,并根据匹配结果确定处理操作。
在一种可选的实施例中,所述装置还包括:
关键字不匹配模块,用于若所述报文的哈希签名值与所述流表的哈希签名值不匹配,则不将所述报文与所述流表的完整key进行比较,并将所述报文的哈希签名值与下一流表的哈希签名值进行比较。
在一种可选的实施例中,所述报文签名值运算模块,包括:
哈希运算子模块,用于提取所述报文的完整key,对所述报文的完整key进行哈希运算,得到所述报文的哈希签名值。
在一种可选的实施例中,所述签名值比较模块,包括:
逐个比较子模块,用于将所述报文的哈希签名值,逐个与所述哈希链表的每个节点中的哈希签名值进行比较。
在一种可选的实施例中,所述签名匹配模块,包括:
报文处理子模块,用于若所述报文与所述流表的完整key匹配,则确定匹配对应的流表,并按照所述流表处理所述报文。
在一种可选的实施例中,所述签名匹配模块,还包括:
节点插入子模块,用于若所述报文与所述流表对应的哈希桶的所有节点均不匹配,则确定所述报文对应的流表不存在,在所述哈希链表插入新的节点,并存放所述报文的完整key和哈希签名值。
在一种可选的实施例中,在所述提取所述报文的完整key,并根据所述报文的完整key计算所述报文的哈希签名值之后,所述装置还包括:
链表查找模块,用于根据所述流表的完整key,计算所述哈希链表的哈希值,以根据所述哈希值查找对应的哈希链表。
在本发明实施例中,流表可以以哈希链表结构存放,所述哈希链表的节点存放对应的完整key+哈希签名值和处理信息,该方法包括:在新建流表节点时,在保存流表完整key的基础上,再保存一份完整key的哈希签名值。在虚拟网络报文转发过程中,接收待转发的报文;提取报文的完整key,并根据完整key计算报文的哈希签名值;将报文与流表的哈希签名值进行比较;若报文与流表的哈希签名值匹配,再将报文与流表的完整key进行比较,判断是否匹配对应的流表,并根据匹配结果确定处理操作。本发明实施例通过先比较流表与报文的哈希签名值,在签名值匹配时再比较流表与报文的完整key,从而可以快速排除不匹配的项,提高匹配效率,提高虚拟网络报文转发的性能。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例还提供了一种电子设备,包括:
包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述流表关键字匹配方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现上述流表关键字匹配方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种流表关键字匹配方法、装置、电子设备和存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (15)
1.一种流表关键字匹配方法,其特征在于,所述流表以哈希链表结构存放,所述哈希链表的节点存放对应的完整key和哈希签名值,所述方法包括:
在虚拟网络报文转发过程中,接收待转发的报文;
提取所述报文的完整key,并根据所述报文的完整key计算所述报文的哈希签名值;
将所述报文的哈希签名值与所述流表的哈希签名值进行比较;
若所述报文的哈希签名值与所述流表的哈希签名值匹配,则将所述报文与所述流表的完整key进行比较,判断是否匹配对应的流表,并根据匹配结果确定处理操作。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述报文的哈希签名值与所述流表的哈希签名值不匹配,则不将所述报文与所述流表的完整key进行比较,并将所述报文的哈希签名值与下一流表的哈希签名值进行比较。
3.根据权利要求1所述的方法,其特征在于,所述提取所述报文的完整key,并根据所述报文的完整key计算所述报文的哈希签名值,包括:
提取所述报文的完整key,对所述报文的完整key进行哈希运算,得到所述报文的哈希签名值。
4.根据权利要求3所述的方法,其特征在于,所述将所述报文的哈希签名值与所述流表的哈希签名值进行比较,包括:
将所述报文的哈希签名值,逐个与所述哈希链表的每个节点中的哈希签名值进行比较。
5.根据权利要求1所述的方法,其特征在于,所述将所述报文与所述流表的完整key进行比较,判断是否匹配对应的流表,并根据匹配结果确定处理操作,包括:
若所述报文与所述流表的完整key匹配,则确定匹配对应的流表,并按照所述流表处理所述报文。
6.根据权利要求5所述的方法,其特征在于,所述将所述报文与所述流表的完整key进行比较,判断是否匹配对应的流表,并根据匹配结果确定处理操作,还包括:
若所述报文与所述流表对应的哈希桶的所有节点均不匹配,则确定所述报文对应的流表不存在,在所述哈希链表插入新的节点,并存放所述报文的完整key和哈希签名值。
7.根据权利要求1所述的方法,其特征在于,在所述提取所述报文的完整key,并根据所述报文的完整key计算所述报文的哈希签名值之后,所述方法还包括:
根据所述流表的完整key,计算所述哈希链表的哈希值,以根据所述哈希值查找对应的哈希链表。
8.一种流表关键字匹配装置,其特征在于,所述流表以哈希链表结构存放,所述哈希链表的节点存放对应的完整key和哈希签名值,所述装置包括:
流表关键字获取模块,用于在虚拟网络报文转发过程中,接收待转发的报文;
报文签名值运算模块,用于提取所述报文的完整key,并根据所述报文的完整key计算所述报文的哈希签名值;
签名值比较模块,用于将所述报文的哈希签名值与所述流表的哈希签名值进行比较;
签名值匹配模块,用于若所述报文的哈希签名值与所述流表的哈希签名值匹配,则将所述报文与所述流表的完整key进行比较,判断是否匹配对应的流表,并根据匹配结果确定处理操作。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
关键字不匹配模块,用于若所述报文的哈希签名值与所述流表的哈希签名值不匹配,则不将所述报文与所述流表的完整key进行比较,并将所述报文的哈希签名值与下一流表的哈希签名值进行比较。
10.根据权利要求8所述的装置,其特征在于,所述报文签名值运算模块,包括:
哈希运算子模块,用于提取所述报文的完整key,对所述报文的完整key进行哈希运算,得到所述报文的哈希签名值。
11.根据权利要求10所述的装置,其特征在于,所述签名值比较模块,包括:
逐个比较子模块,用于将所述报文的哈希签名值,逐个与所述哈希链表的每个节点中的哈希签名值进行比较。
12.根据权利要求8所述的装置,其特征在于,所述签名匹配模块,包括:
报文处理子模块,用于若所述报文与所述流表的完整key匹配,则确定匹配对应的流表,并按照所述流表处理所述报文。
13.根据权利要求12所述的装置,其特征在于,所述签名匹配模块,还包括:
节点插入子模块,用于若所述报文与所述流表对应的哈希桶的所有节点均不匹配,则确定所述报文对应的流表不存在,在所述哈希链表插入新的节点,并存放所述报文的完整key和哈希签名值。
14.一种电子设备,其特征在于,包括:处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1-7中任一项所述的流表关键字匹配方法的步骤。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的流表关键字匹配方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211733675.8A CN116248593A (zh) | 2022-12-30 | 2022-12-30 | 一种流表关键字匹配方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211733675.8A CN116248593A (zh) | 2022-12-30 | 2022-12-30 | 一种流表关键字匹配方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116248593A true CN116248593A (zh) | 2023-06-09 |
Family
ID=86635592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211733675.8A Pending CN116248593A (zh) | 2022-12-30 | 2022-12-30 | 一种流表关键字匹配方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116248593A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101202652A (zh) * | 2006-12-15 | 2008-06-18 | 北京大学 | 网络应用流量分类识别装置及其方法 |
CN101540723A (zh) * | 2009-04-20 | 2009-09-23 | 杭州华三通信技术有限公司 | 一种流表查找方法和装置 |
CN111522653A (zh) * | 2020-02-07 | 2020-08-11 | 华中科技大学 | 基于容器的网络功能虚拟化平台 |
CN111966284A (zh) * | 2020-07-16 | 2020-11-20 | 长沙理工大学 | 一种OpenFlow大规模流表弹性节能与高效查找架构及方法 |
CN114448891A (zh) * | 2022-01-26 | 2022-05-06 | 深圳星云智联科技有限公司 | 流表同步方法、装置、设备和介质 |
CN114500169A (zh) * | 2021-12-27 | 2022-05-13 | 天翼云科技有限公司 | 建立vxlan隧道的方法、报文转发的方法及装置 |
CN114780537A (zh) * | 2022-03-23 | 2022-07-22 | 阿里巴巴(中国)有限公司 | 流表存储及报文转发方法、装置、计算设备及介质 |
-
2022
- 2022-12-30 CN CN202211733675.8A patent/CN116248593A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101202652A (zh) * | 2006-12-15 | 2008-06-18 | 北京大学 | 网络应用流量分类识别装置及其方法 |
CN101540723A (zh) * | 2009-04-20 | 2009-09-23 | 杭州华三通信技术有限公司 | 一种流表查找方法和装置 |
CN111522653A (zh) * | 2020-02-07 | 2020-08-11 | 华中科技大学 | 基于容器的网络功能虚拟化平台 |
CN111966284A (zh) * | 2020-07-16 | 2020-11-20 | 长沙理工大学 | 一种OpenFlow大规模流表弹性节能与高效查找架构及方法 |
CN114500169A (zh) * | 2021-12-27 | 2022-05-13 | 天翼云科技有限公司 | 建立vxlan隧道的方法、报文转发的方法及装置 |
CN114448891A (zh) * | 2022-01-26 | 2022-05-06 | 深圳星云智联科技有限公司 | 流表同步方法、装置、设备和介质 |
CN114780537A (zh) * | 2022-03-23 | 2022-07-22 | 阿里巴巴(中国)有限公司 | 流表存储及报文转发方法、装置、计算设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108846016B (zh) | 一种面向中文分词的搜索算法 | |
JP2016116215A (ja) | ハードウェア支援ハッシュテーブルを使用したccnルーティング | |
WO2015127721A1 (zh) | 数据匹配的方法、装置及计算机存储介质 | |
WO2016184029A1 (zh) | 支持哈希查找和路由查找的存储、查找方法和装置、存储介质 | |
US20180253438A1 (en) | Teleporting content over network using hash matches | |
US20220045875A1 (en) | Multicast message processing method and apparatus, storage medium and processor | |
CN106789859B (zh) | 报文匹配方法及装置 | |
CN111553670B (zh) | 一种交易处理方法、装置及计算机可读存储介质 | |
CN107066303B (zh) | 固件比对方法和装置 | |
CN108460030B (zh) | 一种基于改进的布隆过滤器的集合元素判断方法 | |
Yang et al. | Fast OpenFlow table lookup with fast update | |
CN105491094B (zh) | 处理http请求的方法及装置 | |
EP3107010B1 (en) | Data integration pipeline | |
CN104253754A (zh) | 一种acl快速匹配的方法和设备 | |
WO2016206389A1 (zh) | Url匹配方法及装置 | |
CN111553669B (zh) | 一种交易路由方法、装置及计算机可读存储介质 | |
CN111352938B (zh) | 数据处理方法、计算机设备及存储介质 | |
CN112667636A (zh) | 索引建立方法、装置及存储介质 | |
CN112187743B (zh) | 一种基于ip地址最长前缀的网络策略匹配方法及系统 | |
CN116248593A (zh) | 一种流表关键字匹配方法、装置、电子设备和存储介质 | |
CN109039911B (zh) | 一种基于hash查找方式共享ram的方法及系统 | |
CN103368852A (zh) | 用于处理哈希冲突的方法和系统 | |
CN111819552A (zh) | 访问控制列表的管理方法及装置 | |
CN113807087B (zh) | 网站域名相似度检测方法和装置 | |
Kniesburges et al. | Hashed Patricia Trie: Efficient longest prefix matching in peer-to-peer systems |
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 | ||
CB02 | Change of applicant information |
Address after: 100007 room 205-32, floor 2, building 2, No. 1 and No. 3, qinglonghutong a, Dongcheng District, Beijing Applicant after: Tianyiyun Technology Co.,Ltd. Address before: 100093 Floor 4, Block E, Xishan Yingfu Business Center, Haidian District, Beijing Applicant before: Tianyiyun Technology Co.,Ltd. |
|
CB02 | Change of applicant information |