流表压缩方法、计算机设备及介质.pdf

上传人:没水****6 文档编号:14525279 上传时间:2024-05-19 格式:PDF 页数:19 大小:2.43MB
返回 下载 相关 举报
流表压缩方法、计算机设备及介质.pdf_第1页
第1页 / 共19页
流表压缩方法、计算机设备及介质.pdf_第2页
第2页 / 共19页
流表压缩方法、计算机设备及介质.pdf_第3页
第3页 / 共19页
点击查看更多>>
资源描述

《流表压缩方法、计算机设备及介质.pdf》由会员分享,可在线阅读,更多相关《流表压缩方法、计算机设备及介质.pdf(19页珍藏版)》请在专利查询网上搜索。

1、(19)国家知识产权局(12)发明专利申请(10)申请公布号 (43)申请公布日 (21)申请号 202410014653.9(22)申请日 2024.01.05(71)申请人 深圳星云智联科技有限公司地址 518000 广东省深圳市龙华区民治街道大岭社区安宏基天曜广场1栋A座23A01(72)发明人 黄雪峰朱贤基李森(74)专利代理机构 广州三环专利商标代理有限公司 44202专利代理师 陈舟苗(51)Int.Cl.G06F 16/901(2019.01)G06F 16/903(2019.01)H03M 7/30(2006.01)(54)发明名称一种流表压缩方法、计算机设备及介质(57)摘要。

2、本申请涉及计算机技术领域并提供一种流表压缩方法、计算机设备及介质。方法包括:确定待压缩的第一流表,其包括多个待压缩流表项;针对每一个待压缩流表项,基于第一分段策略,确定该待压缩流表项的键值部分的第一键值分段和第二键值分段;针对每一个待压缩流表项,基于第一压缩算法,压缩第一键值分段得到第三键值分段,然后用该第三键值分段替换第一键值分段得到对应的压缩后流表项,从而得到多个压缩后流表项;基于多个压缩后流表项,生成第一寄存器表,第一寄存器表用于代替第一流表进行流表匹配和流表动作。如此,降低流表占用资源和成本,也降低数据帧处理延时和功耗。权利要求书2页 说明书13页 附图3页CN 117520607 A。

3、2024.02.06CN 117520607 A1.一种流表压缩方法,其特征在于,所述流表压缩方法包括:确定待压缩的第一流表,其中,所述第一流表包括多个待压缩流表项,所述多个待压缩流表项中的每一个待压缩流表项包括键值部分和动作部分,该键值部分用于该待压缩流表项相关联的流表项匹配,该动作部分用于该待压缩流表项相关联的流表动作,所述多个待压缩流表项各自的键值部分均是第一长度;针对所述多个待压缩流表项中的每一个待压缩流表项,基于第一分段策略,确定该待压缩流表项的键值部分的第一键值分段和第二键值分段,该第二键值分段是该键值部分中除了该第一键值分段以外的剩余键值部分,所述多个待压缩流表项各自的键值部分的。

4、第一键值分段均是第二长度;针对所述多个待压缩流表项中的每一个待压缩流表项,基于第一压缩算法,压缩该待压缩流表项的键值部分的第一键值分段得到第三键值分段,然后用该第三键值分段替换该待压缩流表项的键值部分的第一键值分段得到与该待压缩流表项对应的压缩后流表项,从而得到与所述多个待压缩流表项一一对应的多个压缩后流表项,所述多个压缩后流表项各自的键值部分的第三键值分段均是第三长度,所述第三长度小于所述第二长度;基于所述多个压缩后流表项,生成第一寄存器表,其中,所述第一寄存器表包括一个或者多个寄存器表项,所述一个或者多个寄存器表项的数量不少于所述多个压缩后流表项中具有不重复的第三键值分段的压缩后流表项的数。

5、量,所述第一寄存器表用于代替所述第一流表进行所述第一流表相关联的流表匹配和流表动作。2.根据权利要求1所述的流表压缩方法,其特征在于,基于所述第一寄存器表的流表匹配包括:基于所述一个或者多个寄存器表项各自存储的第三键值分段进行第一重匹配得到第一重匹配结果,然后,基于所述一个或者多个寄存器表项中与所述第一重匹配结果相关联的寄存器表项各自存储的第二键值分段进行第二重匹配,得到流表匹配结果。3.根据权利要求1所述的流表压缩方法,其特征在于,基于所述第一寄存器表的流表匹配包括:基于所述一个或者多个寄存器表项各自存储的键值部分进行匹配,得到流表匹配结果。4.根据权利要求1所述的流表压缩方法,其特征在于,。

