CN116962321B - 数据包传输方法、传输配置方法、装置、设备及介质 - Google Patents
数据包传输方法、传输配置方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN116962321B CN116962321B CN202311200593.1A CN202311200593A CN116962321B CN 116962321 B CN116962321 B CN 116962321B CN 202311200593 A CN202311200593 A CN 202311200593A CN 116962321 B CN116962321 B CN 116962321B
- Authority
- CN
- China
- Prior art keywords
- rule
- priority
- data packet
- target
- information
- 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
- 238000000034 method Methods 0.000 title claims abstract description 132
- 230000005540 biological transmission Effects 0.000 title claims abstract description 106
- 230000009471 action Effects 0.000 claims description 61
- 238000004590 computer program Methods 0.000 claims description 11
- 230000007547 defect Effects 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 19
- 238000004891 communication Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 9
- 238000013473 artificial intelligence Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000010801 machine learning Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/111—Switch interfaces, e.g. port details
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/60—Software-defined switches
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供了一种数据包传输方法、传输配置方法、装置、设备及介质,属于软件定义网络技术领域。该方法包括:获取待处理的目标数据包,其中,目标数据包中设置有数据包信息;根据数据包信息以及基于子规则表和总规则表生成的当前交换机规则信息,得到查询信息;根据查询信息查询标签表得到查询结果;当查询结果表征目标数据包未被处理,则根据查询结果,查询当前交换机的子规则表,得到包括转发指令、执行指令或匹配指令在内的规则匹配结果。本申请能够在保持网络规则语义不变的同时,避免规则配置的膨胀和传输缺陷。
Description
技术领域
本申请涉及软件定义网络技术领域,尤其涉及一种数据包传输方法、传输配置方法、装置、设备及介质。
背景技术
在软件定义网络(Software-Defined Network,SDN)中,不可避免地会涉及到数据包传输问题,其中,数据包传输是虚拟专用网(Virtual Private Network,VPN)、防火墙(Firewall)等多个网络应用的关键功能,其中,各交换机中配置的网络规则是数据包传输的重要依据。
通常,SDN控制器能够首先将包含网络拓扑中完整网络规则的总规则表存放于边缘交换机的三态内容寻址存储器(Ternary Content Addressable Memory,TCAM)中,接着根据总规则表生成存放于各通用交换机TCAM中的子规则表,然而,各子规则表之间的往往存在重复的网络规则,如此,造成了存储空间有限且价格昂贵的TCAM存储开销过高的问题,也由此导致了网络规则膨胀,并且,重复的网络规则容易使得数据包在传输过程中出现如规则冲突、优先级混乱等数据传输缺陷。
发明内容
本申请实施例的主要目的在于提出一种数据包传输方法、传输配置方法、装置、设备及介质,能够在保持网络规则语义不变的同时,避免规则配置膨胀和传输缺陷。
为实现上述目的,本申请实施例的第一方面提出了一种数据包传输方法,应用于网络系统,所述网络系统包括控制器和多个交换机,所述交换机与所述控制器连接,所述交换机存储有子规则表,所述方法包括:获取待处理的目标数据包,其中,所述目标数据包设置有数据包信息,所述数据包信息包括所述目标数据包的数据包处理状态,以及与所述目标数据包匹配的目标规则信息;根据所述数据包信息以及基于子规则表和总规则表生成的当前交换机规则信息,得到查询信息,其中,所述子规则表包含当前交换机对应的网络规则,所述子规则表为所述控制器根据所述总规则表划分得到的;根据所述查询信息查询标签表得到查询结果;当查询结果表征所述数据包处理状态为未处理状态时,根据所述查询结果,查询当前交换机的所述子规则表,得到规则匹配结果,并根据所述规则匹配结果传输所述目标数据包;其中,所述规则匹配结果包括:转发指令、执行指令或匹配指令;所述执行指令用于指示根据所述目标规则信息执行处理动作,所述转发指令用于指示将所述目标数据包转发至下一个交换机;所述匹配指令用于指示根据所述子规则表得到所述目标数据包的查询规则,并在所述当前交换机上执行所述查询规则或执行所述转发指令。
在一些实施例中,所述网络规则包括规则类型和优先级顺序,所述规则类型用于表征所述网络规则为共享规则或独享规则;所述获取待处理的目标数据包之前,还包括:接收所述控制器发送的子规则表,并解析所述子规则表得到至少一条网络规则,其中,所述子规则表是所述总规则表的一个子表;解析所述网络规则,得到所述网络规则的规则类型和优先级顺序;当所述规则类型为共享规则时,确定所述网络规则的所述优先级顺序为共享优先级顺序,当所述规则类型为独享规则时,确定所述网络规则的所述优先级顺序为独享优先级顺序。
在一些实施例中,所述目标规则信息包括:目标规则优先级、目标规则类型和目标规则动作;所述当前交换机规则信息包括:最大优先级、后续共享信息、后续共享优先级、后续独享信息、后续独享优先级,其中,所述最大优先级为所述子规则表中最大优先级网络规则对应的优先级;所述根据所述数据包信息以及基于子规则表和总规则表生成的当前交换机规则信息,得到查询信息,包括:根据所述目标规则优先级和所述最大优先级得到第一查询数据,其中,所述第一查询数据包括第一比较字段和所述目标规则类型,所述第一比较字段用于表征所述最大优先级和所述目标规则优先级的比较结果,所述最大优先级和所述目标规则优先级为一个单位长度,所述第一比较字段和所述目标规则类型均为一个比特长度;根据所述目标规则优先级和所述后续共享优先级得到第二查询数据,其中,所述第二查询数据包括第二比较字段和所述后续共享信息,所述第二比较字段用于表征所述目标规则优先级和所述后续共享优先级的比较结果,所述后续共享优先级为一个单位长度,所述第二比较字段和所述后续共享信息均为一个比特长度;根据所述目标规则优先级和所述后续独享优先级得到第三查询数据,其中,所述第三查询数据包括第三比较字段和所述后续独享信息,所述第三比较字段用于表征所述目标规则优先级和所述后续独享优先级的比较结果,所述后续独享优先级为一个单位长度,所述第三比较字段和所述后续独享信息均为一个比特长度;根据所述第一查询数据、所述第二查询数据和所述第三查询数据,得到查询信息。
在一些实施例中,每一所述交换机对应至少一条交换机路径,所述交换机还设置有转发表;所述当查询结果表征所述数据包处理状态为未处理状态时,根据所述查询结果,查询当前交换机的所述子规则表,得到规则匹配结果,包括:根据所述子规则表获取当前交换机的最大优先级规则以及所述最大优先级规则的最大优先级;根据所述转发表确定所述目标数据包的转发路径,根据所述转发路径以及所述交换机路径确定当前交换机的后续交换机,并确定所述后续交换机对应的子规则表中各所述网络规则的优先级信息;当所述目标规则优先级小于所述最大优先级时,查询所述子规则表,得到所述查询规则,并获取所述查询规则的查询规则类型和查询规则优先级,根据所述查询规则类型、所述查询规则优先级和所述优先级信息生成所述执行指令或所述转发指令;当所述目标规则优先级大于所述最大优先级时,根据所述目标规则类型、所述目标规则优先级和所述优先级信息生成所述执行指令或所述转发指令。
在一些实施例中,所述根据所述查询规则类型、所述查询规则优先级和所述优先级信息生成所述执行指令或所述转发指令,包括:根据所述优先级信息判断所述查询规则的第一优先级位置;若所述第一优先级位置表征所述查询规则在所述优先级信息中优先级最高,则生成所述执行指令,否则将所述目标数据包的所述目标规则更新为所述查询规则,并生成所述转发指令;当依据所述执行指令完成执行操作时,将所述数据包处理状态更新为已处理状态。
在一些实施例中,所述将所述目标数据包的所述目标规则更新为所述查询规则,包括:根据所述查询规则,得到更新规则优先级、更新规则类型和更新规则动作;根据所述更新规则优先级、更新规则类型和更新规则动作,更新所述目标规则信息。
在一些实施例中,所述根据所述优先级信息判断所述查询规则的第一优先级位置,包括:若所述查询规则为独享规则,得到所述独享规则的独享优先级;根据所述转发表确定所述目标数据包的转发路径,根据所述转发路径以及所述交换机路径确定当前交换机的后续交换机,并得到所述后续交换机的后续共享规则,以及所述后续共享规则的后续共享优先级;根据所述独享优先级和所述后续共享优先级,得到所述查询规则的第一优先级位置。
在一些实施例中,所述根据所述优先级信息判断所述查询规则的第一优先级位置,还包括:若所述查询规则为共享规则,得到所述共享规则的共享优先级;根据所述转发表确定所述目标数据包的转发路径,根据所述转发路径以及所述交换机路径确定当前交换机的后续交换机,并得到所述后续交换机的后续独享规则,以及所述后续独享规则的后续独享优先级;根据所述共享优先级和所述后续独享优先级,得到所述查询规则的第一优先级位置。
在一些实施例中,所述根据所述目标规则类型、所述目标规则优先级和所述优先级信息生成所述执行指令或所述转发指令,包括:若所述后续独享优先级或所述后续共享优先级大于所述目标规则优先级,则生成转发指令,所述转发指令用于根据所述转发路径将所述目标数据包转发至下一交换机;若所述后续独享优先级或所述后续共享优先级小于所述目标规则优先级,则生成执行指令,所述执行指令用于执行所述目标规则信息对应的目标规则动作。
为实现上述目的,本申请实施例的第二方面提出了一种传输配置方法,应用于控制器,网络系统包括所述控制器和多个交换机,所述控制器与所述交换机连接,所述方法包括:获取预设的总规则表,其中,所述总规则表包括多个具有优先级顺序的网络规则,所述网络规则包括路径属性和规则类型,所述规则类型用于表征所述网络规则为共享规则或独享规则;根据所述路径属性,确定所述网络规则在所述网络系统中的路径;根据所述规则类型,确定所述网络规则的所述优先级顺序为共享优先级顺序或独享优先级顺序;根据所述共享优先级顺序或所述独享优先级顺序,将各所述网络规则沿着所述路径进行放置,并生成各所述交换机的子规则表,其中,所述子规则表是所述总规则表的一个子表;将所述子规则表发送给对应的交换机,以使所述交换机根据所述子规则表解析得到共享规则和/或独享规则。
为实现上述目的,本申请实施例的第三方面提出了一种数据包传输装置,应用于网络系统,所述网络系统包括控制器和多个交换机,所述交换机与所述控制器连接,所述交换机存储有子规则表,所述装置包括:获取模块,用于获取待处理的目标数据包,其中,所述目标数据包设置有数据包信息,所述数据包信息包括所述目标数据包的数据包处理状态,以及与所述目标数据包匹配的目标规则信息;查询信息模块,用于根据所述数据包信息以及基于子规则表和总规则表生成的当前交换机规则信息,得到查询信息,其中,所述子规则表包含当前交换机对应的网络规则,所述子规则表为所述控制器根据所述总规则表划分得到的;查询结果模块,用于根据所述查询信息查询标签表得到查询结果;匹配模块,用于当查询结果表征所述数据包处理状态为未处理状态时,根据所述查询结果,查询当前交换机的所述子规则表,得到规则匹配结果,并根据所述规则匹配结果传输所述目标数据包;其中,所述规则匹配结果包括:转发指令、执行指令或匹配指令;所述执行指令用于指示根据所述目标规则信息执行处理动作,所述转发指令用于指示将所述目标数据包转发至下一个交换机;所述匹配指令用于指示根据所述子规则表得到所述目标数据包的查询规则,并在所述当前交换机上执行所述查询规则或执行所述转发指令。
为实现上述目的,本申请实施例的第四方面提出了一种电子设备,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的方法或上述第二方面所述的方法。
为实现上述目的,本申请实施例的第五方面提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的方法或上述第二方面所述的方法。
本申请提出的数据包传输方法、传输配置方法、装置、设备及介质,其通过将总规则表划分成多个子规则表,并将子规则表置于各交换机中,由于各子规则表之间的网络规则均不重复,减少了不必要的规则存储开销,避免了网络规则的膨胀以及数据传输缺陷;在数据包传输时,首先获取待处理的目标数据包,并根据数据包信息以及基于子规则表和总规则表生成的当前交换机规则信息,得到查询信息,接着,根据查询信息查询标签表得到查询结果,当查询结果表征目标数据包未被处理时,根据查询结果,查询当前交换机的所述子规则表,得到规则匹配结果,也就是说,在减少了不必要规则存储开销并避免规则膨胀的同时,本申请能够通过设置在数据包中的数据包信息和当前交换机规则信息查询标签表和子规则表,得到目标数据包的规则匹配结果,以完成目标数据包的正确转发或执行动作处理,实现目标数据包的传输。
附图说明
图1是本申请实施例提供的一个可选的总规则表示意图;
图2是本申请实施例提供的一个可选的子规则表示意图;
图3是本申请实施例提供的另一个可选的子规则表示意图;
图4是本申请实施例提供的数据包传输方法的一个可选的流程图;
图5是本申请实施例提供的数据包传输方法的一个可选的数据包信息示意图;
图6是本申请实施例提供的数据包传输方法的一个可选的当前交换机规则信息示意图;
图7是本申请实施例提供的一个可选的标签表示意图;
图8是图4步骤S101之前的一个实现流程图;
图9是图4步骤S102的一个实现流程图;
图10是本申请实施例提供的数据包传输方法的另一个可选的数据包信息示意图;
图11是本申请实施例提供的数据包传输方法的另一个可选的当前交换机规则信息示意图;
图12是本申请实施例提供的数据包传输方法的一个可选的查询信息示意图;
图13是图4步骤S104的一个实现流程图;
图14是图13步骤S403的一个实现流程图;
图15是图14步骤S502的一个实现流程图;
图16是图14步骤S501的一个实现流程图;
图17是图14步骤S501的另一个实现流程图;
图18是图13步骤S404的一个实现流程图;
图19是本申请实施例提供的传输配置方法的一个可选的流程示意图;
图20是本申请实施例提供的传输配置方法的一个可选路径示意图;
图21是本申请实施例提供的传输配置方法的一个可选规则配置示意图;
图22是本申请实施例提供的传输配置方法的另一个可选路径示意图;
图23是本申请实施例提供的传输配置方法的另一个可选的流程示意图;
图24是本申请实施例提供的一个可选的子标签表示意图;
图25是本申请实施例提供的数据包传输方法的又一个可选的流程示意图;
图26是本申请实施例提供的数据包传输装置的功能模块示意图;
图27是本申请实施例提供的电子设备的硬件结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
在软件定义网络(Software-Defined Network,SDN)中,不可避免地会涉及到数据包传输问题,其中,数据包传输是虚拟专用网(Virtual Private Network,VPN)、防火墙(Firewall)等多个网络应用的关键功能,其中,各交换机中配置的网络规则是数据包传输的重要依据。
通常,SDN控制器能够首先将包含网络拓扑中完整网络规则的总规则表存放于边缘交换机的三态内容寻址存储器(Ternary Content Addressable Memory,TCAM)中,接着根据总规则表生成存放于各通用交换机TCAM中的子规则表,然而,各子规则表之间的往往存在重复的网络规则,如此,造成了存储空间有限且价格昂贵的TCAM存储开销过高的问题,也由此导致了网络规则膨胀,并且,重复的网络规则容易使得数据包在传输过程中出现如规则冲突、优先级混乱等数据传输缺陷。
需要说明的是,交换机的TCAM芯片的存储空间通常十分有限且价格昂贵,大量重复的网络规则会造成网络规则的膨胀,会造成占用大量内存、成本增加以及规则维护困难等一系列问题。例如,TCAM芯片的TCAM表项总数约为10K,而膨胀后的规则可能达到了100K或1M,由此导致各网络规则难以存储且难以扩展,也因此,减少TCAM存储开销成为了提升网络规则放置性能和可扩展性的关键。
如图1所示,图1是本申请实施例提供的一个可选的总规则表示意图,其中,网络规则(也可以称为“规则”)R1至网络规则R6的优先级逐渐降低,且不同的规则间存在规则依赖,即优先级高的会覆盖优先级低的规则。另外,TCAM还支持通配符匹配,当查询规则表时,TCAM会同时查到多个存在依赖的规则,但最终只匹配优先级最高的规则,并执行最高优先级对应的网络规则动作。例如,当一个源IP为01,目的IP为11的数据包进入交换机时,会在交换机内同时查询到R2,R3,R6三条规则,但是最终只会匹配优先级最高的规则R2,执行动作A2。
需要说明的是,存放于TCAM的总规则表中的网络规则存在优先级顺序,但是,如果只是单纯地将大规则表划分为多个小的子规则表,会破坏原有规则的优先级,导致执行错误的动作,因此需要在保证规则划分放置前后语义不变的同时,使传输的数据包能在网络规则划分放置前后匹配到一致的网络规则,并执行相同的动作。
如图2、图3所示,图2是本申请实施例提供的一个可选的子规则表示意图,图3是本申请实施例提供的另一个可选的子规则表示意图,示例性地,相关技术中将图1对应的总规则表划分为图2对应的子规则表1和图3对应的子规则表2,可以理解的是,由于R2和R3是共享规则,因此在划分子规则表1和子规则表2时,这两个表项都包括了规则R2和R3,由此,造成了各交换机中规则存储的膨胀。
示例性地,子规则表的划分方法包括调色(Palette)方法、单开关(One BigSwitch,OBS)方法、单比特(ONEBIT)方法等。这些规则放置方法将边缘交换机内的规则划分放置到网络中其他交换机,并且保证了规则划分放置前后语义不变。但是,相关技术的规则放置方法将规则划分放置到多个路径上的交换机存在规则膨胀的问题,增加了网络系统中总的TCAM存储开销,难以满足支持管理大规模规则的需求,不具备可扩展性。例如,Palette方法是基于枢纽的划分方法,将边缘交换机中的规则进行划分放置,解决了大的规则表划分成多个小的子规则表时产生的规则依赖问题,划分后的规则互不相交,确保数据包在经过路径中的多个交换机时不会重复匹配多个规则。但是,规则的扩展造成了规则放置后网络内规则总数的增多,带来额外的TCAM表项开销。OBS方法将规则进行几何空间表示,并用启发式方法为每个交换机选取需要放置的规则。但是,OBS方法选取每个交换机内应放置的规则时,会造成一条规则划分放置到多个交换机内,带来规则膨胀问题。ONEBIT方法通过设置元数据位的方式,使规则在一条路径上进行放置,不会造成规则数目的增多。但是,它并没有考虑多路径情况,有些规则会被复制到多条路径上,造成了共享规则的重复放置,导致网络内额外的TCAM存储开销。
也就是说,良好的网络规则划分与配置需要满足两个关键特性:①面对网络规模和服务数量的增长,需要减少规则放置带来的规则膨胀,使其具备可扩展性。具体地,由于存在一些规则在多条路径上共享,这些共享规则复制到多个路径会造成规则膨胀,即规则划分放置后的规则总数超过规则划分放置前的规则总数,增大了TCAM存储规则的压力。因此,如何划分放置规则是减少TCAM存储开销的关键;②规则放置方法需要保证在规则划分放置前和规则划分放置后语义不变,即数据包在规则划分放置前后匹配到一致的规则、执行相同的动作,确保规则放置方法不改变规则的语义、数据包执行正确的动作。
基于此,本申请提出的数据包传输方法、传输配置方法、装置、设备及介质,其通过将总规则表划分成多个子规则表,并将子规则表置于各交换机中,由于各子规则表之间的网络规则均不重复,减少了不必要的规则存储开销,避免了网络规则的膨胀以及数据传输缺陷;在数据包传输时,首先获取待处理的目标数据包,并根据数据包信息以及基于子规则表和总规则表生成的当前交换机规则信息,得到查询信息,接着,根据查询信息查询标签表得到查询结果,当查询结果表征目标数据包未被处理时,根据查询结果,查询当前交换机的所述子规则表,得到规则匹配结果,也就是说,在减少了不必要规则存储开销并避免规则膨胀的同时,本申请能够通过设置在数据包中的数据包信息和当前交换机规则信息查询标签表和子规则表,得到目标数据包的规则匹配结果,以完成目标数据包的正确转发或执行动作处理,实现目标数据包的传输。
在一些实施例中,本申请实施例还可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
在一些实施例中,本申请实施例提供的数据包传输方法、传输配置方法,还可以与人工智能结合运用,以提高网络规则配置的智能化管理和优化,由此进一步提高网络规则的配置效率。例如,可以使用机器学习算法来自动识别和分类网络规则,提高了网络规则划分为共享规则和独享规则的准确率和效率,进一步地,机器学习算法还可以根据划分后的共享规则和独享规则形成多个子规则表,各交换机能够根据对应的子规则表进行目标数据包的正确转发或处理。可以理解的是,本申请实施例提供的数据包传输方法、传输配置方法在与人工智能结合并运用后,能够进一步提高网络规则的配置效率。
需要说明的是,在本申请的各个具体实施方式中,当涉及到需要根据交换机本身的配置信息或接收的数据包信息进行相关处理时,都会先获得所涉及的局域网范围内的相关人员的许可或者同意,例如,当需要在局域网C获取数据包信息时,均会先获得局域网C相关工作人员的许可或者同意。而且,对这些数据包信息的收集、使用和处理等,都会遵守相关法律法规和标准。此外,当本申请实施例需要获取该局域网的敏感信息时,如相关的用户名和密码等,会在明确获得相关工作人员的单独许可或者单独同意之后,再获取用于使本申请实施例能够正常运行的必要的数据包信息。
基于此,本申请实施例中的数据包传输方法可以通过如下实施例进行说明。
如图4所示,图4是本申请实施例提供的数据包传输方法的一个可选的流程图,图4中的方法可以包括但不限于包括步骤S101至步骤S104。
步骤S101,获取待处理的目标数据包,其中,目标数据包设置有数据包信息,数据包信息包括目标数据包的数据包处理状态,以及与目标数据包匹配的目标规则信息;
在一些实施例中,目标数据包能够在网络系统中传输,其中,网络系统包括控制器和多个交换机,交换机与控制器连接,交换机存储有子规则表。
在一些实施例中,交换机能够获取待处理的数据包作为目标数据包,其中,目标数据包中包括了用于与网络规则匹配的数据地址信息,例如,数据包A包括源IP地址数据和目的IP地址数据,源IP地址数据用于指示目标数据包的发送方,目的IP地址数据用于指示目标数据包的接收方,通过源IP地址数据和目的IP地址数据,网络设备可以将数据包从一个节点传送到另一个节点,实现网络通信。
在一些实施例中,可以为目标数据包设置的数据包信息。如图5所示,图5是本申请实施例提供的数据包传输方法的一个可选的数据包信息示意图,数据包信息包括了数据包处理状态和目标规则信息,数据包处理状态用于指示数据包是否被处理,若已处理,即已经执行了目标规则动作,则数据包处理状态为已处理状态,若未处理,即尚未执行目标规则动作,则数据包处理状态为未处理状态;目标规则信息则具体包括了数据包当前匹配到的目标规则对应的目标规则优先级、目标规则类型和目标规则动作相关信息。示例性地,如图5所示,数据包信息共包括四个相关的内容,具体为:数据包处理状态、目标规则优先级、目标规则类型和目标规则动作。
需要说明的是,目标数据包在转发至某一交换机时,会将在当前交换机中匹配到的最高优先级对应的网络规则作为目标规则。示例性地,当目标数据包转发至交换机A时,匹配到的网络规则为规则A,此时将规则A作为目标数据包的目标规则,并将规则A的优先级、规则类型和规则动作信息作为目标规则优先级、目标规则类型和目标规则动作存储至数据包信息的目标规则信息中;若当目标数据包转发至交换机B时,匹配到了一条优先级比规则A更高的规则B,此时,将把规则B作为目标规则,并根据规则B更新数据包信息。
在一些实施例中,数据包信息存储在寄存器中,并且,目标规则优先级占用log2n个bits,目标规则动作占用log2m个bits,数据包处理状态和目标规则类型均占用一个bit,其中,n表示总规则表中网络规则的总数量,m表示总规则表中各网络规则对应执行动作的类型数量。
示例性地,网络规则总数为8,目标规则C的有优先级为5,执行动作为c,则用0101表示目标规则优先级,用10表示目标规则动作(假设执行动作的类型数量共有4种),由于数据包信息中存储的是目标数据包在不断地转发中“暂时”匹配到的最大优先级对应的规则,而并不需要存储匹配到的所有规则,进一步减轻了寄存器的存储压力,并且,数据包信息还为之后目标数据包的正确转发和处理提供了依据。
步骤S102,根据数据包信息以及基于子规则表和总规则表生成的当前交换机规则信息,得到查询信息,其中,子规则表包含当前交换机对应的网络规则,子规则表为控制器根据总规则表划分得到的;
在一些实施例中,根据总规则表划分得到的多个子规则表之间包含的网络规则并不重复,其中,子规则表包括划分得到的网络规则以及网络规则对应的执行动作,即匹配部分和执行部分,并且,匹配部分存放在TCAM中,而执行部分存放在静态随机存取存储器(Static Random-Access Memory,SRAM)中。可以理解的是,相较于划分后的多个规则表中包含有同样的网络规则造成的规则膨胀,本申请实施例划分得到的子规则表由于各子规则表中不存在重复的规则,避免了规则的膨胀,也因此减少了TCAM的存储开销。
在一些实施例中,如图6所示,图6是本申请实施例提供的数据包传输方法的一个可选的当前交换机规则信息示意图,当前交换机规则信息具体包括:最大优先级、后续共享信息、后续共享优先级、后续独享信息、后续独享优先级。其中,最大优先级通过子规则表得到,其表示的是子规则表中所存储的各网络规则中最大优先级规则的最大优先级;后续共享信息、后续独享信息以及后续共享信息、后续独享优先级可以根据总规则表得到,后续共享信息或后续独享信息表示在当前交换机之后的交换机中是否包含有共享规则或独享规则,若有,后续共享优先级或后续独享优先级则记录该条共享规则或独享规则对应的优先级。
在一些实施例中,当前交换机规则信息均存放在寄存器中,并且,最大优先级、后续共享优先级、后续独享优先级均占用log2n个bits,其中,n表示总规则表中网络规则的总数量,后续共享信息和后续独享信息均占用一个bit。在子规则表中仅包括当前交换机对应的网络规则,且各子规则表之间的网络规则并不重复的情况下,当前交换机规则信息并不会重复记录多条规则相关的信息,进一步减轻了寄存器的存储压力。
在一些实施例中,根据数据包信息和当前交换机规则信息,可以得到查询信息,查询信息能够作为查询标签表的依据,得到查询结果,并依据查询结果对目标数据包进行后续处理。
步骤S103,根据查询信息查询标签表得到查询结果;
在一些实施例中,如图7所示,图7是本申请实施例提供的一个可选的标签表示意图,根据上述步骤S102中生成的查询信息,可以查标签表得到查询结果。
在一些实施例中,子规则表和标签表的匹配部分存放于TCAM中,动作部分存放于静态随机存取存储器中。
步骤S104,当查询结果表征数据包处理状态为未处理状态时,根据查询结果,查询当前交换机的子规则表,得到规则匹配结果,并根据规则匹配结果传输目标数据包;其中,规则匹配结果包括:转发指令、执行指令或匹配指令;执行指令用于指示根据目标规则信息执行处理动作,转发指令用于指示将目标数据包转发至下一个交换机;匹配指令用于指示根据子规则表得到目标数据包的查询规则,并在当前交换机上执行查询规则或执行转发指令。
在一些实施例中,当查询结果表征目标数据包未被处理时,可以根据查询结果,查询当前交换机的子规则表,得到规则匹配结果,其中,规则匹配结果包括了三种情况:转发、执行或匹配,并可以根据这三种情况对应生成三种不同的指令,来指示该目标数据包的下一步操作。
如图8所示,图8是图4步骤S101之前的一个实现流程图,在一些实施例中,步骤S101之前还可以包括步骤S201至步骤S203:
步骤S201,接收控制器发送的子规则表,并解析子规则表得到至少一条网络规则,其中,子规则表是总规则表的一个子表;
在一些实施例中,控制器为SDN控制器,SDN控制器可以获取网络系统中的全局信息,并将边缘交换机中包含有完整网络规则的总规则表划分为多个语义不变、顺序无关的子规则表,这里的顺序无关指的是各子规则表包括的网络规则存在优先级之分,但多个子规则表之间不存在优先级之分;接着,再将多个子规则表放置到该交换机所在路径的其他交换机上,从而减少边缘交换机的规则存储压力。
在一些实施例中,交换机存在规则放置数量限制,SDN控制器能够以该数量限制为约束条件中的一项进行子规则表的划分。
步骤S202,解析网络规则,得到网络规则的规则类型和优先级顺序;
在一些实施例中,交换机接收到子规则表后,能够解析出其中包括的具体网络规则,并得到该网络规则对应的规则类型和优先级顺序。
在一些实施例中,控制器可以对网络规则中具体包含的数据内容进行遍历,示例性地,可以根据预先设定的数据长度或数据格式确定网络规则的规则类型和优先级顺序,由此完成网络规则的解析。
步骤S203,当规则类型为共享规则时,确定网络规则的优先级顺序为共享优先级顺序,当规则类型为独享规则时,确定网络规则的优先级顺序为独享优先级顺序。
在一些实施例中,规则类型用于指示网络规则为共享规则或是独享规则,由此确定对应的优先级顺序为共享优先级顺序或是独享优先级顺序。示例性地,若规则C时共享规则,则规则C对应的优先级顺序为共享优先级顺序,若规则C是独享规则,则规则C对应的优先级顺序为独享优先级顺序。
如图9所示,图9是图4步骤S102的一个实现流程图,在一些实施例中,步骤S102可以包括步骤S301至步骤S304:
步骤S301,根据目标规则优先级和最大优先级得到第一查询数据,其中,第一查询数据包括第一比较字段和目标规则类型,第一比较字段用于表征最大优先级和目标规则优先级的比较结果,最大优先级和目标规则优先级为一个单位长度,第一比较字段和目标规则类型均为一个比特长度;
在一些实施例中,通过比较数据包信息中的目标规则优先级与当前交换机信息中的最大优先级,能够得到第一比较字段,其中,目标规则优先级和最大优先级均占用log2n个bits,其中,n表示总规则表中网络规则的总数量,log2n个bits即为一个单位长度,但第一比较字段与目标规则类型仅占用1bit(一个比特长度)。
步骤S302,根据目标规则优先级和后续共享优先级得到第二查询数据,其中,第二查询数据包括第二比较字段和后续共享信息,第二比较字段用于表征目标规则优先级和后续共享优先级的比较结果,后续共享优先级为一个单位长度,第二比较字段和后续共享信息均为一个比特长度;
在一些实施例中,通过比较数据包信息中的目标规则优先级与当前交换机信息中的后续共享优先级,能够得到第二比较字段,其中,目标规则优先级和后续共享优先级均占用log2n个bits,但第二比较字段与后续共享信息仅占用1bit。
步骤S303,根据目标规则优先级和后续独享优先级得到第三查询数据,其中,第三查询数据包括第三比较字段和后续独享信息,第三比较字段用于表征目标规则优先级和后续独享优先级的比较结果,后续独享优先级为一个单位长度,第三比较字段和后续独享信息均为一个比特长度;
在一些实施例中,通过比较数据包信息中的目标规则优先级与当前交换机信息中的后续独享优先级,能够得到第三比较字段,其中,目标规则优先级和后续独享优先级均占用log2n个bits,但第三比较字段与后续独享信息仅占用1bit。
步骤S304,根据第一查询数据、第二查询数据和第三查询数据,得到查询信息。
在一些实施例中,查询信息包括第一查询数据、第二查询数据和第三查询数据,查询信息用于与预先设定好的标签表对比,得到查询结果。
示例性地,如图10、图11所示,图10是本申请实施例提供的数据包传输方法的另一个可选的数据包信息示意图,图11是本申请实施例提供的数据包传输方法的另一个可选的当前交换机规则信息示意图,数据包信息包括:数据包处理状态,以及目标规则的目标规则优先级、目标规则类型和目标规则动作;当前交换机规则信息包括:最大优先级、后续共享信息、后续共享优先级、后续独享信息、后续独享优先级,其中,最大优先级为子规则表中最大优先级网络规则对应的优先级。
示例性地,当目标数据包A转发至交换机A时,根据数据包信息和当前交换机规则信息得到的查询信息图12所示,首先,目标数据包A并未执行规则动作,因此数据包处理状态仍为0(未处理状态),由于0010>0001,因此第一比较字符为>,为便于通信操作,通常用数值1代替,表示目标数据包A对应数据包信息中的目标规则优先级高于当前交换机中子规则表对应的所有网络规则的优先级,同时,查询信息中的目标规则类型为数据包信息中的目标规则类型,由此,得到第一查询数据;之后,为了知道当前交换机A与后续交换机中网络规则的规则优先级关系,需要比较目标规则优先级和后续独享优先级或后续共享优先级,在本例中,存在后续独享规则且0010<0100,由此,得到第二查询数据和第三查询数据。根据数据包处理状态、第一查询数据、第二查询数据和第三查询数据,得到查询信息。
需要说明的是,图1、图7、图12和图24中的“”为通配符,其表示能够与任意字符匹配。
需要说明的是,上述示例中查询信息中包括的七个字段均只占用一个字符长度,减少了占用的寄存器存储空间。
如图13所示,图13是图4步骤S104的一个实现流程图,在一些实施例中,步骤S104可以包括步骤S401至步骤S404:
步骤S401,根据子规则表获取当前交换机的最大优先级规则以及最大优先级规则的最大优先级;
在一些实施例中,最大优先级仅针对当前交换机,即需要根据当前交换机的子规则表中包括的网络规则来确定最大优先级。
示例性地,某一当前交换机对应的子规则表中包括的网络规则为共享规则D和共享规则E,并且,共享规则D的优先级为0010、共享规则E的优先级为0001,则确定当前交换机的最大优先级规则为共享规则D,最大优先级为0010。
步骤S402,根据转发表确定目标数据包的转发路径,根据转发路径以及交换机路径确定当前交换机的后续交换机,并确定后续交换机对应的子规则表中各网络规则的优先级信息;
在一些实施例中,每一交换机对应至少一条交换机路径,并且,交换机还设置有转发表,转发表能够用于确定目标数据包的转发路径。
在一些实施例中,某些交换机会对应多条路径,如图20中,交换机S0对应路径1和路径2两条路径,交换机S0在路径1和路径2之后的交换机相对于交换机S0来说都是后续的交换机,因此,需要结合目标数据包的转发路径来共同确定当前交换机的后续交换机。示例性地,当某一目标数据包转发至交换机S0时,确定下一转发路径为交换机S2,并根据交换机S0、S2确定交换机路径为路径1,由此确定该目标数据包的后续交换机。
在一些实施例中,优先级信息包括后续交换机中相关的独享优先级和/或共享优先级信息。
步骤S403,当目标规则优先级小于最大优先级时,查询子规则表,得到查询规则,并获取查询规则的查询规则类型和查询规则优先级,根据查询规则类型、查询规则优先级和优先级信息生成执行指令或转发指令;
在一些实施例中,若目标数据包中携带的目标规则的优先级,即目标规则优先级小于最大优先级,表示当前交换机中存在比目标数据包携带的目标规则优先级还要高的网络规则,此时需要查当前交换机对应子规则表,得到与目标数据包匹配的查询规则。
需要说明的是,匹配到的查询规则可能不止一条,由于子规则表中的各网络规则有其对应的优先级,因此,目标数据包在匹配时,即使有多条查询规则,也仅匹配优先级最高的网络规则。
步骤S404,当目标规则优先级大于最大优先级时,根据目标规则类型、目标规则优先级和优先级信息生成执行指令或转发指令。
在一些实施例中,若目标规则优先级大于最大优先级,表示当前交换机中不存在比目标数据包携带的目标规则优先级还要高的网络规则,由于各网络规则在划分以及配置时,已经是按照优先级顺序排列了,因此,不需要查当前交换机对应的子规则表,只需根据目标规则优先级和优先级信息生成执行指令或转发指令,以完成目标数据包的执行或转发操作。
如图14所示,图14是图13步骤S403的一个实现流程图,在一些实施例中,步骤S403可以包括步骤S501至步骤S503:
步骤S501,根据优先级信息判断查询规则的第一优先级位置;
在一些实施例中,第一优先级位置指的是当前目标数据包匹配到的查询规则在当前转发路径中的优先级顺序情况,即后续交换机中的网络规则里是否有比该查询规则优先级更高的,以此来判断该查询规则的优先级次序。
步骤S502,若第一优先级位置表征查询规则在优先级信息中优先级最高,则生成执行指令,否则将目标数据包的目标规则更新为查询规则,并生成转发指令;
在一些实施例中,如果该查询规则在优先级信息中优先级最高,表示之前的转发过程中,目标数据包当前匹配到的查询规则已经是最高优先级了,并且后续没有更高优先级的网络规则了,则生成执行指令,用来指示对目标数据包执行当前的执行动作。
在一些实施例中,如果该查询规则在优先级信息中优先级并不是最高的,表示后续仍有优先级更高的网络规则需要匹配,此时,将目标数据包携带的目标规则更新为查询规则,并生成转发指令,以继续转发处理该目标数据包。
步骤S503,当依据执行指令完成执行操作时,将数据包处理状态更新为已处理状态。
在一些实施例中,若交换机已经根据执行指令执行了执行动作,则将数据包处理状态更新为已处理状态,示例性地,目标数据包B的原数据包处理状态为0(未处理状态),当目标数据包B匹配到转发路径上的最高优先级对应的网络规则后,更新该数据包处理状态为1(已处理状态)。
在一些实施例中,当交换机接收到的目标数据包的数据包处理状态为已处理状态时,直接根据转发表转发该目标数据包,直至该目标数据包到达对应转发路径的最后一个交换机。
如图15所示,图15是图14步骤S502的一个实现流程图,在一些实施例中,步骤S502可以包括步骤S601至步骤S602:
步骤S601,根据查询规则,得到更新规则优先级、更新规则类型和更新规则动作;
在一些实施例中,当目标规则优先级小于最大优先级时,查询子规则表,并得到查询规则,根据查询规则的规则优先级、规则类型和规则动作可以得到更新规则优先级、更新规则类型和更新规则动作。
步骤S602,根据更新规则优先级、更新规则类型和更新规则动作,更新目标规则信息。
在一些实施例中,根据查询规则得到的更新规则优先级、更新规则类型和更新规则动作,可以将目标规则优先级、目标规则类型和目标规则动作更新为更新规则优先级、更新规则类型和更新规则动作,如此,能够保证目标数据包在传输过程中始终存储的是匹配到的最大优先级对应网络规则的相关信息。
如图16所示,图16是图14步骤S501的一个实现流程图,在一些实施例中,步骤S501可以包括步骤S701至步骤S703:
步骤S701,若查询规则为独享规则,得到独享规则的独享优先级;
在一些实施例中,如果查询规则是独享规则,得到的优先级应为独享优先级。
步骤S702,根据转发表确定目标数据包的转发路径,根据转发路径以及交换机路径确定当前交换机的后续交换机,并得到后续交换机的后续共享规则,以及后续共享规则的后续共享优先级;
在一些实施例中,由于独享规则在配置时已经按照优先级顺序排列了,因此,还需要根据后续共享交换机中的共享规则,来确定后续共享规则的后续共享优先级是否高于当前的独享规则的独享优先级。
在一些实施例中,可以根据转发表表征的转发路径,以及交换机路径来共同确定当前交换机的后续交换机,并判断后续交换机中是否存在后续共享规则,以及后续共享规则的后续共享优先级是否高于当前匹配到的查询规则的独享优先级。
步骤S703,根据独享优先级和后续共享优先级,得到查询规则的第一优先级位置。
在一些实施例中,若后续有比当前独享优先级更高的后续共享优先级,那么得到查询规则的第一优先位置为(<),表征当前独享优先级小于后续共享优先级;若后续没有比当前独享优先级更高的后续共享优先级,那么得到查询规则的第一优先位置为(>),表征当前独享优先级大于后续共享优先级。
如图17所示,图17是图14步骤S501的另一个实现流程图,在一些实施例中,步骤S501还可以包括步骤S801至步骤S803:
步骤S801,若查询规则为共享规则,得到共享规则的共享优先级;
在一些实施例中,如果查询规则是共享规则,得到的优先级应为共享优先级。
步骤S802,根据转发表确定目标数据包的转发路径,根据转发路径以及交换机路径确定当前交换机的后续交换机,并得到后续交换机的后续独享规则,以及后续独享规则的后续独享优先级;
在一些实施例中,由于共享规则在配置时已经按照优先级顺序排列了,因此,还需要根据后续独享交换机中的独享规则,来确定后续独享规则的后续独享优先级是否高于当前的共享规则的共享优先级。
在一些实施例中,可以根据转发表表征的转发路径,以及交换机路径来共同确定当前交换机的后续交换机,并判断后续交换机中是否存在后续独享规则,以及后续独享规则的后续独享优先级是否高于当前匹配到的查询规则的共享优先级。
步骤S803,根据共享优先级和后续独享优先级,得到查询规则的第一优先级位置。
在一些实施例中,若后续有比当前共享优先级更高的后续独享优先级,那么得到查询规则的第一优先位置为(<),表征当前共享优先级小于后续独享优先级;若后续没有比当前共享优先级更高的后续独享优先级,那么得到查询规则的第一优先位置为(>),表征当前共享优先级大于后续独享优先级。
如图18所示,图18是图13步骤S404的一个实现流程图,在一些实施例中,步骤S404还可以包括步骤S901至步骤S902:
步骤S901,若后续独享优先级或后续共享优先级大于目标规则优先级,则生成转发指令,转发指令用于根据转发路径将目标数据包转发至下一交换机;
在一些实施例中,若后续的交换机中存在后续独享优先级或后续共享优先级大于目标规则优先级,说明后续交换机中存在需要匹配的后续独享优先级或后续共享优先级,此时,生成转发指令,并根据该转发指令转发目标数据包。
步骤S902,若后续独享优先级或后续共享优先级小于目标规则优先级,则生成执行指令,执行指令用于执行目标规则信息对应的目标规则动作。
在一些实施例中,若后续交换机中不存在后续独享优先级或后续共享优先级大于目标规则优先级,说明后续交换机中不存在需要匹配的后续独享优先级或后续共享优先级,目标数据包当前匹配到的目标规则对应的优先级已经是最高的了,此时,需根据目标规则优先级和优先级信息生成执行指令或转发指令,以完成目标数据包的执行或转发操作。
在一些实施例中,可以接着根据查询信息查询标签表,若后续独享优先级或后续共享优先级大于目标规则优先级,则生成转发指令并转发目标数据包;若后续独享优先级或后续共享优先级小于目标规则优先级,则生成执行指令并执行数据包信息中的规则动作。
下面描述本申请实施例应用于控制器的传输配置方法。
如图19所示,图19是本申请实施例提供的传输配置方法的一个可选的流程示意图,图19中的方法可以包括但不限于包括步骤S1001至步骤S1005。
步骤S1001,获取预设的总规则表,其中,总规则表包括多个具有优先级顺序的网络规则,网络规则包括路径属性和规则类型,规则类型用于表征网络规则为共享规则或独享规则;
在一些实施例中,控制器能够获取预设的总规则表,其中,总规则表按照优先级顺序排列。
步骤S1002,根据路径属性,确定网络规则在网络系统中的路径;
在一些实施例中,网络规则包括路径属性,路径属性用于确定网络规则在网络系统中属于哪一路径。示例性地,如图22所示,网络规则R2的路径属性为路径2,则表示R2需要放置到路径2的某一交换机中。
步骤S1003,根据规则类型,确定网络规则的优先级顺序为共享优先级顺序或独享优先级顺序;
在一些实施例中,在确定了网络规则的路径属性之后,需要确定网络规则的规则类型,并按照网络规则的规则类型将各网络规则划分为共享规则和独享规则。
在一些实施例中,可以按照网络拓扑对包含完整网络规则的总规则表进行划分与配置,划分与配置后的网络规则在各交换机中形成了对应的子规则表,其中,各交换机本身即设定了能够放置的网络规则数目。
示例性地,如图20所示,图20是本申请实施例提供的传输配置方法的一个可选路径示意图,其中,服务器H1分别到服务器H2和服务器H3的两条路径组成了一个网络拓扑,共有S0至S7共8个交换机,其中S0是边缘交换机,路径1由服务器H1到服务器H2的路径1上涉及5个交换机,路径2由服务器H1到服务器H3的路径2上同样涉及5个交换机,其中,S0和S5同时存在于路径1和路径2。
示例性地,对于路径1和路径2形成的网络拓扑,共有R0至R13共14条网络规则需要放置,如图21所示,图21是本申请实施例提供的传输配置方法的一个可选规则配置示意图,其中,R0到R13的规则优先级逐渐降低,并且{R1,R5,R8}是路径1和路径2的共享规则,{R0,R2,R4,R6,R7,R11}是路径1的独享规则,{R3,R9,R10,R12,R13}是路径2的独享规则。
在一些实施例中,预设的划分策略可以根据机器学习得到。
步骤S1004,根据共享优先级顺序或独享优先级顺序,将各网络规则沿着路径进行放置,并生成各交换机的子规则表,其中,子规则表是总规则表的一个子表;
在一些实施例中,首先将各共享规则按照共享优先级顺序,沿着对应的路径进行放置,其中,每一交换机放置的网络规则数量可以根据交换机自身预设得到,由此得到各交换机对应的子规则表,实际上,子规则表是总规则表的一个子表,并且,各子规则表之间的网络规则没有重复,也就是说,总规则表中网络规则在各子规则表中只出现一次,避免了网络规则重复造成的规则膨胀。
可以理解的是,由于各网络规则是分别按共享优先级顺序或独享优先级顺序沿着路径进行放置的,因此,不同规则类型的网络规则的优先级顺序可以按优先级顺序沿着路径的顺路径方向(即路径1中H1至H2方向)从高至低放置,或者,按优先级顺序沿着路径的逆路径方向(即路径1中H2至H1方向)从低至高放置。
在一些实施例中,在控制器配置完成各交换机的子规则表后,各交换机可以依照本申请实施例提供的数据包传输方法对获取到的目标数据包进行正确地转发或处理。
步骤S1005,将子规则表发送给对应的交换机,以使交换机根据子规则表解析得到共享规则和/或独享规则。
在一些实施例中,子规则表可以是由SDN控制器预先划分并生成,并将生成的子规则表发送给对应的交换机,各交换机在接收到对应的子规则表后可以对其进行解析,得到该子规则表包括的共享规则和/或独享规则。
在一些实施例中,交换机中可以仅包括共享规则、也可以只包括独享规则,或者可以同时包括共享和独享两种规则。
以下将以另一示例完整说明本申请实施例提供的传输配置方法。
在一些实施例中,如图23所示,图23是本申请实施例提供的传输配置方法的另一个可选的流程示意图,具体流程步骤为:
(1)根据边缘交换机中完整的总规则表,将规则划分为共享规则和独享规则;
(2)按照优先级顺序沿着对应路径将共享规则放置于交换机中;
(3)按照优先级顺序沿着对应路径将独享规则放置于交换机中;
(4)在交换机部署当前交换机规则信息,记录当前交换机内存放的规则的优先级和类型,以及后续交换机内的规则类型和优先级等信息;
(5)在交换机部署标签表,用于判断数据包匹配规则的优先级;
(6)输出所有交换机的子规则表。
示例性地,以图20、22的网络拓扑以及图21中各交换机配置的网络规则进行示例说明,其目的是更深入地了解本申请提供的数据包传输方法和传输配置方法,具体步骤如下:
步骤1:输入一个目标数据包,并为目标数据包设置数据包信息;
步骤2:根据数据包信息和当前交换机信息,形成查询信息,根据该查询信息,查询标签表;
一般来说,有三种不同情况的查询结果:
(1)当目标数据包已经被处理,则直接转发数据包到下个交换机;
(2)当数据包未被处理,并且数据包规则优先级小于交换机内规则的最大优先级,则查询当前交换机内的子规则表。
(3)当数据包未被处理,并且数据包规则优先级大于交换机内规则的最大优先级,则需要根据当前数据包规则和后续交换机内的规则的优先级和类型,判断后续交换机内是否有比当前数据包内规则优先级还高的规则。若后续交换机内没有更高优先级的规则,则执行数据包内规则的动作,并将数据包信息中的数据包处理状态更新为1;若后续交换机内还有优先级更高的规则,则将数据包转发到下个交换机进行处理。
其中,若为第(2)种情况,则需要在查询子规则表并匹配到查询规则后,更新目标数据包的数据包信息,接着,继续查询标签表,判断在当前交换机是否执行所匹配到的规则的动作。首先,判断当前数据包标签上的规则类型,如果是独享规则,由于独享规则间的优先级顺序不受影响,需要判断后续交换机是否还有优先级更高的共享规则,如果后面有优先级更高的共享规则,则需要将数据包转发给后续交换机处理;如果是共享规则,则只需要判断后续交换机是否还有优先级更高的独享规则,如果有,则将数据包转发给后续交换机处理,反之则执行当前所匹配规则的动作。
步骤3:重复执行以上步骤2,直至目标数据包达到所在转发路径的最后一个交换机,输出目标数据包。
示例性地,以图12中的查询信息进行查询标签表操作,最终得到的动作结果是“转发数据包”。
在一些实施例中,还可以将根据标签表生成子标签表,如图24所示,图24是本申请实施例提供的一个可选的子标签表示意图,当目标数据包得到第二种查询情况时,在更新数据包信息后,可以查子标签表,可以理解的是,子标签表包含的查询字段更少,于算力调用来说,减少了不必要的算力资源浪费,同时,提高了目标数据包的查询和匹配速度。
需要说明的是,与目前相关的规则放置方法相比,本申请实施例提供的数据包传输方法、传输配置方法不仅减少了配置在各交换机中的规则总数,而且避免了规则膨胀。经针对分类基准(Classbench)规则集的实验结果表明:在规则总数方面,本申请提供的数据包传输方法中所配置的规则总数比OBS方法减少了1.3-6.0倍,比ONEBIT方法减少了1.6-4.5倍。
示例性地,规则膨胀率反映了将规则划分配置到网络内多个交换机上的规则总数相比于在边缘交换机放置时规则总数的规则膨胀情况,具体计算公式如下式(1)所示:
规则膨胀率=(规则放置后规则总数−原规则总数)/原规则总数(1)
可以理解的是,在规则膨胀率方面,本申请实施例提供的数据包传输方法、传输配置方法实现了不同规则集下的规则膨胀率为0,不需要产生额外的规则,减少了TCAM的存储开销,而OBS方法和ONEBIT方法都存在规则膨胀的问题。
并且,由于各网络规则仅需配置一次,因此,当新增网络规则时,本申请实施例提供的数据包传输方法、传输配置方法具备高可扩展性。
另外,实施例提供的数据包传输方法、传输配置方法中,各网络规则仅在其中一个子规则表中存储一次,避免了重复存储网络规则导致的数据包在传输过程中出现如规则冲突、优先级混乱等数据传输缺陷。
如图25所示,图25是本申请实施例提供的数据包传输方法的又一个可选的流程示意图,当输入一个目标数据包进入数据包传输装置后,根据生成的查询信息,首先查询标签表,若该目标数据包已经被处理,则根据子标签表执行匹配动作,直至目标数据包转发至所在路径的最后一个交换机;若该目标是数据包没有被处理,查询子规则表,并根据匹配到的查询规则更新数据包信息,接着查子标签表,以判断是否立即执行匹配到的查询规则中的执行动作。
如图26所示,图26是本申请实施例提供的数据包传输装置的功能模块示意图,本申请实施例还提供一种数据包传输装置,可以应用于网络系统,并实现上述数据包传输方法,其中,网络系统包括控制器和多个交换机,交换机与控制器连接,交换机存储有子规则表,数据包传输装置包括:
获取模块1101,用于获取待处理的目标数据包,其中,目标数据包设置有数据包信息,数据包信息包括目标数据包的数据包处理状态,以及与目标数据包匹配的目标规则信息;
查询信息模块1102,用于根据数据包信息以及基于子规则表和总规则表生成的当前交换机规则信息,得到查询信息,其中,子规则表包含当前交换机对应的网络规则,子规则表为控制器根据总规则表划分得到的;
查询结果模块1103,用于根据查询信息查询标签表得到查询结果;
匹配模块1104,用于当查询结果表征数据包处理状态为未处理状态时,根据查询结果,查询当前交换机的子规则表,得到规则匹配结果,并根据规则匹配结果传输目标数据包;其中,规则匹配结果包括:转发指令、执行指令或匹配指令;执行指令用于指示根据目标规则信息执行处理动作,转发指令用于指示将目标数据包转发至下一个交换机;匹配指令用于指示根据子规则表得到目标数据包的查询规则,并在当前交换机上执行查询规则或执行转发指令。
在一些实施例中,目标数据包能够在网络系统中传输,其中,网络系统包括控制器和多个交换机,交换机与控制器连接,交换机存储有子规则表。
在一些实施例中,交换机能够获取待处理的数据包作为目标数据包,其中,目标数据包中包括了用于与网络规则匹配的数据地址信息,例如,数据包A包括源IP地址数据和目的IP地址数据,源IP地址数据用于指示目标数据包的发送方,目的IP地址数据用于指示目标数据包的接收方,通过源IP地址数据和目的IP地址数据,网络设备可以将数据包从一个节点传送到另一个节点,实现网络通信。
在一些实施例中,数据包信息存储在寄存器中,并且,目标规则优先级占用log2n个bits,目标规则动作占用log2m个bits,数据包处理状态和目标规则类型均占用一个bit,其中,n表示总规则表中网络规则的总数量,m表示总规则表中各网络规则对应执行动作的类型数量。
示例性地,网络规则总数为8,目标规则C的有优先级为5,执行动作为c,则用0101表示目标规则优先级,用10表示目标规则动作(假设执行动作的类型数量共有4种),由于数据包信息中存储的是目标数据包在不断地转发中“暂时”匹配到的最大优先级对应的规则,而并不需要存储匹配到的所有规则,进一步减轻了寄存器的存储压力,并且,数据包信息还为之后目标数据包的正确转发和处理提供了依据。
在一些实施例中,根据总规则表划分得到的多个子规则表之间包含的网络规则并不重复,其中,子规则表包括划分得到的网络规则以及网络规则对应的执行动作,即匹配部分和执行部分,并且,匹配部分存放在TCAM中,而执行部分存放在静态随机存取存储器中。可以理解的是,相较于划分后的多个规则表中包含有同样的网络规则造成的规则膨胀,本申请实施例划分得到的子规则表由于各子规则表中不存在重复的规则,避免了规则的膨胀,也因此减少了TCAM的存储开销。
在一些实施例中,当前交换机规则信息均存放在寄存器中,并且,最大优先级、后续共享优先级、后续独享优先级均占用log2n个bits,其中,n表示总规则表中网络规则的总数量,后续共享信息和后续独享信息均占用一个bit。在子规则表中仅包括当前交换机对应的网络规则,且各子规则表之间的网络规则并不重复的情况下,当前交换机规则信息并不会重复记录多条规则相关的信息,进一步减轻了寄存器的存储压力。
在一些实施例中,根据数据包信息和当前交换机规则信息,可以得到查询信息,查询信息能够作为查询标签表的依据,得到查询结果,并依据查询结果对目标数据包进行后续处理。
在一些实施例中,根据生成的查询信息,可以查标签表得到查询结果。
在一些实施例中,子规则表和标签表的匹配部分存放于TCAM中,动作部分存放于静态随机存取存储器中。
在一些实施例中,当查询结果表征目标数据包未被处理时,可以根据查询结果,查询当前交换机的子规则表,得到规则匹配结果,其中,规则匹配结果包括了三种情况:转发、执行或匹配,并可以根据这三种情况对应生成三种不同的指令,来指示该目标数据包的下一步操作。
可以理解的是,本申请实施例通过将总规则表划分成多个子规则表,并将子规则表置于各交换机中,由于各子规则表之间的网络规则均不重复,减少了不必要的规则存储开销,避免了网络规则的膨胀以及数据传输缺陷;在数据包传输时,首先获取待处理的目标数据包,并根据数据包信息以及基于子规则表和总规则表生成的当前交换机规则信息,得到查询信息,接着,根据查询信息查询标签表得到查询结果,当查询结果表征目标数据包未被处理时,根据查询结果,查询当前交换机的所述子规则表,得到规则匹配结果,也就是说,在减少了不必要规则存储开销并避免规则膨胀的同时,本申请能够通过设置在数据包中的数据包信息和当前交换机规则信息进行查标签表和子规则表,得到目标数据包的规则匹配结果,以完成目标数据包的正确转发或执行动作处理,实现目标数据包的传输。
该数据包传输装置的具体实施方式与上述数据包传输方法的具体实施例基本相同,在此不再赘述。在满足本申请实施例要求的前提下,数据包传输装置还可以设置其他功能模块,以实现上述实施例中的数据包传输方法或传输配置方法。
本申请实施例还提供了一种电子设备,电子设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述数据包传输方法或传输配置方法。该电子设备可以为包括平板电脑、车载电脑等任意智能终端。
如图27所示,图27是本申请实施例提供的电子设备的硬件结构示意图,电子设备包括:
处理器1201,可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请实施例所提供的技术方案;
存储器1202,可以采用只读存储器(Read Only Memory,ROM)、静态存储设备、动态存储设备或者随机存取存储器(Random Access Memory,RAM)等形式实现。存储器1202可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1202中,并由处理器1201来调用执行本申请实施例的数据包传输方法或传输配置方法;
输入/输出接口1203,用于实现信息输入及输出;
通信接口1204,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信;
总线1205,在设备的各个组件(例如处理器1201、存储器1202、输入/输出接口1203和通信接口1204)之间传输信息;
其中处理器1201、存储器1202、输入/输出接口1203和通信接口1204通过总线1205实现彼此之间在设备内部的通信连接。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述数据包传输方法或传输配置方法。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本申请实施例描述的实施例是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本领域技术人员可以理解的是,图中示出的技术方案并不构成对本申请实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例的方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序的介质。
以上参照附图说明了本申请实施例的优选实施例,并非因此局限本申请实施例的权利范围。本领域技术人员不脱离本申请实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本申请实施例的权利范围之内。
Claims (13)
1.一种数据包传输方法,其特征在于,应用于网络系统,所述网络系统包括控制器和多个交换机,所述交换机与所述控制器连接,所述交换机存储有子规则表,所述方法包括:
获取待处理的目标数据包,其中,所述目标数据包设置有数据包信息,所述数据包信息包括所述目标数据包的数据包处理状态,以及与所述目标数据包匹配的目标规则信息;
根据所述数据包信息以及基于子规则表和总规则表生成的当前交换机规则信息,得到查询信息,其中,所述子规则表包含当前交换机对应的网络规则,所述子规则表为所述控制器根据所述总规则表划分得到的,各所述交换机对应的所述子规则表之间的所述网络规则均不重复;
根据所述查询信息查询标签表得到查询结果;
当查询结果表征所述数据包处理状态为未处理状态时,根据所述查询结果,查询当前交换机的所述子规则表,得到规则匹配结果,并根据所述规则匹配结果传输所述目标数据包;其中,所述规则匹配结果包括:转发指令、执行指令或匹配指令;所述执行指令用于指示根据所述目标规则信息执行处理动作,所述转发指令用于指示将所述目标数据包转发至下一个交换机;所述匹配指令用于指示根据所述子规则表得到所述目标数据包的查询规则,并在所述当前交换机上执行所述查询规则或执行所述转发指令。
2.根据权利要求1所述的数据包传输方法,其特征在于,所述网络规则包括规则类型和优先级顺序,所述规则类型用于表征所述网络规则为共享规则或独享规则;
所述获取待处理的目标数据包之前,还包括:
接收所述控制器发送的子规则表,并解析所述子规则表得到至少一条网络规则,其中,所述子规则表是所述总规则表的一个子表;
解析所述网络规则,得到所述网络规则的规则类型和优先级顺序;
当所述规则类型为共享规则时,确定所述网络规则的所述优先级顺序为共享优先级顺序,当所述规则类型为独享规则时,确定所述网络规则的所述优先级顺序为独享优先级顺序。
3.根据权利要求2所述的数据包传输方法,其特征在于,所述目标规则信息包括:目标规则优先级、目标规则类型和目标规则动作;所述当前交换机规则信息包括:最大优先级、后续共享信息、后续共享优先级、后续独享信息、后续独享优先级,其中,所述最大优先级为所述子规则表中最大优先级网络规则对应的优先级;
所述根据所述数据包信息以及基于子规则表和总规则表生成的当前交换机规则信息,得到查询信息,包括:
根据所述目标规则优先级和所述最大优先级得到第一查询数据,其中,所述第一查询数据包括第一比较字段和所述目标规则类型,所述第一比较字段用于表征所述最大优先级和所述目标规则优先级的比较结果,所述最大优先级和所述目标规则优先级为一个单位长度,所述第一比较字段和所述目标规则类型均为一个比特长度;
根据所述目标规则优先级和所述后续共享优先级得到第二查询数据,其中,所述第二查询数据包括第二比较字段和所述后续共享信息,所述第二比较字段用于表征所述目标规则优先级和所述后续共享优先级的比较结果,所述后续共享优先级为一个单位长度,所述第二比较字段和所述后续共享信息均为一个比特长度;
根据所述目标规则优先级和所述后续独享优先级得到第三查询数据,其中,所述第三查询数据包括第三比较字段和所述后续独享信息,所述第三比较字段用于表征所述目标规则优先级和所述后续独享优先级的比较结果,所述后续独享优先级为一个单位长度,所述第三比较字段和所述后续独享信息均为一个比特长度;
根据所述第一查询数据、所述第二查询数据和所述第三查询数据,得到查询信息。
4.根据权利要求3所述的数据包传输方法,其特征在于,每一所述交换机对应至少一条交换机路径,所述交换机还设置有转发表;
所述当查询结果表征所述数据包处理状态为未处理状态时,根据所述查询结果,查询当前交换机的所述子规则表,得到规则匹配结果,包括:
根据所述子规则表获取当前交换机的最大优先级规则以及所述最大优先级规则的最大优先级;
根据所述转发表确定所述目标数据包的转发路径,根据所述转发路径以及所述交换机路径确定当前交换机的后续交换机,并确定所述后续交换机对应的子规则表中各所述网络规则的优先级信息;
当所述目标规则优先级小于所述最大优先级时,查询所述子规则表,得到所述查询规则,并获取所述查询规则的查询规则类型和查询规则优先级,根据所述查询规则类型、所述查询规则优先级和所述优先级信息生成所述执行指令或所述转发指令;
当所述目标规则优先级大于所述最大优先级时,根据所述目标规则类型、所述目标规则优先级和所述优先级信息生成所述执行指令或所述转发指令。
5.根据权利要求4所述的数据包传输方法,其特征在于,所述根据所述查询规则类型、所述查询规则优先级和所述优先级信息生成所述执行指令或所述转发指令,包括:
根据所述优先级信息判断所述查询规则的第一优先级位置;
若所述第一优先级位置表征所述查询规则在所述优先级信息中优先级最高,则生成所述执行指令,否则将所述目标数据包的所述目标规则更新为所述查询规则,并生成所述转发指令;
当依据所述执行指令完成执行操作时,将所述数据包处理状态更新为已处理状态。
6.根据权利要求5所述的数据包传输方法,其特征在于,所述将所述目标数据包的所述目标规则更新为所述查询规则,包括:
根据所述查询规则,得到更新规则优先级、更新规则类型和更新规则动作;
根据所述更新规则优先级、更新规则类型和更新规则动作,更新所述目标规则信息。
7.根据权利要求5所述的数据包传输方法,其特征在于,所述根据所述优先级信息判断所述查询规则的第一优先级位置,包括:
若所述查询规则为独享规则,得到所述独享规则的独享优先级;
根据所述转发表确定所述目标数据包的转发路径,根据所述转发路径以及所述交换机路径确定当前交换机的后续交换机,并得到所述后续交换机的后续共享规则,以及所述后续共享规则的后续共享优先级;
根据所述独享优先级和所述后续共享优先级,得到所述查询规则的第一优先级位置。
8.根据权利要求7所述的数据包传输方法,其特征在于,所述根据所述优先级信息判断所述查询规则的第一优先级位置,还包括:
若所述查询规则为共享规则,得到所述共享规则的共享优先级;
根据所述转发表确定所述目标数据包的转发路径,根据所述转发路径以及所述交换机路径确定当前交换机的后续交换机,并得到所述后续交换机的后续独享规则,以及所述后续独享规则的后续独享优先级;
根据所述共享优先级和所述后续独享优先级,得到所述查询规则的第一优先级位置。
9.根据权利要求8所述的数据包传输方法,其特征在于,所述根据所述目标规则类型、所述目标规则优先级和所述优先级信息生成所述执行指令或所述转发指令,包括:
若所述后续独享优先级或所述后续共享优先级大于所述目标规则优先级,则生成转发指令,所述转发指令用于根据所述转发路径将所述目标数据包转发至下一交换机;
若所述后续独享优先级或所述后续共享优先级小于所述目标规则优先级,则生成执行指令,所述执行指令用于执行所述目标规则信息对应的目标规则动作。
10.一种传输配置方法,其特征在于,应用于控制器,网络系统包括所述控制器和多个交换机,所述控制器与所述交换机连接,所述方法包括:
获取预设的总规则表,其中,所述总规则表包括多个具有优先级顺序的网络规则,所述网络规则包括路径属性和规则类型,所述规则类型用于表征所述网络规则为共享规则或独享规则;
根据所述路径属性,确定所述网络规则在所述网络系统中的路径;
根据所述规则类型,确定所述网络规则的所述优先级顺序为共享优先级顺序或独享优先级顺序;
根据所述共享优先级顺序或所述独享优先级顺序,将各所述网络规则沿着所述路径进行放置,并生成各所述交换机的子规则表,其中,所述子规则表是所述总规则表的一个子表,任一所述子规则表中的所述网络规则与其他所述子规则表中的所述网络规则均不重复;
将所述子规则表发送给对应的交换机,以使所述交换机根据所述子规则表解析得到共享规则和/或独享规则。
11.一种数据包传输装置,其特征在于,应用于网络系统,所述网络系统包括控制器和多个交换机,所述交换机与所述控制器连接,所述交换机存储有子规则表,所述装置包括:
获取模块,用于获取待处理的目标数据包,其中,所述目标数据包设置有数据包信息,所述数据包信息包括所述目标数据包的数据包处理状态,以及与所述目标数据包匹配的目标规则信息;
查询信息模块,用于根据所述数据包信息以及基于子规则表和总规则表生成的当前交换机规则信息,得到查询信息,其中,所述子规则表包含当前交换机对应的网络规则,所述子规则表为所述控制器根据所述总规则表划分得到的,各所述交换机对应的所述子规则表之间的所述网络规则均不重复;
查询结果模块,用于根据所述查询信息查询标签表得到查询结果;
匹配模块,用于当查询结果表征所述数据包处理状态为未处理状态时,根据所述查询结果,查询当前交换机的所述子规则表,得到规则匹配结果,并根据所述规则匹配结果传输所述目标数据包;其中,所述规则匹配结果包括:转发指令、执行指令或匹配指令;所述执行指令用于指示根据所述目标规则信息执行处理动作,所述转发指令用于指示将所述目标数据包转发至下一个交换机;所述匹配指令用于指示根据所述子规则表得到所述目标数据包的查询规则,并在所述当前交换机上执行所述查询规则或执行所述转发指令。
12.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1至9任一项所述的数据包传输方法或权利要求10所述的传输配置方法。
13.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9任一项所述的数据包传输方法或权利要求10所述的传输配置方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311200593.1A CN116962321B (zh) | 2023-09-18 | 2023-09-18 | 数据包传输方法、传输配置方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311200593.1A CN116962321B (zh) | 2023-09-18 | 2023-09-18 | 数据包传输方法、传输配置方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116962321A CN116962321A (zh) | 2023-10-27 |
CN116962321B true CN116962321B (zh) | 2024-01-09 |
Family
ID=88462325
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311200593.1A Active CN116962321B (zh) | 2023-09-18 | 2023-09-18 | 数据包传输方法、传输配置方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116962321B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104579977A (zh) * | 2014-12-23 | 2015-04-29 | 广东顺德中山大学卡内基梅隆大学国际联合研究院 | 一种sdn控制器的带约束多路径路由方法及系统 |
CN105553880A (zh) * | 2015-12-24 | 2016-05-04 | 北京邮电大学 | 一种软件定义网络中的数据处理方法及装置 |
WO2016090552A1 (zh) * | 2014-12-09 | 2016-06-16 | 华为技术有限公司 | 一种自适应流表的处理方法及装置 |
WO2017070965A1 (zh) * | 2015-10-31 | 2017-05-04 | 华为技术有限公司 | 一种基于软件定义网络的数据处理方法及相关设备 |
CN108462594A (zh) * | 2017-02-21 | 2018-08-28 | 阿里巴巴集团控股有限公司 | 虚拟专有网络及规则表生成方法、装置及路由方法 |
CN114745327A (zh) * | 2022-06-10 | 2022-07-12 | 鹏城实验室 | 业务数据转发方法、装置、设备及存储介质 |
CN114884858A (zh) * | 2022-01-28 | 2022-08-09 | 珠海星云智联科技有限公司 | 流表处理的方法和相关装置、电子设备、介质和程序产品 |
CN115134300A (zh) * | 2022-06-07 | 2022-09-30 | 复旦大学 | 面向软件定义网络的交换设备规则缓存管理方法 |
CN116232894A (zh) * | 2022-11-30 | 2023-06-06 | 北京东土军悦科技有限公司 | 一种报文处理方法、报文处理装置及存储介质 |
-
2023
- 2023-09-18 CN CN202311200593.1A patent/CN116962321B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016090552A1 (zh) * | 2014-12-09 | 2016-06-16 | 华为技术有限公司 | 一种自适应流表的处理方法及装置 |
CN104579977A (zh) * | 2014-12-23 | 2015-04-29 | 广东顺德中山大学卡内基梅隆大学国际联合研究院 | 一种sdn控制器的带约束多路径路由方法及系统 |
WO2017070965A1 (zh) * | 2015-10-31 | 2017-05-04 | 华为技术有限公司 | 一种基于软件定义网络的数据处理方法及相关设备 |
CN105553880A (zh) * | 2015-12-24 | 2016-05-04 | 北京邮电大学 | 一种软件定义网络中的数据处理方法及装置 |
CN108462594A (zh) * | 2017-02-21 | 2018-08-28 | 阿里巴巴集团控股有限公司 | 虚拟专有网络及规则表生成方法、装置及路由方法 |
CN114884858A (zh) * | 2022-01-28 | 2022-08-09 | 珠海星云智联科技有限公司 | 流表处理的方法和相关装置、电子设备、介质和程序产品 |
CN115134300A (zh) * | 2022-06-07 | 2022-09-30 | 复旦大学 | 面向软件定义网络的交换设备规则缓存管理方法 |
CN114745327A (zh) * | 2022-06-10 | 2022-07-12 | 鹏城实验室 | 业务数据转发方法、装置、设备及存储介质 |
CN116232894A (zh) * | 2022-11-30 | 2023-06-06 | 北京东土军悦科技有限公司 | 一种报文处理方法、报文处理装置及存储介质 |
Non-Patent Citations (3)
Title |
---|
Kun Huang ; Qianpeng Su..Tiramisu: Fast and Scalable Traffic Splitting on Commodity Switches..《 2022 IFIP Networking Conference (IFIP Networking)》.2022,全文. * |
软件定义网络:安全模型、机制及研究进展;王蒙蒙;刘建伟;陈杰;毛剑;毛可飞;;软件学报(04);全文 * |
面向SDN的流规则拆分分配算法;闫祎程;易波;王兴伟;黄敏;;小型微型计算机系统(08);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116962321A (zh) | 2023-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11811660B2 (en) | Flow classification apparatus, methods, and systems | |
KR102162730B1 (ko) | 분산형 라우팅 테이블 탐색 기술 | |
US11418632B2 (en) | High speed flexible packet classification using network processors | |
CN109450900B (zh) | 拟态判决方法、装置及系统 | |
US10313240B2 (en) | Technologies for efficient network flow classification with vector bloom filters | |
JP5466257B2 (ja) | 表検索方法 | |
CN108768866B (zh) | 组播报文跨卡转发方法、装置、网络设备及可读存储介质 | |
JP5594171B2 (ja) | 通信処理装置、アドレス学習プログラムおよびアドレス学習方法 | |
US11398981B2 (en) | Path creation method and device for network on chip and electronic apparatus | |
CN110413845B (zh) | 基于物联网操作系统的资源存储方法及装置 | |
CN101640623A (zh) | 在对等网络中搜索资源的方法和设备 | |
KR101411321B1 (ko) | 액티브 노드와 유사한 특성을 가지는 이웃 노드의 관리방법, 장치 및 그 방법을 구현하기 위한 프로그램이 기록된기록매체 | |
WO2022267175A1 (zh) | 信息处理方法、装置、计算机设备及存储介质 | |
CN111131050A (zh) | 流表的匹配方法及装置 | |
CN116962321B (zh) | 数据包传输方法、传输配置方法、装置、设备及介质 | |
US9703484B2 (en) | Memory with compressed key | |
US10795580B2 (en) | Content addressable memory system | |
CN107196857B (zh) | 一种搬移方法和网络设备 | |
US20160105363A1 (en) | Memory system for multiple clients | |
CN111819552B (zh) | 访问控制列表的管理方法及装置 | |
US20140029621A1 (en) | Method for learning media access control address, network device, and system | |
CN105791124B (zh) | 报文检测方法及装置 | |
CN111865794B (zh) | 一种逻辑端口的关联方法、系统、设备及数据传输系统 | |
CN108566388B (zh) | 基于布鲁姆过滤器的sdn流规则冲突检测方法及系统 | |
CN102413038A (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 |