CN117439953B - 等价成本多路径选择系统、方法、设备、集群以及介质 - Google Patents
等价成本多路径选择系统、方法、设备、集群以及介质 Download PDFInfo
- Publication number
- CN117439953B CN117439953B CN202311754842.1A CN202311754842A CN117439953B CN 117439953 B CN117439953 B CN 117439953B CN 202311754842 A CN202311754842 A CN 202311754842A CN 117439953 B CN117439953 B CN 117439953B
- Authority
- CN
- China
- Prior art keywords
- key value
- downstream
- item
- matching
- internet protocol
- 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 29
- 230000003068 static effect Effects 0.000 claims abstract description 61
- 238000011144 upstream manufacturing Methods 0.000 claims abstract description 28
- 239000002131 composite material Substances 0.000 claims abstract description 21
- 238000011161 development Methods 0.000 claims abstract description 20
- 238000012545 processing Methods 0.000 claims description 43
- 238000010187 selection method Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 description 16
- 239000000306 component Substances 0.000 description 11
- 238000004422 calculation algorithm Methods 0.000 description 9
- 239000002184 metal Substances 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 239000000284 extract Substances 0.000 description 5
- 150000001875 compounds Chemical class 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- 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/24—Multipath
- H04L45/243—Multipath using M+N parallel active paths
-
- 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/38—Flow based routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种等价成本多路径选择系统、方法、设备、集群以及介质。所述方法包括数据平面开发工具包以及专用芯片,专用芯片用于从第一数据报文中获取第一数据报文的第一多元组,第一多元组包括目标互联网协议地址以及第一源互联网协议地址;专用芯片用于将第一多元组和第一下级流表项进行匹配,得到第一匹配结果,第一下级匹配项包括第一复合键值,第一复合键值包括静态键值以及第一动态键值,第一下级动作项包括将第一数据报文转发到第一路径,增加上级流表项的流量的统计量;专用芯片用于在第一匹配结果为匹配的情况下,执行第一下级动作项中的动作。上述方案把等价成本多路径选择卸载到专用芯片中,并且数据平面开发工具不感知。
Description
技术领域
本发明涉及网络传输,尤其涉及一种等价成本多路径选择系统、方法、设备、集群以及介质。
背景技术
等价成本多路径(Equal Cost Multi-path,ECMP)技术,在具备多个等效路径的情况下,将流量分担到多个路径上,从而达到负载均衡和提高网络性能的目的。当有多个等价的路径可供选择时,路由器可以根据规则将数据包分发到这些路径之一,从而实现多路径负载均衡。例如,在一个网络拓扑中,如果某个目标主机有两条等效路径可供选择,那么路由器可以根据其内部算法将数据包均匀地分发到这些路径上,从而达到负载均衡的目的。当前云计算网络大量使用开源虚拟交换机(OpenvSwitch,OVS)来实现报文的转发。OVS同样支持ECMP,但是OVS是靠软件处理来实现,处理速度慢,并且,会浪费大量的计算资源。
发明内容
本申请提供了一种等价成本多路径选择系统、方法、设备、集群以及介质,能够把等价成本多路径选择卸载到专用芯片中进行处理,并且数据平面开发工具不感知。
第一方面,提供了一种等价成本多路径选择系统,包括数据平面开发工具包以及专用芯片,
所述专用芯片用于从第一数据报文中获取所述第一数据报文的第一多元组,其中,所述第一多元组包括目标互联网协议地址以及第一源互联网协议地址;
所述专用芯片用于将所述第一多元组和第一下级流表项进行匹配,得到第一匹配结果,其中,所述第一下级流表项是所述数据平面开发工具包生成的,包括第一下级匹配项以及第一下级动作项,其中,所述第一下级匹配项包括第一复合键值,所述第一复合键值包括静态键值以及第一动态键值,所述静态键值是根据所述目标互联网协议地址生成的,所述第一动态键值是根据所述目标互联网协议地址以及所述第一源互联网协议地址生成的,所述第一下级动作项包括将所述第一数据报文转发到第一路径,增加上级流表项的流量的统计量,所述上级流表项包括上级匹配项以及上级动作项,所述上级匹配项为所述目标互联网协议地址,所述上级动作项包括所述静态键值以及动态键值,所述动态键值在多元组为所述第一多元组的情况下,为所述第一动态键值,所述第一下级流表项级联所述上级流表项;
所述专用芯片用于在第一匹配结果为匹配的情况下,执行所述第一下级动作项中的动作。
在一些可能的设计中,所述专用芯片用于从第二数据报文中获取所述第二数据报文的第二多元组,其中,所述第二多元组包括目标互联网协议地址以及第二源互联网协议地址;
所述专用芯片用于将所述第二多元组和第二下级流表项进行匹配,得到第二匹配结果,其中,所述第二下级流表项是所述数据平面开发工具包生成的,包括第二下级匹配项以及第二下级动作项,其中,所述第二下级匹配项包括第二复合键值,所述第二复合键值包括所述静态键值以及第二动态键值,所述第二动态键值是根据所述目标互联网协议地址以及所述第二源互联网协议地址生成的,所述第二下级动作项包括将所述第二数据报文转发到第二路径,增加所述上级流表项的所述统计量;
所述专用芯片用于在第二匹配结果为匹配的情况下,执行所述第二下级动作项中的动作;
其中,所述第一路径和所述第二路径为等价成本多路径,所述第二下级流表项级联所述上级流表项,所述动态键值在所述多元组为所述第二多元组的情况下,为所述第二动态键值。
在一些可能的设计中,所述第一下级动作项包括增加所述第一下级流表项的统计量,所述第二下级动作项包括增加所述第二下级流表项的统计量。
在一些可能的设计中,所述专用芯片用于将第一数据报文中的目标互联网协议地址和所述第一下级流表项中的静态键值进行匹配;
所述专用芯片用于在第一数据报文中的目标互联网协议地址和所述第一下级流表项中的静态键值匹配的情况下,将所述第一多元组进行散列运算,得到散列值;
所述专用芯片用于将所述散列值和所述第一下级流表项中的第一动态键值进行匹配,在所述散列值和所述第一下级流表项中的第一动态键值匹配的情况下,执行所述第一下级动作项中的动作。
在一些可能的设计中,所述专用芯片包括第一流水线、第二流水线以及第三流水线,
所述第一流水线用于将第一数据报文中的目标互联网协议地址和所述第一下级流表项中的静态键值进行匹配;
所述第二流水线用于在第一数据报文中的目标互联网协议地址和所述第一下级流表项中的静态键值匹配的情况下,将所述第一多元组进行散列运算,得到散列值;
所述第三流水线用于将所述散列值和所述第一下级流表项中的第一动态键值进行匹配,在所述散列值和所述第一下级流表项中的第一动态键值匹配的情况下,执行所述第一下级动作项中的动作。
在一些可能的设计中,所述数据平面开发工具中安装有虚拟交换机,所述虚拟交换机存储有所述上级流表项,所述第一下级流表项和所述第二下级流表项是所述虚拟交换机生成并发送给所述专用芯片的。
在一些可能的设计中,所述第二动态键值是对所述第二多元组进行散列计算得到的。
在一些可能的设计中,所述专用芯片包括专用集成电路以及现场可编辑门电路中的一种或多种。
在一些可能的设计中,所述等价成本多路径选择系统设置于数据处理单元中。
第二方面,提供了一种等价成本多路径选择方法,应用于数据处理单元中,数据处理单元包括数据平面开发工具包以及专用芯片,
所述专用芯片从第一数据报文中获取所述第一数据报文的第一多元组,其中,所述第一多元组包括目标互联网协议地址以及第一源互联网协议地址;
所述专用芯片将所述第一多元组和第一下级流表项进行匹配,得到第一匹配结果,其中,所述第一下级流表项是所述数据平面开发工具包生成的,包括第一下级匹配项以及第一下级动作项,其中,所述第一下级匹配项包括第一复合键值,所述第一复合键值包括静态键值以及第一动态键值,所述静态键值是根据所述目标互联网协议地址生成的,所述第一动态键值是根据所述目标互联网协议地址以及所述第一源互联网协议地址生成的,所述第一下级动作项包括将所述第一数据报文转发到第一路径,增加上级流表项的流量的统计量,所述上级流表项包括上级匹配项以及上级动作项,所述上级匹配项为所述目标互联网协议地址,所述上级动作项包括所述静态键值以及动态键值,所述动态键值在多元组为所述第一多元组的情况下,为所述第一动态键值,所述第一下级流表项级联所述上级流表项;
所述专用芯片在第一匹配结果为匹配的情况下,执行所述第一下级动作项中的动作。
在一些可能的设计中,所述第一下级动作项包括增加所述第一下级流表项的统计量,所述第二下级动作项包括增加所述第二下级流表项的统计量。
在一些可能的设计中,所述专用芯片将第一数据报文中的目标互联网协议地址和所述第一下级流表项中的静态键值进行匹配;
所述专用芯片在第一数据报文中的目标互联网协议地址和所述第一下级流表项中的静态键值匹配的情况下,将所述第一多元组进行散列运算,得到散列值;
所述专用芯片将所述散列值和所述第一下级流表项中的第一动态键值进行匹配,在所述散列值和所述第一下级流表项中的第一动态键值匹配的情况下,执行所述第一下级动作项中的动作。
在一些可能的设计中,所述专用芯片包括第一流水线、第二流水线以及第三流水线,
所述第一流水线将第一数据报文中的目标互联网协议地址和所述第一下级流表项中的静态键值进行匹配;
所述第二流水线在第一数据报文中的目标互联网协议地址和所述第一下级流表项中的静态键值匹配的情况下,将所述第一多元组进行散列运算,得到散列值;
所述第三流水线将所述散列值和所述第一下级流表项中的第一动态键值进行匹配,在所述散列值和所述第一下级流表项中的第一动态键值匹配的情况下,执行所述第一下级动作项中的动作。
在一些可能的设计中,所述数据平面开发工具中安装有虚拟交换机,所述虚拟交换机存储有所述上级流表项,所述第一下级流表项和所述第二下级流表项是所述虚拟交换机生成并发送给所述专用芯片的。
在一些可能的设计中,所述第二动态键值是对所述第二多元组进行散列计算得到的。
在一些可能的设计中,所述专用芯片包括专用集成电路以及现场可编辑门电路中的一种或多种。
在一些可能的设计中,所述等价成本多路径选择系统设置于数据处理单元中。
第三方面,提供了一种计算设备,包括:处理器以及存储器,其中,所述存储器用于存储指令,所述处理器用于运行所述存储器中的指令,以执行如第二方面任一项所述的方法。
第四方面,提供了一种计算集群,包括多个计算设备,其中,每个计算设备包括处理器以及存储器,所述存储器用于存储指令,所述处理器用于运行所述存储器中的指令,以执行如第二方面任一项所述的方法。
第五方面,提供了一种计算机可读存储介质,包括指令,所述指令被计算设备执行时,执行如第一方面任一项所述的方法。
附图说明
为了更清楚地说明本发明实施例或背景技术中的技术方案,下面将对本发明实施例或背景技术中所需要使用的附图进行说明。
图1是本申请提供的一种软件定义网络(Software-Defined Networking,SDN)的结构示意图;
图2是本申请提供的一种等价成本多路径选择系统的结构示意图;
图3是本申请提供的一种等价成本多路径选择方法的流程示意图;
图4是本申请实施例提供的一种计算设备的结构示意图。
具体实施方式
下面结合本发明实施例中的附图对本发明实施例进行描述。本发明的实施方式部分使用的术语仅用于对本发明的具体实施例进行解释,而非旨在限定本发明。
参见图1,图1是本申请提供的一种软件定义网络(Software-DefinedNetworking,SDN)的结构示意图。如图1所示,本申请的软件定义网络包括:SDN控制器110以及开放虚拟交换机(open vSwitch,OVS)120。
SDN控制器110是SDN架构中的核心组件,用于负责实现对整个网络的集中管理和控制。SDN控制器将网络的控制平面与数据平面分离,从而提供了更灵活、可编程和可扩展的网络管理方式。SDN控制器的主要功能包括:管理整个网络的控制平面,包括拓扑发现、路由计算、流表下发等。具体地,SDN控制器110通过与OVS 120进行通信,收集网络的拓扑信息,并根据应用需求计算路由,然后将流表下发给OVS 120。其次,SDN控制器110可以根据流量的特征和需求,动态地调整网络的路由选择和流量分配,从而实现流量的负载均衡、拥塞控制和服务质量保障;可以实施访问控制、流量过滤和入侵检测等安全措施,并及时响应网络安全事件,以保护网络免受恶意攻击和数据泄露的威胁等等。SDN控制器110可以是实体设备,也可以是虚拟设备。当SDN控制器110的数量为多个时,还可以是实体设备和虚拟设备混合使用。SDN控制器110可以运行在物理服务器、虚拟机、容器、云平台以及裸金属服务器中。
OVS 120是一种开源的虚拟交换机软件,它实现了一个灵活、可编程和可扩展的交换机平台,用于通过与SDN控制器之间的开源流(OpenFlow)协议进行通信,接收SDN控制器110下发的流表,根据流表实现流量的转发和路由。OVS 120支持在二层和三层网络中进行数据包交换和路由,所以,OVS 120支持对以太网数据帧以及数据包的处理等等。OVS 120可以运行在物理服务器、虚拟机、容器、云平台以及裸金属服务器中。OVS 120还可以和物理交换机混合使用等等。
SDN控制器110和OVS 120可以都设置于容器中,此时,SDN控制器110和OVS 120可以集中在同一个容器中,也可以分布在不同的容器中。SDN控制器110和OVS 120可以都设置于虚拟机中,此时,SDN控制器110和OVS 120可以集中在同一个虚拟机中,也可以分布在不同的虚拟机中。SDN控制器110和OVS 120可以都设置于服务器中,此时,SDN控制器110和OVS120可以集中在同一个服务器中,也可以分布在不同的服务器中。SDN控制器110和OVS 120可以都设置于裸金属服务器中,此时,SDN控制器110和OVS 120可以集中在同一个裸金属服务器中,也可以分布在不同的裸金属服务器中。又或者,SDN控制器110设置于容器中,OVS120设置于虚拟机、服务器、裸金属服务器中的任意一个中。SDN控制器110设置于虚拟机中,OVS 120设置于容器、服务器、裸金属服务器中的任意一个中。SDN控制器110设置于服务器中,OVS 120设置于容器、虚拟机、裸金属服务器中的任意一个中。SDN控制器110设置于裸金属服务器中,OVS 120设置于容器、虚拟机、服务器中的任意一个中。
下面将结合具体的实施例说明数据包从源IP地址传输到目的IP地址的过程。首先,用户可以在SDN控制器110上根据源IP地址、目的IP地址以及SDN的网络拓扑进行路由计算得到合适的转发路径,并根据转发路径生成流表。由于网络中可能存在多条转发路径,并且,多条转发路径的成本是一样的,即,存在等价成本多路径(equal cost multipath,ECMP),所以,需要从多条ECMP中选择一条路径作为转发路径。因此,生成的流表包括匹配条件和动作,匹配条件可以是源IP地址、目的IP地址、协议类型等等,动作可以是转发到指定的端口或者ECMP选择,也就是说,不存在ECMP的时候,从指定的端口将数据包发送出去即可,存在ECMP的时候,就需要OVS 120进行ECMP选择。然后,SDN控制器将流表下发到相关的OVS 120。当数据包到达OVS 120时,OVS 120会检查它的头部信息,并与流表中的匹配条件进行匹配,在数据包的头部信息能够与匹配条件匹配,动作是ECMP选择的情况下,OVS 120就会执行ECMP选择。
但是,由于ECMP选择的流程在OVS 120中完成,在大流量情况下,势必会对OVS的核心业务造成很大冲击。
为了解决上述问题,本申请提供了一种ECMP选择方法,系统、设备、集群、存储介质等等,能够实现将ECMP选择卸载到硬件中,减轻OVS的负担,提高OVS的处理效率。
参见图2,图2是本申请提供的一种等价成本多路径选择系统的结构示意图。如图2所示,本申请的ECMP选择系统设置于数字处理单元(Data Processing Unit,DPU)210,包括:数据平面开发工具包(Data Plane Development Kit,DPDK)211以及专用芯片212。
DPDK 211是一个开源的软件开发工具包,提供了一组库和驱动程序,可用于高性能数据包处理和网络功能虚拟化。DPDK 211提供了一些关键的功能虚拟化,例如,虚拟化网卡、虚拟化交换机和虚拟化防火墙等等网络功能虚拟化,从而将网络功能移植到通用的服务器上,实现了网络功能的灵活性和可扩展性。这里,DPDK 211可以提供OVS的功能。
专用芯片212可以包括现场可编程门阵列(Field-Programmable Gate Array,FPGA)以及专用集成电路(Application-Specific Integrated Circuit,ASIC)。其中,FPGA和ASIC都可以包括多个流水线。流水线将任务分解为多个连续的阶段,每个阶段处理任务的一部分,从而实现并行处理,从而提高处理速度和效率。
当DPU从入口接收到第一个数据流的第一个数据报文的时候,将第一个数据流的第一个数据报文发送给专用芯片212。专用芯片212接收到第一个数据流的第一个数据报文之后,从第一个数据流的第一个数据报文中提取出第一多元组。其中,第一多元组可以是二元、四元、五元甚至更多。当第一多元组为二元组时,可以包括源互联网协议(IP)地址,目的IP地址;当第一多元组为四元组时,可以包括源IP地址、源端口号、目的IP地址以及目的端口号;当第一多元组为五元组时,可以包括源IP地址、源端口号、目的IP地址、目的端口号以及协议。专用芯片212将第一多元组和专用芯片212内的下级流表项一一进行匹配。因为,该数据报文是第一个数据流的第一个数据报文,专用芯片212此时还没有存储该数据报文对应的下级流表项,所以,匹配不成功。专用芯片212将第一个数据流的第一个数据报文转发给DPDK 211。DPDK 211将第一个数据流的第一个数据报文发送给SDN控制器。SDN控制器接收到第一个数据流的第一个数据报文之后,计算出源IP地址和目的IP地址之间的转发路径,并根据转发路径生成上级流表项,并发送给DPDK 211。
DPDK 211接收上级流表项,并进行存储。其中,上级流表项包括上级匹配项以及上级动作项。上级匹配项为从第一个数据流的第一个数据报文中提取得到的目的IP地址,上级动作项包括静态键值以及动态键值,静态键值通常是不变的,用于级联下级流表项,动态键值可以是变化的。这里,静态键值是根据第一个数据流的第一个数据报文的目标IP地址生成的,动态键值可以是根据第一个数据流的第一个数据报文中的第一多元组生成的第一动态键值。生成的方式可以包括对第一个数据流的第一个数据报文中的第一多元组进行散列计算,散列计算包括但不限于,消息摘要算法、哈希计算、安全散列算法(SHA-256)、散列表等等。DPDK 211还可以根据静态键值生成上级流量统计变量,并建立静态键值和上级流量统计变量之间的关系。DPDK 211根据静态键值以及第一动态键值生成第一下级流表项。第一下级流表项包括第一下级匹配项以及第一下级动作项。其中,第一下级匹配项包括第一复合键值,第一复合键值包括静态键值以及第一动态键值,第一下级动作项包括将报文转发到第一路径,增加上级流表项的流量的统计量。可以理解,上述第一下级动作项仅仅包括将数据报文转发到第一路径,增加上级流表项的流量的统计量的动作,在实际应用中,还可以包括更多的动作,例如,增加第一下级流表项的统计量等等。因此,DPDK 211可以将第一个数据流的第一个数据报文通过第一个出口转发出去,从而选择将第一个数据流的第一个数据报文转发到第一路径,并且,将上级流量统计变量加1。DPDK 211将第一下级流表项发送给专用芯片212。
专用芯片212接收到第一下级流表项之后,将会存储第一下级流表项。当DPU从入口接收到第一个数据流的第二个数据报文的时候,将会把第一个数据流的第二个数据报文发送给专用芯片212。专用芯片212从第一个数据流的第二个数据报文中提取第二个数据报文的目标IP地址,并将提取得到的目的IP地址和专用芯片212中的各个下级流表项的静态键值进行匹配,从而确定和第一下级流表项中的静态键值匹配。然后,专用芯片212提取第一个数据流的第二个数据报文的第一多元组,并将该第一多元组进行散列计算,得到动态键值。因为,第一个数据流的第一个数据报文和第二个数据报文的第一多元组是相同的,所以,将第一个数据流的第二个数据报文的第一多元组进行散列计算得到的动态键值也是第一动态键值。因此,和第一下级流表项中的第一动态键值也匹配,从而获得第一下级流表项的第一动作项。专用芯片212执行第一动作项,将第一个数据流的第二个数据报文通过第一个出口转发出去,实现将第二个数据报文转发到第一路径上;然后,根据静态键值查找到上级统计变量,并对上级统计变量进行加1;最后,生成第一下级统计变量,并将第一下级统计变量加2(因为第一个数据报文已经被DPDK 211所转发)。第一个数据流的第三个数据报文,第四个数据报文等等都是采用和第二个数据报文相同的方式进行的,此处不再展开赘述。因为,同一个数据流的数据报文的第一多元组都是相同的,因此,都会通过同一个出口转发到同一个路径中,从而实现了同一个数据流都通过同一个转发路径进行转发。但是,从第一个数据流的第三个数据报文开始,上级统计变量依然是每次加1,但是,第一下级统计变量变成每次加1。可以理解,上述例子是以第一个数据流的第一个数据报文是通过DPDK 211为例进行说明的,在实际应用中,第一个数据流的第一个数据报文也可以由DPDK 211再转发给专用芯片212。专用芯片212再根据第一下级流表项进行处理,此时,专用芯片212从第一个数据报文开始,每次将上级统计变量加1,将第一下级统计变量每次加1。上述方案中是以每次加1为例进行说明的,在实际应用中,也可以每次加2、每次加3等等。
当DPU从入口接收到第二个数据流的第一个数据报文的时候,将第二个数据流的第一个数据报文发送给专用芯片212。专用芯片212接收到第二个数据流的第一个数据报文之后,从第二个数据流的第一个数据报文中提取出第二多元组。其中,第二多元组可以是二元、四元、五元甚至更多。当第二多元组为二元组时,可以包括源互联网协议(IP)地址,目的IP地址;当第二多元组为四元组时,可以包括源IP地址、源端口号、目的IP地址以及目的端口号;当第二多元组为五元组时,可以包括源IP地址、源端口号、目的IP地址、目的端口号以及协议。第一个数据流中的数据报文的目的IP地址和第二个数据流中的数据报文的目的IP地址可以是相同的,而源IP地址可以是不相同的。专用芯片212将第二多元组和专用芯片212内的下级流表项一一进行匹配。因为,该数据报文是第二个数据流的第一个数据报文,专用芯片212此时还没有存储该数据流对应的下级流表项,所以,匹配不成功。专用芯片212将第二个数据流的第一个数据报文转发给DPDK 211。DPDK 211将第二个数据流的第一个数据报文发送给SDN控制器。SDN控制器接收到第二个数据流的第一个数据报文之后,根据目的IP地址确定第二个数据流的数据报文能够和第一个数据流生成的上级流表项匹配,于是,根据第二个数据流的第一个数据报文中的第二多元组生成的第二动态键值。生成的方式可以包括对第二个数据流的第一个数据报文中的第二多元组进行散列计算,散列计算包括但不限于,消息摘要算法、哈希计算、安全散列算法(SHA-256)、散列表等等。DPDK 211根据静态键值以及第二动态键值生成第二下级流表项。第二下级流表项包括第二下级匹配项以及第二下级动作项。其中,第二下级匹配项包括第二复合键值,第二复合键值包括静态键值以及第二动态键值,第二下级动作项包括将报文转发到第二路径,增加上级流表项的流量的统计量。可以理解,上述第二下级动作项仅仅包括将数据报文转发到第二路径,增加上级流表项的流量的统计量的动作,在实际应用中,还可以包括更多的动作,例如,增加第二下级流表项的统计量等等。因此,DPDK 211可以将第二个数据流的第一个数据报文通过第二个出口转发出去,从而选择将第二个数据流的第一个数据报文转发到第二路径,并且,将上级流量统计变量加1。DPDK 211将第二下级流表项发送给专用芯片212。
专用芯片212接收到第二下级流表项之后,将会存储第二下级流表项。当DPU从入口接收到第二个数据流的第二个数据报文的时候,将会把第二个数据流的第二个数据报文发送给专用芯片212。专用芯片212从第二个数据流的第二个数据报文中提取第二个数据报文的目标IP地址,并将提取得到的目的IP地址和专用芯片212中的各个下级流表项的静态键值进行匹配,从而确定和第二下级流表项中的静态键值匹配。然后,专用芯片212提取第二个数据流的第二个数据报文的第二多元组,并将该第二多元组进行散列计算,得到动态键值。因为,第二个数据流的第一个数据报文和第二个数据报文的第二多元组是相同的,所以,将第二个数据流的第二个数据报文的第二多元组进行散列计算得到的动态键值也是第二动态键值。因此,和第二下级流表项中的第二动态键值也匹配,从而获得第二下级流表项的第二动作项。专用芯片212执行第二动作项,将第二个数据流的第二个数据报文通过第二个出口转发出去,实现将第二个数据报文转发到第二路径上;然后,根据静态键值查找到上级统计变量,并对上级统计变量进行加1;最后,生成第二下级统计变量,并将第二下级统计变量加2(因为第一个数据报文已经被DPDK 211所转发)。第二个数据流的第三个数据报文,第四个数据报文等等都是采用和第二个数据报文相同的方式进行的,此处不再展开赘述。因为,同一个数据流的数据报文的第二多元组都是相同的,因此,都会通过同一个出口转发到同一个路径中,从而实现了同一个数据流都通过同一个转发路径进行转发。但是,从第二个数据流的第三个数据报文开始,上级统计变量依然是每次加1,但是,第二下级统计变量变成每次加1。可以理解,上述例子是以第二个数据流的第一个数据报文是通过DPDK 211为例进行说明的,在实际应用中,第二个数据流的第一个数据报文也可以由DPDK 211再转发给专用芯片212。专用芯片212再根据第二下级流表项进行处理,此时,专用芯片212从第一个数据报文开始,每次将上级统计变量加1,将第二下级统计变量每次加1。上述方案中是以每次加1为例进行说明的,在实际应用中,也可以每次加2、每次加3等等。
尽管第一个数据流和第二个数据流的源IP地址、源端口号中的至少一个不相同,但是,由于第一个数据流和第二个数据流的目的IP地址都是相同的,所以,第一下级流表项和第二下级流表项都级联到同一个上级流表中。所以,在通过上级统计变量对流量进行统计时,是会将第一个数据流和第二个数据流的流量都进行统计,以上面的例子来说,当第一个数据流的第一个数据报文、第二个数据报文和第二个数据流的第一个数据报文和第二个数据报文都被专用芯片转发出去之后,上级统计变量的数值应该增加了4,第一下级统计变量的数值应该增加了2,第二下级统计变量的数值应该增加了2。
由于专用芯片212中具有多个流水线,可以通过不同的流水线进行不同的任务来提高数据报文的处理效率。举个例子,假设专用芯片212包括第一个流水线、第二个流水线以及第三个流水线,当专用芯片212对第一个数据流中的第一个数据报文进行处理时,第一个流水线将第一数据报文中的目标IP地址和第一下级流表项中的静态键值进行匹配,第二个流水线在第一个数据报文中的目标IP地址和第一下级流表项中的静态键值匹配的情况下,将第一多元组进行散列运算,得到散列值,第三流水线将散列值和第一下级流表项中的第一动态键值进行匹配,在散列值和第一下级流表项中的第一动态键值匹配的情况下,执行第一下级动作项中的动作。可以理解,当第一个数据流的第一个数据报文尚未处理完毕,而第一个数据流的第二个数据报文或者第二个数据流的第一个数据报文又发送到专用芯片212时,可以通过第四个流水线、第五个流水线以及第六个流水线去处理第一个数据流的第二个数据报文以及第二个数据流的第一个数据报文。当然,如果专用芯片212已经处理完了第一个数据流的第一个数据报文,已经释放了第一个流水线、第二个流水线、第三个流水线,那么,也可以利用第一个流水线、第二个流水线、第三个流水线来进行处理。
上述上级流表项和下级流表项可以是一级流表以及二级流表项,当然,上级流表项可以是三级流表项,下级流表项可以是四级流表项,甚至,上级流表项可以是一级流表项,下级流表项可以是三级流表项等等。
参见图3,图3是本申请提供的一种等价成本多路径选择方法的流程示意图。本申请的等价成本多路径选择方法应用于数据处理单元中,数据处理单元包括数据平面开发工具包以及专用芯片。如图3所示,本申请的等价成本多路径选择方法,专用芯片可以执行如下步骤:
S101:从第一数据报文中获取第一数据报文的第一多元组。
在一些可能的实施例中,第一多元组包括目标IP地址以及第一源IP地址。其中,第一多元组可以是二元、四元、五元甚至更多。当第一多元组为二元组时,可以包括第一源互联网协议(IP)地址,目的IP地址;当第一多元组为四元组时,可以包括第一源IP地址、第一源端口号、目的IP地址以及第一目的端口号;当第一多元组为五元组时,可以包括第一源IP地址、第一源端口号、目的IP地址、第一目的端口号以及协议。
S102:将第一多元组和第一下级流表项进行匹配,得到第一匹配结果。
在一些可能的实施例中,第一下级流表项是DPDK生成的,包括第一下级匹配项以及第一下级动作项。其中,第一下级匹配项包括第一复合键值。第一复合键值包括静态键值以及第一动态键值。静态键值是根据目标IP地址生成的,第一动态键值是根据目标IP地址以及第一源IP地址生成的。第一下级动作项包括将第一数据报文转发到第一路径,增加上级流表项的流量的统计量。可选地,还可以包括增加第一下级流表项的流量的统计量。上级流表项包括上级匹配项以及上级动作项。上级匹配项为目标IP地址,上级动作项包括静态键值以及动态键值。静态键值通常是不变的,用于级联下级流表项,动态键值可以是变化的。这里,静态键值是根据第一数据报文的目标IP地址生成的,动态键值可以是根据第一数据报文中的第一多元组生成的第一动态键值。生成的方式可以包括对第一数据报文中的第一多元组进行散列计算,散列计算包括但不限于,消息摘要算法、哈希计算、安全散列算法(SHA-256)、散列表等等。动态键值在多元组为第一多元组的情况下,为第一动态键值。第一下级流表项级联上级流表项。
在一些可能的实施例中,专用芯片从第一多元组中提取得到目的IP地址之后,根据目的IP地址生成静态键值以及动态键值。当生成的静态键值和动态键值都和第一下级流表项中静态键值和第一动态相同的时候,则第一匹配结果为匹配,反之,则为不匹配。
S103:在第一匹配结果为匹配的情况下,执行第一下级动作项中的动作。
在一些可能的实施例中,在第一匹配结果为匹配的情况下,将第一个数据报文通过第一个出口转发出去,实现将第一数据报文转发到第一路径上;然后,对上级流表项的流量进行统计。可选地,还可以对第一下级流表项的流量进行统计。为了便于进行统计,可以设置一个上级统计变量,并将该上级统计变量和静态键值关联。这样,就可以根据静态键值查找到上级统计变量,并对上级统计变量进行加1。可选地,还可以设置一个和第一动态键值关联的第一下级统计变量,这样,就可以通过第一动态键值找到第一下级统计变量,然后,将第一下级统计变量加1。
S104:从第二数据报文中获取所述第二数据报文的第二多元组。
在一些可能的实施例中,第二多元组包括目标IP地址以及第二源IP地址。其中,第二多元组可以是二元、四元、五元甚至更多。当第二多元组为二元组时,可以包括第二源IP地址,目的IP地址;当第二多元组为四元组时,可以包括第二源IP地址、第二源端口号、目的IP地址以及第二目的端口号;当第二多元组为五元组时,可以包括第二源IP地址、第二源端口号、目的IP地址、第二目的端口号以及协议。
S105:将第二多元组和第二下级流表项进行匹配,得到第二匹配结果。
在一些可能的实施例中,第二下级流表项同样是DPDK生成的,包括第二下级匹配项以及第二下级动作项。其中,第二下级匹配项包括第二复合键值,第二复合键值包括静态键值以及第二动态键值。第二动态键值可以是根据第二数据报文中的第二多元组生成的第二动态键值。生成的方式可以包括对第二数据报文中的第二多元组进行散列计算,散列计算包括但不限于,消息摘要算法、哈希计算、安全散列算法(SHA-256)、散列表等等。第二下级流表项级联上级流表项。第二下级动作项包括将第二数据报文转发到第二路径,增加上级流表项的统计量。可选地,还可以增加第二下级流表项的统计量。
S106:在第二匹配结果为匹配的情况下,执行第二下级动作项中的动作;
在一些可能的实施例中,在第二匹配结果为匹配的情况下,将第二数据报文通过第二个出口转发出去,实现将第二数据报文转发到第二路径上;然后,对上级流量项的流量进行统计。可选地,还可以对第二下级流量项的流量进行统计。这样,就可以根据静态键值查找到上级统计变量,并对上级统计变量进行加1。可选地,还可以设置一个和第二动态键值关联的第二下级统计变量,这样,就可以通过第二动态键值找到第二下级统计变量,然后,将第二下级统计变量加1。
可以理解,第一路径和第二路径为等价成本多路径。因此,第一路径和第二路径的成本可以是相等的,到达的目的地也相同的,当然,第一路径和第二路径也可以成本不同,但是,到达的目的地是相同的。
可以理解,第一下级流表项和第二下级流表项级联相同的上级流表项。所以,他们的静态键值是相同的,静态键值关联的上级统计变量也是相同的,因此,在进行上级流表项的流量统计时,会同时统计第一数据报文以及第二数据报文的流量。
参见图4,图4是本申请实施例提供的一种计算设备的结构示意图。该计算设备400包括:一个或者多个处理单元410、通信接口420以及存储器430。
所述处理单元410、通信接口420以及存储器430通过总线440相互连接。可选地,该计算设备400还可以包括输入/输出接口450,输入/输出接口450连接有输入/输出设备,用于接收用户设置的参数等。该计算设备400能够用于实现上述的本申请实施例中设备实施例或者系统实施例的部分或者全部功能;处理单元410还能够用于实现上述的本申请实施例中方法实施例的部分或者全部操作步骤。例如,该计算设备400执行各种操作的具体实现可参照上述实施例中的具体细节,如处理单元410用于执行上述方法实施例中部分或者全部步骤或者上述方法实施例中的部分或者全部操作。再例如,本申请实施例中,计算设备400可用于实现上述装置实施例中一个或者多个部件的部分或者全部功能,此外通信接口420具体可用于为了实现这些装置、部件的功能所必须的通讯功能等,以及处理单元410具体可用于为了实现这些装置、部件的功能所必须的处理功能等。
应当理解的是,图4的计算设备400可以包括一个或者多个处理单元410,并且多个处理单元410可以按照并行化连接方式、串行化连接方式、串并行连接方式或者任意连接方式来协同提供处理能力,或者多个处理单元410可以构成处理器序列或者处理器阵列,或者多个处理单元410之间可以分成主处理器和辅助处理器,或者多个处理单元410之间可以具有不同的架构如采用异构计算架构。另外,图4所示的计算设备400,相关的结构性描述及功能性描述是示例性且非限制性的。在一些示例性实施例中,计算设备400可以包括比图4所示的更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者具有不同的部件布置。
处理单元410可以有多种具体实现形式,例如处理单元410可以包括中央处理器(central processingunit,CPU)、图形处理器(graphic processing unit,GPU)、神经网络处理器(neural-networkprocessing unit,NPU)、张量处理器(tensor processing unit,TPU)或数据处理器(data processing unit,DPU)等一种或多种的组合,本申请实施例不做具体限定。处理单元410还可以是单核处理器或多核处理器。处理单元410可以由CPU和硬件芯片的组合。上述硬件芯片可以是专用集成电路(application-specificintegratedcircuit,ASIC),可编程逻辑器件(programmable logicdevice,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complexprogrammable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。处理单元410也可以单独采用内置处理逻辑的逻辑器件来实现,例如FPGA或数字信号处理器(digital signal processor,DSP)等。通信接口420可以为有线接口或无线接口,用于与其他模块或设备进行通信,有线接口可以是以太接口、局域互联网络(local interconnect network,LIN)等,无线接口可以是蜂窝网络接口或使用无线局域网接口等。
存储器430可以是非易失性存储器,例如,只读存储器(read-onlymemory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electricallyEPROM,EEPROM)或闪存。存储器430也可以是易失性存储器,易失性存储器可以是随机存取存储器(randomaccess memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(doubledatarate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。存储器430也可用于存储程序代码和数据,以便于处理单元410调用存储器430中存储的程序代码执行上述方法实施例中的部分或者全部操作步骤,或者执行上述设备实施例中的相应功能。此外,计算设备400可能包含相比于图4展示的更多或者更少的组件,或者有不同的组件配置方式。
总线440可以是快捷外设部件互连标准(peripheral component interconnectexpress,PCIe)总线,或扩展工业标准结构(extended industry standard architecture,EISA)总线、统一总线(unified bus,Ubus或UB)、计算机快速链接(compute express link,CXL)、缓存一致互联协议(cache coherentinterconnect for accelerators,CCIX)等。总线440可以分为地址总线、数据总线、控制总线等。总线440除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本申请实施例还提供一种系统,该系统包括多个计算设备,每个计算设备的结构可以参照上述的计算设备的结构。该系统可实现的功能或者操作可以参照上述方法实施例中的具体实现步骤和/或上述装置实施例中所描述的具体功能,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机指令,当所述计算机指令在计算机设备(如一个或者多个处理器)上运行时可以实现上述方法实施例中的方法步骤。所述计算机可读存储介质的处理器在执行上述方法步骤的具体实现可参照上述方法实施例中所描述的具体操作和/或上述装置实施例中所描述的具体功能,在此不再赘述。
本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的指令,当所述指令在计算机设备上运行时使得所述计算机设备执行上述方法实施例中的方法步骤。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者任意组合来实现。当使用软件实现时,可以全部或者部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令,在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或其他可编程装置。所述计算机指令可存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网络站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、微波等)方式向另一个网络站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质,也可以是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带等)、光介质(例如DVD等)、或者半导体介质(例如固态硬盘)等等。
在上述实施例中,对各个实施例的描述各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
Claims (11)
1.一种等价成本多路径选择系统,其特征在于,包括数据平面开发工具包以及专用芯片,
所述专用芯片用于从第一数据报文中获取所述第一数据报文的第一多元组,其中,所述第一多元组包括目标互联网协议地址以及第一源互联网协议地址;
所述专用芯片用于将所述第一多元组和第一下级流表项进行匹配,得到第一匹配结果,其中,所述第一下级流表项是所述数据平面开发工具包根据所述第一数据报文所在的数据流中所述第一数据报文之前的数据报文生成的,包括第一下级匹配项以及第一下级动作项,其中,所述第一下级匹配项包括第一复合键值,所述第一复合键值包括静态键值以及第一动态键值,所述静态键值是根据所述目标互联网协议地址生成的,所述第一动态键值是根据所述目标互联网协议地址以及所述第一源互联网协议地址生成的,所述第一下级动作项包括将所述第一数据报文转发到第一路径,增加上级流表项的流量的统计量,所述上级流表项包括上级匹配项以及上级动作项,所述上级匹配项为所述目标互联网协议地址,所述上级动作项包括所述静态键值以及动态键值,所述动态键值在多元组为所述第一多元组的情况下,为所述第一动态键值,所述第一下级流表项级联所述上级流表项;
所述专用芯片用于在第一匹配结果为匹配的情况下,执行所述第一下级动作项中的动作;
所述专用芯片用于从第二数据报文中获取所述第二数据报文的第二多元组,其中,所述第二多元组包括目标互联网协议地址以及第二源互联网协议地址;
所述专用芯片用于将所述第二多元组和第二下级流表项进行匹配,得到第二匹配结果,其中,所述第二下级流表项是所述数据平面开发工具包根据所述第二数据报文所在的数据流中所述第二数据报文之前的数据报文生成的,包括第二下级匹配项以及第二下级动作项,其中,所述第二下级匹配项包括第二复合键值,所述第二复合键值包括所述静态键值以及第二动态键值,所述第二动态键值是根据所述目标互联网协议地址以及所述第二源互联网协议地址生成的,所述第二下级动作项包括将所述第二数据报文转发到第二路径,增加所述上级流表项的所述统计量;
所述专用芯片用于在第二匹配结果为匹配的情况下,执行所述第二下级动作项中的动作;
其中,所述第一路径和所述第二路径为等价成本多路径,所述第二下级流表项级联所述上级流表项,所述动态键值在所述多元组为所述第二多元组的情况下,为所述第二动态键值;
所述第一下级动作项包括增加所述第一下级流表项的统计量,所述第二下级动作项包括增加所述第二下级流表项的统计量。
2.根据权利要求1所述的系统,其特征在于,
所述专用芯片用于将第一数据报文中的目标互联网协议地址和所述第一下级流表项中的静态键值进行匹配;
所述专用芯片用于在第一数据报文中的目标互联网协议地址和所述第一下级流表项中的静态键值匹配的情况下,将所述第一多元组进行散列运算,得到散列值;
所述专用芯片用于将所述散列值和所述第一下级流表项中的第一动态键值进行匹配,在所述散列值和所述第一下级流表项中的第一动态键值匹配的情况下,执行所述第一下级动作项中的动作。
3.根据权利要求2所述的系统,其特征在于,所述专用芯片包括第一流水线、第二流水线以及第三流水线,
所述第一流水线用于将第一数据报文中的目标互联网协议地址和所述第一下级流表项中的静态键值进行匹配;
所述第二流水线用于在第一数据报文中的目标互联网协议地址和所述第一下级流表项中的静态键值匹配的情况下,将所述第一多元组进行散列运算,得到散列值;
所述第三流水线用于将所述散列值和所述第一下级流表项中的第一动态键值进行匹配,在所述散列值和所述第一下级流表项中的第一动态键值匹配的情况下,执行所述第一下级动作项中的动作。
4.根据权利要求1至3任一项所述的系统,其特征在于,所述数据平面开发工具中安装有虚拟交换机,所述虚拟交换机存储有所述上级流表项,所述第一下级流表项和所述第二下级流表项是所述虚拟交换机生成并发送给所述专用芯片的。
5.根据权利要求1至3任一项所述的系统,其特征在于,所述第二动态键值是对所述第二多元组进行散列计算得到的。
6.根据权利要求1至3任一项所述的系统,其特征在于,所述专用芯片包括专用集成电路以及现场可编辑门电路中的一种或多种。
7.根据权利要求1至3任一项所述的系统,其特征在于,所述等价成本多路径选择系统设置于数据处理单元中。
8.一种等价成本多路径选择方法,其特征在于,应用于数据处理单元中,数据处理单元包括数据平面开发工具包以及专用芯片,
所述专用芯片从第一数据报文中获取所述第一数据报文的第一多元组,其中,所述第一多元组包括目标互联网协议地址以及第一源互联网协议地址;
所述专用芯片将所述第一多元组和第一下级流表项进行匹配,得到第一匹配结果,其中,所述第一下级流表项是所述数据平面开发工具包根据所述第一数据报文所在的数据流中所述第一数据报文之前的数据报文生成的,包括第一下级匹配项以及第一下级动作项,其中,所述第一下级匹配项包括第一复合键值,所述第一复合键值包括静态键值以及第一动态键值,所述静态键值是根据所述目标互联网协议地址生成的,所述第一动态键值是根据所述目标互联网协议地址以及所述第一源互联网协议地址生成的,所述第一下级动作项包括将所述第一数据报文转发到第一路径,增加上级流表项的流量的统计量,所述上级流表项包括上级匹配项以及上级动作项,所述上级匹配项为所述目标互联网协议地址,所述上级动作项包括所述静态键值以及动态键值,所述动态键值在多元组为所述第一多元组的情况下,为所述第一动态键值,所述第一下级流表项级联所述上级流表项;
所述专用芯片在第一匹配结果为匹配的情况下,执行所述第一下级动作项中的动作;
所述专用芯片从第二数据报文中获取所述第二数据报文的第二多元组,其中,所述第二多元组包括目标互联网协议地址以及第二源互联网协议地址;
所述专用芯片将所述第二多元组和第二下级流表项进行匹配,得到第二匹配结果,其中,所述第二下级流表项是所述数据平面开发工具包根据所述第二数据报文所在的数据流中所述第二数据报文之前的数据报文生成的,包括第二下级匹配项以及第二下级动作项,其中,所述第二下级匹配项包括第二复合键值,所述第二复合键值包括所述静态键值以及第二动态键值,所述第二动态键值是根据所述目标互联网协议地址以及所述第二源互联网协议地址生成的,所述第二下级动作项包括将所述第二数据报文转发到第二路径,增加所述上级流表项的所述统计量;
所述专用芯片在第二匹配结果为匹配的情况下,执行所述第二下级动作项中的动作;
其中,所述第一路径和所述第二路径为等价成本多路径,所述第二下级流表项级联所述上级流表项,所述动态键值在所述多元组为所述第二多元组的情况下,为所述第二动态键值;
所述第一下级动作项包括增加所述第一下级流表项的统计量,所述第二下级动作项包括增加所述第二下级流表项的统计量。
9.一种计算设备,其特征在于,包括:处理器以及存储器,其中,所述存储器用于存储指令,所述处理器用于运行所述存储器中的指令,以执行如权利要求8所述的方法。
10.一种计算集群,其特征在于,包括多个计算设备,其中,每个计算设备包括处理器以及存储器,所述存储器用于存储指令,所述处理器用于运行所述存储器中的指令,以执行如权利要求8所述的方法。
11.一种计算机可读存储介质,其特征在于,包括指令,所述指令被计算设备执行时,执行如权利要求8所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311754842.1A CN117439953B (zh) | 2023-12-20 | 2023-12-20 | 等价成本多路径选择系统、方法、设备、集群以及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311754842.1A CN117439953B (zh) | 2023-12-20 | 2023-12-20 | 等价成本多路径选择系统、方法、设备、集群以及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117439953A CN117439953A (zh) | 2024-01-23 |
CN117439953B true CN117439953B (zh) | 2024-03-26 |
Family
ID=89546589
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311754842.1A Active CN117439953B (zh) | 2023-12-20 | 2023-12-20 | 等价成本多路径选择系统、方法、设备、集群以及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117439953B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6434144B1 (en) * | 1998-07-06 | 2002-08-13 | Aleksey Romanov | Multi-level table lookup |
CN101515900A (zh) * | 2009-04-13 | 2009-08-26 | 武汉烽火网络有限责任公司 | 基于前缀覆盖级别的二分ip路由查找方法 |
CN104348716A (zh) * | 2013-07-23 | 2015-02-11 | 杭州华三通信技术有限公司 | 一种报文处理方法及设备 |
CN105099913A (zh) * | 2014-04-21 | 2015-11-25 | 杭州华三通信技术有限公司 | 一种报文转发方法及设备 |
CN105337857A (zh) * | 2015-11-23 | 2016-02-17 | 北京邮电大学 | 一种基于软件定义网络的多路径传输方法 |
CN109005120A (zh) * | 2018-10-31 | 2018-12-14 | 新华三技术有限公司 | 一种报文处理方法及网络设备 |
CN111800348A (zh) * | 2019-04-09 | 2020-10-20 | 中兴通讯股份有限公司 | 一种负载均衡方法和装置 |
CN112910792A (zh) * | 2018-08-30 | 2021-06-04 | 华为技术有限公司 | 报文处理的方法、装置及相关设备 |
WO2022048514A1 (zh) * | 2020-09-02 | 2022-03-10 | 中国移动通信有限公司研究院 | 数据包的传输方法及装置 |
CN116545921A (zh) * | 2023-05-31 | 2023-08-04 | 珠海星云智联科技有限公司 | 基于ecmp的报文转发方法、装置、设备及存储介质 |
-
2023
- 2023-12-20 CN CN202311754842.1A patent/CN117439953B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6434144B1 (en) * | 1998-07-06 | 2002-08-13 | Aleksey Romanov | Multi-level table lookup |
CN101515900A (zh) * | 2009-04-13 | 2009-08-26 | 武汉烽火网络有限责任公司 | 基于前缀覆盖级别的二分ip路由查找方法 |
CN104348716A (zh) * | 2013-07-23 | 2015-02-11 | 杭州华三通信技术有限公司 | 一种报文处理方法及设备 |
CN105099913A (zh) * | 2014-04-21 | 2015-11-25 | 杭州华三通信技术有限公司 | 一种报文转发方法及设备 |
CN105337857A (zh) * | 2015-11-23 | 2016-02-17 | 北京邮电大学 | 一种基于软件定义网络的多路径传输方法 |
CN112910792A (zh) * | 2018-08-30 | 2021-06-04 | 华为技术有限公司 | 报文处理的方法、装置及相关设备 |
CN109005120A (zh) * | 2018-10-31 | 2018-12-14 | 新华三技术有限公司 | 一种报文处理方法及网络设备 |
CN111800348A (zh) * | 2019-04-09 | 2020-10-20 | 中兴通讯股份有限公司 | 一种负载均衡方法和装置 |
WO2022048514A1 (zh) * | 2020-09-02 | 2022-03-10 | 中国移动通信有限公司研究院 | 数据包的传输方法及装置 |
CN116545921A (zh) * | 2023-05-31 | 2023-08-04 | 珠海星云智联科技有限公司 | 基于ecmp的报文转发方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117439953A (zh) | 2024-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9379982B1 (en) | Adaptive stateless load balancing | |
CN107438994B (zh) | 用于服务器负载均衡的方法、设备和计算机存储介质 | |
CN111064763B (zh) | 一种用于转发分组的方法及网络设备 | |
CN110278139B (zh) | 在计算机网络内转发分组的方法、网络设备及存储介质 | |
CN108462594B (zh) | 虚拟专有网络及规则表生成方法、装置及路由方法 | |
US9917891B2 (en) | Distributed in-order load spreading resilient to topology changes | |
WO2017117908A1 (zh) | 负荷分担的方法及装置 | |
US11165703B2 (en) | Prefix-based fat flows | |
WO2012109910A1 (zh) | 链路聚合选路方法及装置 | |
CN112311674B (zh) | 报文发送方法、装置及存储介质 | |
CN112953927B (zh) | 基于虚拟交换机中流表结构隔离的流表查询方法及系统 | |
CN117439953B (zh) | 等价成本多路径选择系统、方法、设备、集群以及介质 | |
CN109861912B (zh) | 优化用于电子设备内的虚拟节点的结构路径转发 | |
CN115361338B (zh) | 一种路由处理方法、装置及网络设备 | |
CN105471817B (zh) | 业务流的卸载方法、装置和系统 | |
CN116938829A (zh) | 一种数据转发方法及相关设备 | |
Sharma et al. | Vnf-aap: Accelerator-aware virtual network function placement | |
CN114401222A (zh) | 一种基于策略路由的数据转发方法、装置及存储介质 | |
CN117527689B (zh) | 流表卸载方法、系统、设备、集群以及介质 | |
WO2023169364A1 (zh) | 路由生成方法、数据报文的转发方法及装置 | |
RU2819422C1 (ru) | Способ и устройство для определения линии связи для переадресации потока услуг | |
US20240305580A1 (en) | Methods for switching network packets based on packet data and devices thereof | |
Hussein et al. | Enhancement Load Balance (ELB) Model for Port EtherChannel Technology | |
Ohta | Techniques to improve a flow diffusion algorithm for folded Clos networks | |
CN113225267B (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 |