6、所述一个或者多个寄存器表项的数量等于所述多个压缩后流表项中具有不重复的第三键值分段的压缩后流表项的数量,所述多个压缩后流表项按照各自的第三键值分段分别被存储在所述一个或者多个寄存器表项。5.根据权利要求1所述的流表压缩方法,其特征在于,所述一个或者多个寄存器表项的数量等于所述多个压缩后流表项的数量,所述多个压缩后流表项一一对应地被存储在所述一个或者多个寄存器表项。6.根据权利要求1所述的流表压缩方法,其特征在于,所述一个或者多个寄存器表项的数量等于以2为底数和以所述第三长度的位宽为指数的幂,所述多个压缩后流表项分别地被存储在所述一个或者多个寄存器表项。7.根据权利要求1所述的流表压缩方法,其特。

7、征在于,所述第一流表的深度的数量级相比于所述第一流表的宽度的数量级至少高两个数量级,所述第一流表的深度是所述多个待压缩流表项的数量,所述第一流表的宽度是所述多个待压缩流表项中的每一个待压缩流表项的长度。权利要求书1/2 页2CN 117520607 A28.根据权利要求1所述的流表压缩方法,其特征在于,所述第二长度相比于所述第一长度的比例在百分之二十到百分之五十之间。9.根据权利要求1所述的流表压缩方法,其特征在于,所述第一分段策略包括:确定该待压缩流表项的键值部分中的从特定位置开始连续分布的特定位数的键值分段为该第一键值分段,或者,确定该待压缩流表项的键值部分中的多个域段中的特定域段为该第一。

8、键值分段。10.根据权利要求9所述的流表压缩方法,其特征在于,该待压缩流表项的键值部分中的多个域段对应五元组信息,该特定域段是所述五元组信息中位宽最大的域段、源地址域段或者目的地址域段。11.根据权利要求1所述的流表压缩方法,其特征在于,所述第一压缩算法基于内容可寻址元件、散列计算、寄存器名称映射或者寄存器地址映射。12.根据权利要求1所述的流表压缩方法,其特征在于,所述第一寄存器表被部署在三态内容可寻址存储器。13.一种计算机设备,其特征在于,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现根据权利要求1至12中任一项。

9、所述的方法。14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机设备上运行时使得所述计算机设备执行根据权利要求1至12中任一项所述的方法。权利要求书2/2 页3CN 117520607 A3一种流表压缩方法、计算机设备及介质技术领域0001本申请涉及计算机技术领域,尤其涉及一种流表压缩方法、计算机设备及介质。背景技术0002数据中心和网络通信等应用中,各种数据帧在不同计算机之间进行传输通信,因此需要大量的与数据帧有关的处理,例如数据帧的生成、数据帧的解析、特征信息的提取、流表查询、流表特征值匹配还有流表动作获取和执行等。随着各种业务应用的发。

10、展,流表需要支持的数据流的数量可以从几百个的数量级到几千个的数量级再到几百万个的数量级,流表项需要存储的特征信息也可以从几十个比特到几百个比特甚至更多,这样使得单个流表的规模可以达到兆比特级或者更高,从而导致流表占用的资源和成本等迅速上升,也增加了数据帧处理的延时和功耗。0003为此,本申请提供了一种流表压缩方法、计算机设备及介质,用于应对现有技术中的技术难题。发明内容0004第一方面,本申请提供了一种流表压缩方法。所述流表压缩方法包括:确定待压缩的第一流表,其中,所述第一流表包括多个待压缩流表项,所述多个待压缩流表项中的每一个待压缩流表项包括键值部分和动作部分,该键值部分用于该待压缩流表项相。

11、关联的流表项匹配,该动作部分用于该待压缩流表项相关联的流表动作,所述多个待压缩流表项各自的键值部分均是第一长度;针对所述多个待压缩流表项中的每一个待压缩流表项,基于第一分段策略,确定该待压缩流表项的键值部分的第一键值分段和第二键值分段,该第二键值分段是该键值部分中除了该第一键值分段以外的剩余键值部分,所述多个待压缩流表项各自的键值部分的第一键值分段均是第二长度;针对所述多个待压缩流表项中的每一个待压缩流表项,基于第一压缩算法,压缩该待压缩流表项的键值部分的第一键值分段得到第三键值分段,然后用该第三键值分段替换该待压缩流表项的键值部分的第一键值分段得到与该待压缩流表项对应的压缩后流表项,从而得到。

12、与所述多个待压缩流表项一一对应的多个压缩后流表项,所述多个压缩后流表项各自的键值部分的第三键值分段均是第三长度,所述第三长度小于所述第二长度;基于所述多个压缩后流表项,生成第一寄存器表,其中,所述第一寄存器表包括一个或者多个寄存器表项,所述一个或者多个寄存器表项的数量不少于所述多个压缩后流表项中具有不重复的第三键值分段的压缩后流表项的数量,所述第一寄存器表用于代替所述第一流表进行所述第一流表相关联的流表匹配和流表动作。0005通过本申请的第一方面,只是针对所述多个待压缩流表项中的每一个待压缩流表项的键值部分的第一键值分段进行压缩,并且可以结合第一分段策略来选择例如长度最长的域段或者说位宽最大的。

13、域段作为第一键值分段,这样在实现了流表压缩的同时也尽量保留了原本的待压缩流表项对特征信息的表征能力,从而有利于后续流程中降低流表冲突概率,有助于提升整体效率;并且,除了在软件层面上进行压缩以节省存储空间,还在硬件层说明书1/13 页4CN 117520607 A4面上生成第一寄存器表,进一步利用了被缩小的流表项的位宽,在节省了原来流表的存储空间同时,也实现了流表匹配的高效率和正确性。0006在本申请的第一方面的一种可能的实现方式中,基于所述第一寄存器表的流表匹配包括:基于所述一个或者多个寄存器表项各自存储的第三键值分段进行第一重匹配得到第一重匹配结果,然后,基于所述一个或者多个寄存器表项中与所。

14、述第一重匹配结果相关联的寄存器表项各自存储的第二键值分段进行第二重匹配,得到流表匹配结果。0007在本申请的第一方面的一种可能的实现方式中,基于所述第一寄存器表的流表匹配包括:基于所述一个或者多个寄存器表项各自存储的键值部分进行匹配,得到流表匹配结果。0008在本申请的第一方面的一种可能的实现方式中,所述一个或者多个寄存器表项的数量等于所述多个压缩后流表项中具有不重复的第三键值分段的压缩后流表项的数量,所述多个压缩后流表项按照各自的第三键值分段分别被存储在所述一个或者多个寄存器表项。0009在本申请的第一方面的一种可能的实现方式中,所述一个或者多个寄存器表项的数量等于所述多个压缩后流表项的数量。

15、,所述多个压缩后流表项一一对应地被存储在所述一个或者多个寄存器表项。0010在本申请的第一方面的一种可能的实现方式中,所述一个或者多个寄存器表项的数量等于以2为底数和以所述第三长度的位宽为指数的幂,所述多个压缩后流表项分别地被存储在所述一个或者多个寄存器表项。0011在本申请的第一方面的一种可能的实现方式中,所述第一流表的深度的数量级相比于所述第一流表的宽度的数量级至少高两个数量级,所述第一流表的深度是所述多个待压缩流表项的数量,所述第一流表的宽度是所述多个待压缩流表项中的每一个待压缩流表项的长度。0012在本申请的第一方面的一种可能的实现方式中,所述第二长度相比于所述第一长度的比例在百分之二。

16、十到百分之五十之间。0013在本申请的第一方面的一种可能的实现方式中,所述第一分段策略包括:确定该待压缩流表项的键值部分中的从特定位置开始连续分布的特定位数的键值分段为该第一键值分段,或者,确定该待压缩流表项的键值部分中的多个域段中的特定域段为该第一键值分段。0014在本申请的第一方面的一种可能的实现方式中,该待压缩流表项的键值部分中的多个域段对应五元组信息,该特定域段是所述五元组信息中位宽最大的域段、源地址域段或者目的地址域段。0015在本申请的第一方面的一种可能的实现方式中,所述第一压缩算法基于内容可寻址元件、散列计算、寄存器名称映射或者寄存器地址映射。0016在本申请的第一方面的一种可能。

17、的实现方式中,所述第一寄存器表被部署在三态内容可寻址存储器。0017第二方面,本申请实施例还提供了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现根据上述任一方面的任一种实现方式的方法。说明书2/13 页5CN 117520607 A50018第三方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机设备上运行时使得所述计算机设备执行根据上述任一方面的任一种实现方式的方法。0019第四方面,本申请实施例还提供了一种计算机程序产品,所述计算机程序产。

18、品包括存储在计算机可读存储介质上的指令,当所述指令在计算机设备上运行时使得所述计算机设备执行根据上述任一方面的任一种实现方式的方法。附图说明0020为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。0021图1为本申请实施例提供的一种流表压缩方法的流程示意图;图2为本申请实施例提供的一种数据帧处理流程的示意图;图3为本申请实施例提供的一种计算设备的结构示意图。具体实施方式0022下面将结合附图对本申请实施例作进一步地详。

19、细描述。0023应当理解的是,在本申请的描述中,“至少一个”指一个或一个以上,“多个”指两个或两个以上。另外,“第一”、“第二”等词汇,除非另有说明,否则仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。0024图1为本申请实施例提供的一种流表压缩方法的流程示意图。如图1所示,流表压缩方法包括以下步骤。0025步骤S110:确定待压缩的第一流表,其中,所述第一流表包括多个待压缩流表项,所述多个待压缩流表项中的每一个待压缩流表项包括键值部分和动作部分,该键值部分用于该待压缩流表项相关联的流表项匹配,该动作部分用于该待压缩流表项相关联的流表动作,所述多个待压缩流表。

20、项各自的键值部分均是第一长度。0026步骤S120:针对所述多个待压缩流表项中的每一个待压缩流表项,基于第一分段策略,确定该待压缩流表项的键值部分的第一键值分段和第二键值分段,该第二键值分段是该键值部分中除了该第一键值分段以外的剩余键值部分,所述多个待压缩流表项各自的键值部分的第一键值分段均是第二长度。0027步骤S130:针对所述多个待压缩流表项中的每一个待压缩流表项,基于第一压缩算法,压缩该待压缩流表项的键值部分的第一键值分段得到第三键值分段,然后用该第三键值分段替换该待压缩流表项的键值部分的第一键值分段得到与该待压缩流表项对应的压缩后流表项,从而得到与所述多个待压缩流表项一一对应的多个压。

21、缩后流表项,所述多个压缩后流表项各自的键值部分的第三键值分段均是第三长度,所述第三长度小于所述第二长度。0028步骤S140:基于所述多个压缩后流表项,生成第一寄存器表,其中,所述第一寄存器表包括一个或者多个寄存器表项,所述一个或者多个寄存器表项的数量不少于所述多个压缩后流表项中具有不重复的第三键值分段的压缩后流表项的数量,所述第一寄存器表用说明书3/13 页6CN 117520607 A6于代替所述第一流表进行所述第一流表相关联的流表匹配和流表动作。0029参阅图1,待压缩的第一流表可以应用于任意合适的涉及数据帧处理的应用场景,例如在数据中心、网络通信等应用中需要在不同计算机之间传输通信各种。

22、数据帧。待压缩的第一流表中包含多个待压缩流表项,这里待压缩流表项意味着在按照图1所示的流表压缩方法对待压缩的第一流表进行压缩操作之前的流表项,也就是待压缩的第一流表中的原始流表项。使用待压缩的第一流表进行流表匹配,意味着将数据流的特征信息与待压缩的第一流表中包含的待压缩流表项中的键值部分进行匹配,如果匹配成功,则可以执行被匹配的待压缩流表项中的动作部分。通过待压缩的第一流表,可以实现如流表查询、流表特征值匹配还有流表动作获取和执行等。随着高速数字传输技术和各种业务应用的发展,例如在线游戏互动、在线会议、交通监控、工业自动化等业务应用的发展,需要支持的数据流的数量级可以从几百个到几千个甚至到几百。

23、万个,这也就意味着出于流表匹配的需要,待压缩的第一流表中可能要包含数量较多的待压缩流表项。另外,随着各种通信协议、设备互联协议的发展,需要通过单个流表项存储的特征信息也可能从几十个比特到几百个比特甚至更多,再考虑到待压缩的第一流表中可能包含数量较多的待压缩流表项,这样使得单个流表的规模可以高达几十兆比特甚至更高,因此待压缩的第一流表可能需要占据较大的存储空间并导致较高的成本。因此,基于待压缩的第一流表来进行所述第一流表相关联的流表匹配和流表动作,需要应对因为数据流的数量级较高和特征信息较多而带来的挑战。0030继续参阅图1,在步骤S110中,确定待压缩的第一流表。然后,在步骤S120中,针对所。

24、述多个待压缩流表项中的每一个待压缩流表项,基于第一分段策略,确定该待压缩流表项的键值部分的第一键值分段和第二键值分段。这里,该第二键值分段是该键值部分中除了该第一键值分段以外的剩余键值部分,所述多个待压缩流表项各自的键值部分的第一键值分段均是第二长度。该键值部分代表了该待压缩流表项的特征信息,例如特征字段、流号等,用于该待压缩流表项相关联的流表项匹配。使用待压缩的第一流表进行流表匹配,意味着将数据流的特征信息与待压缩的第一流表中包含的待压缩流表项中的键值部分进行匹配,如果匹配成功,则可以执行被匹配的待压缩流表项中的动作部分。可以采用任意合适的匹配算法和流程,在此不做具体限定。例如,可以用轮询方。

25、式或者按照特定次序将数据流的特征信息与待压缩的第一流表中包含的所述多个待压缩流表项中的每一个待压缩流表项进行流表匹配。其中,所述多个待压缩流表项各自的键值部分均是第一长度,第一长度可以是任意合适的数值,并且可以适配具体的应用场景的需求,例如通信协议规定的数据流特征值具有的五元组信息的构成及长度。五元组信息包含源地址域段(或者叫做源网络协议地址域段,长度为32比特或者128比特),目的地址域段(或者叫做目的网络协议地址域段,长度为32比特或者128比特),协议域段(8比特),源端口域段(16比特),目的端口域段(16比特)。取决于具体的通信协议,例如IPv6协议,数据包的五元组信息总长度可以是2。

26、96比特(128比特加上128比特加上8比特加上16比特再加上16比特)也就是要占据296比特的位宽,则用于匹配数据流的特征信息的相应的待压缩流表项的键值部分的第一长度也为296比特。在步骤S120中,基于第一分段策略,确定了每一个待压缩流表项的第一键值分段和第二键值分段。换句话说,利用第一分段策略,统一地将每一个待压缩流表项划分为第一键值分段和第二键值分段。第一分段策略代表了具体的划分方式。例如,第一分段策略可以是参考五元组信息的构成,将其中特定域段如最长的域段作为第一键值分段而将其它域段作为第说明书4/13 页7CN 117520607 A7二键值分段。例如,可以将源地址域段或者目的地址域。

27、段作为第一键值分段。应当理解的是,该第二键值分段是该键值部分中除了该第一键值分段以外的剩余键值部分,因此,所述多个待压缩流表项中的每一个待压缩流表项在基于第一分段策略进行划分后由第一键值分段和第二键值分段构成。另外,所述多个待压缩流表项各自的键值部分的第一键值分段均是第二长度,例如将源地址域段作为第一键值分段则第二长度是源地址域段的长度,当通信协议是IPv6协议时第二长度是128比特。第二长度必然是小于第一长度。0031继续参阅图1,在步骤S130,针对所述多个待压缩流表项中的每一个待压缩流表项,基于第一压缩算法,压缩该待压缩流表项的键值部分的第一键值分段得到第三键值分段,然后用该第三键值分段。

28、替换该待压缩流表项的键值部分的第一键值分段得到与该待压缩流表项对应的压缩后流表项,从而得到与所述多个待压缩流表项一一对应的多个压缩后流表项。这里,第一压缩算法可以代表任意合适的具有缩短原始数据长度效果的算法、模型、映射等。例如,第一压缩算法可以是哈希算法,对原始数据也就是该待压缩流表项的键值部分的第一键值分段进行哈希计算,从而得到哈希值作为第三键值分段。应当理解的是,在步骤S130中只是针对所述多个待压缩流表项中的每一个待压缩流表项的键值部分的第一键值分段进行压缩。上面提到,每一个待压缩流表项的键值部分代表了该待压缩流表项的特征信息,用于该待压缩流表项相关联的流表项匹配。因此,每一个待压缩流表。

29、项的键值部分代表了用于流表项匹配的完整的特征信息,而每一个待压缩流表项的键值部分的第一键值分段代表了这样的完整的特征信息中的一部分(其他部分是第二键值分段)。压缩该待压缩流表项的键值部分的第一键值分段得到第三键值分段,然后用该第三键值分段替换该待压缩流表项的键值部分的第一键值分段得到与该待压缩流表项对应的压缩后流表项,如此,压缩后表项的键值部分包括第三键值分段和第二键值分段。这样意味着,多个压缩后流表项中的每一个压缩后表项的键值部分所代表的特征信息由经过压缩得到的第三键值分段和没有经过压缩的第二键值分段构成,因此与所述多个待压缩流表项中的对应的待压缩流表项的区别只在于第一键值分段。换句话说,多。

30、个压缩后流表项中的每一个压缩后表项的键值部分所代表的特征信息与所述多个待压缩流表项中的对应的待压缩流表项的键值部分所代表的特征信息之间的区别,实质上是第三键值分段与第一键值分段之间的区别。从信息学角度分析,以二进制标识的一定位宽的数据,该数据的数值范围是由其位宽决定的。例如,8比特的数据可以有2的8次方种取值也就是最多存在2的8次方种可能情况。因此,第一键值分段(第二长度)所能代表的特征信息的可能情况的最大数量也是由第二长度决定的,例如将源地址域段作为第一键值分段,设源地址域段是128比特,则第一键值分段所能代表的特征信息的可能情况的最大数量是2的128次方。但是,在实际应用中,待压缩的第一流。

31、表所包含的多个待压缩流表项各自的键值部分的第一键值分段,其中不重复的第一键值分段的总数量可能远小于第一键值分段所能代表的特征信息的可能情况的最大数量。这是因为,尽管待压缩的第一流表可能包含百万个数量级的待压缩流表项,但是这些待压缩流表项各自的键值部分的第一键值分段之间可能变化不大。例如,以五元组信息作为键值部分的特征信息,将五元组信息中的源地址域段作为第一键值分段,源地址域段用于匹配数据流的源头也就是发送数据流的一方的网络协议地址。因此,待压缩的第一流表中可能存在一定数量的待压缩流表项的键值部分的第一键值分段是对应同一个网络协议地址,例如来自同一个计算机或者计算节点。因此,可以将长度最长的域段。

32、或者说位宽最大的域段说明书5/13 页8CN 117520607 A8作为第一键值分段,这样的第一键值分段用于表征特征信息的最大能力一般没有得到充分利用,因此存在较大的压缩空间。将长度最长的域段或者说位宽最大的域段作为第一键值分段,对其进行压缩得到第三键值分段,第三键值分段的第三长度小于第一键值分段的第二长度,因此能更充分地利用第三键值分段用于表征特征信息的最大能力。例如,将源地址域段作为第一键值分段,设源地址域段是128比特,对源地址域段进行压缩得到的第三键值分段是10比特,因此,第三键值分段用于表征特征信息的最大能力是2的10次方,在一般情况下10比特长度的第三键值分段足够覆盖待压缩的第一。

33、流表所包含的多个待压缩流表项对于表征特征信息的需求。也就说,从信息学角度分析,在步骤S130中执行压缩操作得到的压缩后流表项,相比于对应的待压缩流表项,在特征信息的表征能力上可能损失很少甚至没有损失,但是可能从第一键值分段的第二长度128比特减少到第三键值分段的第三长度10比特,也就是每一个压缩后流表项相比于对应的待压缩流表项节省了118比特的位宽,因此在百万数量级的流表整体上看来节省了相当多的存储空间。应当理解的是,如果是对所述多个待压缩流表项中的每一个待压缩流表项的键值部分的整体进行压缩,可以节省更多的存储空间,但是这样可能导致特征信息的表征能力的损失,从而增加了流表冲突的概率,例如对键值。

34、部分的整体(也即包括第一键值分段和第二键值分段)进行哈希计算可能使得原本不同的两个待压缩流表项被映射到哈希空间的同一个位置。图1所示的流表压缩方法,只是针对所述多个待压缩流表项中的每一个待压缩流表项的键值部分的第一键值分段进行压缩,并且可以结合第一分段策略来选择例如长度最长的域段或者说位宽最大的域段作为第一键值分段,这样在实现了流表压缩的同时也尽量保留了原本的待压缩流表项对特征信息的表征能力,从而有利于后续流程中降低流表冲突概率,有助于提升整体效率。0032继续参阅图1,在步骤S140,基于所述多个压缩后流表项,生成第一寄存器表。所述第一寄存器表包括一个或者多个寄存器表项,所述一个或者多个寄存。

35、器表项的数量不少于所述多个压缩后流表项中具有不重复的第三键值分段的压缩后流表项的数量,所述第一寄存器表用于代替所述第一流表进行所述第一流表相关联的流表匹配和流表动作。如此,通过软硬件结合的方式,实现了流表压缩和提升效率。其中,在软件层面上,通过前面的步骤,对于每一个待压缩流表项,压缩该待压缩流表项的键值部分的第一键值分段得到第三键值分段,然后用该第三键值分段替换该待压缩流表项的键值部分的第一键值分段得到与该待压缩流表项对应的压缩后流表项。这样得到的所述多个压缩后流表项,可以作为新的流表用于替代待压缩的第一流表,并且,节省的流表存储空间等于流表深度乘以每一个流表项减少的位宽。流表深度是流表项的数。

36、量,流表宽度是每个流表项的键值部分的总位宽。进一步地,在硬件层面上,因为已经在软件层面上大幅度缩小了数据位宽,因此可以用寄存器方式来存储新的流表。例如,可以使用内容可寻址寄存器来生成第一寄存器表,并且,第一寄存器表所包含的所述一个或者多个寄存器表项的数量不少于所述多个压缩后流表项中具有不重复的第三键值分段的压缩后流表项的数量,这样,确保了压缩得到的第三键值分段的所有可能取值分别对应独立的寄存器表项。因此,可以统计得出所述多个压缩后流表项中具有不重复的第三键值分段的压缩后流表项的数量,例如存在500个具有不重复的第三键值分段的压缩后流表项,则提供500个寄存器表项。这样得到的第一寄存器表可以使用。

37、内容可寻址寄存器来存储,进而可以用于代替所述第一流表进行所述第一流表相关联的流表匹配和流表动作。因此,可以通过查找第一寄存器表,匹配第一寄存器表中的寄存器表项从说明书6/13 页9CN 117520607 A9而确定要执行的流表动作,在节省了原来流表的存储空间同时,也实现了流表匹配的高效率和正确性。0033总之,图1所示的流表压缩方法,只是针对所述多个待压缩流表项中的每一个待压缩流表项的键值部分的第一键值分段进行压缩,并且可以结合第一分段策略来选择例如长度最长的域段或者说位宽最大的域段作为第一键值分段,这样在实现了流表压缩的同时也尽量保留了原本的待压缩流表项对特征信息的表征能力,从而有利于后续。

38、流程中降低流表冲突概率,有助于提升整体效率;并且,除了在软件层面上进行压缩以节省存储空间,还在硬件层面上生成第一寄存器表,进一步利用了被缩小的流表项的位宽,在节省了原来流表的存储空间同时,也实现了流表匹配的高效率和正确性。0034图2为本申请实施例提供的一种数据帧处理流程的示意图。如图2所示,数据帧处理流程依次执行以下步骤。0035步骤S210:获取和解析数据帧。0036步骤S220:提取键值。0037步骤S230:压缩键值元素并重新组合得到新键值。0038步骤S240:哈希计算和查哈希表。0039步骤S250:获取流表项索引。0040步骤S260:读取流表并匹配比较。0041步骤S270:执。

39、行相关流表动作和完成数据帧处理。0042其中,图2所示的数据帧处理流程中的步骤S220和步骤S230,可以参考图1所示的流表压缩方法。图1所示的流表压缩方法中,针对所述多个待压缩流表项中的每一个待压缩流表项,基于第一分段策略,确定该待压缩流表项的键值部分的第一键值分段和第二键值分段;针对所述多个待压缩流表项中的每一个待压缩流表项,基于第一压缩算法,压缩该待压缩流表项的键值部分的第一键值分段得到第三键值分段,然后用该第三键值分段替换该待压缩流表项的键值部分的第一键值分段得到与该待压缩流表项对应的压缩后流表项,从而得到与所述多个待压缩流表项一一对应的多个压缩后流表项。如此,利用图1所示的流表压缩方。

40、法,图2所示的数据帧处理流程,只是针对所述多个待压缩流表项中的每一个待压缩流表项的键值部分的第一键值分段进行压缩,并且可以结合第一分段策略来选择例如长度最长的域段或者说位宽最大的域段作为第一键值分段,这样在实现了流表压缩的同时也尽量保留了原本的待压缩流表项对特征信息的表征能力,从而有利于后续流程中降低流表冲突概率,有助于提升整体效率;并且,除了在软件层面上进行压缩以节省存储空间,还在硬件层面上生成第一寄存器表,进一步利用了被缩小的流表项的位宽,在节省了原来流表的存储空间同时,也实现了流表匹配的高效率和正确性。如此,图2所示的数据帧处理流程,降低了流表占用的资源和成本,降低了数据帧处理的延时和功。

41、耗。0043参阅图1和图2,在一种可能的实施方式中,基于所述第一寄存器表的流表匹配包括:基于所述一个或者多个寄存器表项各自存储的第三键值分段进行第一重匹配得到第一重匹配结果,然后,基于所述一个或者多个寄存器表项中与所述第一重匹配结果相关联的寄存器表项各自存储的第二键值分段进行第二重匹配,得到流表匹配结果。上面提到,所述一个或者多个寄存器表项的数量不少于所述多个压缩后流表项中具有不重复的第三键值分段的压缩后流表项的数量。这样,确保了压缩得到的第三键值分段的所有可能取值分别说明书7/13 页10CN 117520607 A10对应独立的寄存器表项。进一步地,基于所述一个或者多个寄存器表项各自存储的。

42、第三键值分段进行第一重匹配,如果只命中了一个寄存器表项,这意味着所述一个或者多个寄存器表项中与所述第一重匹配结果相关联的寄存器表项是单个寄存器表项,则第二重匹配的结果必然是该寄存器表项。如果命中了多于一个的寄存器表项,这意味着述一个或者多个寄存器表项中与所述第一重匹配结果相关联的寄存器表项是多于一个的寄存器表项,则再进行第二重匹配从而得到流表匹配结果。如此,通过第一重匹配和第二重匹配,利用了硬件层面上的第一寄存器表的读取速度快的优点,在节省了原来流表的存储空间同时,也实现了流表匹配的高效率和正确性。0044在一种可能的实施方式中,基于所述第一寄存器表的流表匹配包括:基于所述一个或者多个寄存器表。

43、项各自存储的键值部分进行匹配,得到流表匹配结果。如此,利用键值部分进行匹配,在节省了原来流表的存储空间同时,也实现了流表匹配的高效率和正确性。0045在一种可能的实施方式中,所述一个或者多个寄存器表项的数量等于所述多个压缩后流表项中具有不重复的第三键值分段的压缩后流表项的数量,所述多个压缩后流表项按照各自的第三键值分段分别被存储在所述一个或者多个寄存器表项。上面提到,所述一个或者多个寄存器表项的数量不少于所述多个压缩后流表项中具有不重复的第三键值分段的压缩后流表项的数量。这样,确保了压缩得到的第三键值分段的所有可能取值分别对应独立的寄存器表项。这里,所述一个或者多个寄存器表项的数量等于所述多个。

44、压缩后流表项中具有不重复的第三键值分段的压缩后流表项的数量,并且,所述多个压缩后流表项按照各自的第三键值分段分别被存储在所述一个或者多个寄存器表项。如此,提升了存储资源的利用率。0046在一种可能的实施方式中,所述一个或者多个寄存器表项的数量等于所述多个压缩后流表项的数量,所述多个压缩后流表项一一对应地被存储在所述一个或者多个寄存器表项。上面提到,所述一个或者多个寄存器表项的数量不少于所述多个压缩后流表项中具有不重复的第三键值分段的压缩后流表项的数量。这样,确保了压缩得到的第三键值分段的所有可能取值分别对应独立的寄存器表项。进一步地,考虑到流表更新、新的流表下发可能改变所述多个压缩后流表项中具。

45、有不重复的第三键值分段的压缩后流表项的数量,例如导致增加了具有不重复的第三键值分段的压缩后流表项的数量也就导致需要更多的寄存器表项。为此,可以使得所述一个或者多个寄存器表项的数量等于所述多个压缩后流表项的数量,这样可以更好地适配流表更新的需求。0047在一种可能的实施方式中,所述一个或者多个寄存器表项的数量等于以2为底数和以所述第三长度的位宽为指数的幂,所述多个压缩后流表项分别地被存储在所述一个或者多个寄存器表项。上面提到,所述一个或者多个寄存器表项的数量不少于所述多个压缩后流表项中具有不重复的第三键值分段的压缩后流表项的数量。这样,确保了压缩得到的第三键值分段的所有可能取值分别对应独立的寄存。

46、器表项。进一步地,从信息学角度分析,以二进制标识的一定位宽的数据,该数据的数值范围是由其位宽决定的。例如,8比特的数据可以有2的8次方种取值也就是最多存在2的8次方种可能情况。第三键值分段用于表征特征信息的最大能力可以体现为以2为底数和以所述第三长度的位宽为指数的幂。因此,可以设定所述一个或者多个寄存器表项的数量等于以2为底数和以所述第三长度的位宽为指数的幂,如此,所述一个或者多个寄存器表项的数量足够完全利用第三键值分段用于表征特说明书8/13 页11CN 117520607 A11征信息的最大能力,后续的流表更新也不会导致需要增加新的寄存器表项,这样在实现了流表压缩的同时也尽量保留了原本的待。

47、压缩流表项对特征信息的表征能力,从而有利于后续流程中降低流表冲突概率,有助于提升整体效率。0048在一种可能的实施方式中,所述第一流表的深度的数量级相比于所述第一流表的宽度的数量级至少高两个数量级,所述第一流表的深度是所述多个待压缩流表项的数量,所述第一流表的宽度是所述多个待压缩流表项中的每一个待压缩流表项的长度。如上所述,多个压缩后流表项中的每一个压缩后表项的键值部分所代表的特征信息与所述多个待压缩流表项中的对应的待压缩流表项的键值部分所代表的特征信息之间的区别,实质上是第三键值分段与第一键值分段之间的区别。节省的流表存储空间等于流表深度乘以每一个流表项减少的位宽。流表深度是流表项的数量,流。

48、表宽度是每个流表项的键值部分的总位宽。当第一流表的深度的数量级相比于所述第一流表的宽度的数量级至少高两个数量级时,节省下来的存储资源所带来的好处是显著的,并且,随着第一流表的深度的数量级相比于所述第一流表的宽度的数量级之间的差距越大,通过节省存储资源所带来的性能提升更明显。0049在一种可能的实施方式中,所述第二长度相比于所述第一长度的比例在百分之二十到百分之五十之间。压缩后表项的键值部分包括第三键值分段和第二键值分段。这样意味着,多个压缩后流表项中的每一个压缩后表项的键值部分所代表的特征信息由经过压缩得到的第三键值分段和没有经过压缩的第二键值分段构成,因此与所述多个待压缩流表项中的对应的待压。

49、缩流表项的区别只在于第一键值分段。一般地,第三键值分段足够覆盖待压缩的第一流表所包含的多个待压缩流表项对于表征特征信息的需求。也就说,从信息学角度分析,压缩后流表项相比于对应的待压缩流表项,在特征信息的表征能力上可能损失很少甚至没有损失,但是可能从第一键值分段的第二长度减少到第三键值分段的第三长度,也就是每一个压缩后流表项相比于对应的待压缩流表项节省了一定的位宽,因此在百万数量级的流表整体上看来节省了相当多的存储空间。第二长度也即第一键值分段的长度相对于第一长度也即待压缩流表项的键值部分的长度的比例,如果该比例过低则意味着第二长度相对于第一长度的比例过高,这样难以体现通过压缩第一键值分段来节省。

50、存储空间的有益效果,但是,如果该比例过高则意味着第二长度相对于第一长度的比例过高,这样可能导致在特征信息的表征能力上因为压缩而损失太大进而增加了流表冲突概率。为此,需要考虑到节省存储空间和避免损失特征信息的表征能力之间的均衡。可以设定所述第二长度相比于所述第一长度的比例在百分之二十到百分之五十之间,如此,一方面通过压缩第一键值分段来节省存储空间,另一方面避免了特征信息的表征能力上因为压缩而损失太大。0050在一种可能的实施方式中,所述第一分段策略包括:确定该待压缩流表项的键值部分中的从特定位置开始连续分布的特定位数的键值分段为该第一键值分段,或者,确定该待压缩流表项的键值部分中的多个域段中的特。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1