CN110300064A - 一种数据流量处理方法、设备及系统 - Google Patents
一种数据流量处理方法、设备及系统 Download PDFInfo
- Publication number
- CN110300064A CN110300064A CN201810241895.6A CN201810241895A CN110300064A CN 110300064 A CN110300064 A CN 110300064A CN 201810241895 A CN201810241895 A CN 201810241895A CN 110300064 A CN110300064 A CN 110300064A
- Authority
- CN
- China
- Prior art keywords
- vxlan
- network equipment
- message
- sequence number
- value
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 19
- 238000000034 method Methods 0.000 claims abstract description 74
- 238000012545 processing Methods 0.000 claims description 60
- 238000003860 storage Methods 0.000 claims description 20
- 238000005538 encapsulation Methods 0.000 claims description 14
- 238000000151 deposition Methods 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 description 31
- 230000006870 function Effects 0.000 description 23
- 230000002776 aggregation Effects 0.000 description 14
- 238000004220 aggregation Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 230000003466 anti-cipated effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 241000406668 Loxodonta cyclotis Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000005303 weighing Methods 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/34—Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- 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
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2212/00—Encapsulation of packets
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种数据流量处理方法、设备及系统。所述方法包括,第一网络设备经由第一链路接收第二网络设备发送的第一VXLAN报文,所述第一VXLAN报文包括第一序列号以及第一业务报文。所述第一网络设备对所述第一VXLAN报文进行解封装。并且,所述第一网络设备经由第二链路接收所述第二网络设备发送的第二VXLAN报文,所述第二VXLAN报文包括第二序列号以及第二业务报文。当所述第一网络设备确定所述第二序列号是所述第一序列号的下一个序列号时,所述第一网络设备对所述第二VXLAN报文进行解封装。从而,减少报文乱序的情况和提高VXLAN隧道的带宽利用率。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种数据流量处理方法、设备及系统。
背景技术
虚拟扩展局域网(virtual extensible local area network,VXLAN)技术是一种将二层报文用三层协议进行封装的技术。VXLAN技术涉及MAC-in-UDP格式的报文。具体地,将基于媒体接入控制(Media Access Control,MAC)协议的以太网帧封装在用户数据报协议(user datagram protocol,UDP)报文中。进一步地,将UDP报文封装在因特网协议(Internet Protocol,IP)报文中。可以在三层网络中传输IP报文。因此,实现了以太网帧在三层网络中传送。VXLAN技术使用VXLAN网络标识符(VXLAN network identifier,VNI)标识VXLAN网段。不同的VXLAN网段分别对应不同的VNI。不同的VXLAN网段之间是隔离的。同一个VNI内的两个虚拟机(virtual machine,VM)可以直接通信。也就是说,同一个VNI内的两个VM进行通信时不需要经由VXLAN三层网关(VXLAN L3gateway)。分别位于不同VNI中的两个VM通信需要经由VXLAN三层网关。VNI字段包含24比特。一个管理域最多可以包含216个VXLAN网段。
VXLAN隧道端点(VXLAN tunnel end point,VTEP)设备是VXLAN中的边缘设备。VTEP设备通过VXLAN隧道传输VXLAN的流量。VXLAN隧道是指两个VTEP设备之间的点到点逻辑隧道。
在实际应用中,VXLAN隧道可以包括一条或多条链路。当VXLAN隧道包括多条链路时,作为发送端的VTEP设备通常采用逐流负载均衡方式向作为接收端的VTEP设备发送数据流量。然而,逐流负载均衡方式可能导致多条链路中不同链路的带宽利用率的差别较大。最终导致VXLAN隧道的带宽利用率不高。
发明内容
有鉴于此,本申请实施例提供了一种数据流量处理方法、设备及系统,实现数据流量按照逐包负载均衡方式在VXLAN隧道中传输。从而,有助于提高VXLAN隧道的带宽利用率。
本申请实施例提供的技术方案如下。
第一方面,提供了一种数据流量处理方法,所述数据流量处理方法应用在VXLAN中,所述VXLAN包括第一网络设备和第二网络设备,所述第一网络设备经由VXLAN隧道与所述第二网络设备连接,所述VXLAN隧道包括第一链路以及第二链路。所述方法包括,所述第一网络设备经由所述第一链路接收所述第二网络设备发送的第一VXLAN报文,所述第一VXLAN报文包括第一序列号以及第一业务报文,所述第一序列号指示所述第一业务报文在多个业务报文中的位置。所述第一网络设备对所述第一VXLAN报文进行解封装。并且,所述第一网络设备经由所述第二链路接收所述第二网络设备发送的第二VXLAN报文,所述第二VXLAN报文包括第二序列号以及第二业务报文,所述第二序列号指示所述第二业务报文在所述多个业务报文中的位置。在所述第一网络设备对所述第一VXLAN报文进行解封装之后,所述第一网络设备确定所述第二序列号是否为所述第一序列号的下一个序列号。当所述第一网络设备确定所述第二序列号是所述第一序列号的下一个序列号时,所述第一网络设备对所述第二VXLAN报文进行解封装。
基于实施例提供的方案,所述第一VXLAN报文经由所述第一链路传输。所述第二VXLAN报文经由所述第二链路传输。所述第一VXLAN报文包含所述第一序列号。所述第二VXLAN报文包含所述第二序列号。因此,上述技术方案采用了逐包负载均衡方式传输流量。相对于逐流负载均衡方式,本申请提供的技术方案有助于缩小第一隧道的带宽利用率和第二隧道的带宽利用率的差别。进而,有助于提高VXLAN隧道的带宽利用率。
另外,所述第二序列号是所述第一序列号的下一个序列号,表明所述第一网络设备发送所述第一VXLAN报文的时间早于所述第一网络设备发送所述第二VXLAN报文的时间。本申请的技术方案中,当所述第二序列号是所述第一序列号的下一个序列号时,无论所述第一VXLAN报文先于所述第二VXLAN报文到达所述第一网络设备,还是所述第一VXLAN报文后于所述第二VXLAN报文到达所述第一网络设备,所述第一网络设备先对所述第一VXLAN报文解封装,后对所述第二VXLAN报文解封装。因此,所述第一网络设备先获得所述第一业务报文,后获得所述第二业务报文。从而使得所述第一网络设备能够先发送所述第一业务报文,后发送所述第二业务报文。假设发送VM需要经由VXLAN向接收VM传输所述多个业务报文。发送VM发送第一业务报文的时间早于发送第二业务报文的时间。所述第二网络设备先接收到第一业务报文,后接收到第二业务报文。所述第二网络设备分别将第一业务报文和第二业务报文封装为第一VXLAN报文以及第二VXLAN报文。所述第二网络设备分别通过第一链路和第二链路向第一网络设备发送第一VXLAN报文以及第二VXLAN报文。第一VXLAN报文的发送时间早于第二VXLAN报文的发送时间。由于第一链路和第二链路的拥塞程度不同,第一VXLAN报文到达第一网络设备的时间晚于所述第二VXLAN报文到达第一网络设备的时间。第一网络设备基于第一序列号和第二序列号,对第一VXLAN报文进行解封装的时间早于对第二VXLAN报文进行解封装的时间。因此,第一网络设备先获得第一业务报文,后获得第二业务报文。进而,第一网络设备向接收VM发送多个业务报文时,可以先发送第一业务报文,后发送第二业务报文。从而有助于使得接收VM接收多个业务报文的顺序与发送VM发送多个业务报文的顺序。从而,上述技术方案有助于减少报文乱序的情况。
在第一方面的一种可能的实现方式中,所述方法还包括,当所述第一网络设备确定所述第二序列号不是所述第一网络设备已解封装的所述第一VXLAN报文中的所述第一序列号的下一个序列号时,所述第一网络设备将所述第二VXLAN报文存储到存储器中。
在第一方面的又一种可能的实现方式中,所述方法还包括,所述第一网络设备确定所述存储器中是否保存了第三VXLAN报文,所述第三VXLAN报文是所述第一网络设备经由所述第一链路或所述第二链路接收到的VXLAN报文,所述第三VXLAN报文包括第三序列号以及第三业务报文,所述第三序列号指示所述第三业务报文在所述多个业务报文中的位置,所述第三序列号为所述第一网络设备已解封装的所述第一VXLAN报文中的所述第一序列号的下一个序列号。当所述第一网络设备确定所述存储器中保存了第三VXLAN报文时,所述第一网络设备对所述第三VXLAN报文进行解封装。
在第一方面的再一种可能的实现方式中,所述方法还包括,当第四VXLAN报文在所述存储器中的停留时间大于或等于第一时间阈值时,所述第一网络设备确定第四序列号的值是否小于所述存储器中保存的其他VXLAN报文包含的序列号的值,并且所述第一网络设备确定所述第四序列号的值是否大于所述第一网络设备已解封装的所述第一VXLAN报文中的所述第一序列号的值,其中,所述第四VXLAN报文是所述第一网络设备经由所述第一链路或所述第二链路接收到的VXLAN报文,所述第四VXLAN报文包括所述第四序列号以及第四业务报文,所述第四序列号指示所述第四业务报文在所述多个业务报文中的位置。当所述第一网络设备确定所述第四序列号的值小于所述存储器中保存的其他VXLAN报文包含的序列号的值,并且所述第四序列号的值大于所述第一网络设备已解封装的所述第一VXLAN报文中的所述第一序列号的值时,所述第一网络设备对所述第四VXLAN报文进行解封装。
在第一方面的再一种可能的实现方式中,所述方法还包括,当第四VXLAN报文在所述存储器中的停留时间大于或等于第一时间阈值时,所述第一网络设备确定第四序列号的值是否大于所述存储器中保存的其他VXLAN报文包含的序列号的值,其中,所述第四VXLAN报文是所述第一网络设备经由所述第一链路或所述第二链路接收到的VXLAN报文,所述第四VXLAN报文包括所述第四序列号以及第四业务报文,所述第四序列号指示所述第四业务报文在所述多个业务报文中的位置。当所述第一网络设备确定所述第四序列号的值大于所述存储器中保存的其他VXLAN报文包含的序列号的值时,所述第一网络设备对所述第四VXLAN报文在所述存储器中的停留时间清零,并且对所述第四VXLAN报文在所述存储器中的停留时间重新计时。
在第一方面的再一种可能的实现方式中,所述方法还包括,当第四VXLAN报文在所述存储器中的停留时间大于或等于第一时间阈值时,所述第一网络设备确定第四序列号的值是否小于所述存储器中保存的其他VXLAN报文包含的序列号的值,并且所述第一网络设备确定所述第四序列号的值与所述第一网络设备已解封装的所述第一VXLAN报文中的所述第一序列号的值的差值的绝对值是否大于第一序列号阈值,其中,所述第四VXLAN报文是所述第一网络设备经由所述第一链路或所述第二链路接收到的VXLAN报文,所述第四VXLAN报文包括所述第四序列号以及第四业务报文,所述第四序列号指示所述第四业务报文在所述多个业务报文中的位置,所述第一序列号阈值的范围为[0.5N,N],其中,N表示所述第二网络设备发送VXLAN报文的序列号上限值。当所述第一网络设备确定所述第四序列号的值小于所述存储器中保存的其他VXLAN报文包含的序列号的值,并且所述第四序列号的值与所述第一网络设备已解封装的所述第一VXLAN报文中的所述第一序列号的值的差值的绝对值大于所述第一序列号阈值时,所述第一网络设备对所述第四VXLAN报文进行解封装。
第二方面,提供了数据流量处理方法,所述数据流量处理方法应用在虚拟扩展局域网VXLAN中,所述VXLAN包括第一网络设备和第二网络设备,所述第一网络设备经由VXLAN隧道与所述第二网络设备连接,所述VXLAN隧道包括第一链路以及第二链路。所述方法包括,所述第二网络设备接收来自虚拟机VM的多个业务报文,所述多个业务报文包括第一业务报文和第二业务报文。所述第二网络设备根据所述第一业务报文生成第一VXLAN报文,所述第一VXLAN报文包括第一序列号以及所述第一业务报文,所述第一序列号指示所述第一业务报文在所述多个业务报文中的位置。所述第二网络设备经由所述第一链路向所述第一网络设备发送所述第一VXLAN报文。所述第二网络设备根据所述第二业务报文生成第二VXLAN报文,所述第二VXLAN报文包括第二序列号以及所述第二业务报文,所述第二序列号指示所述第二业务报文在所述多个业务报文中的位置,所述第二序列号为所述第一序列号的下一个序列号。在所述第二网络设备经由所述第一链路向所述第一网络设备发送所述第一VXLAN报文之后,所述第二网络设备经由所述第二链路向所述第一网络设备发送所述第二VXLAN报文。
基于实施例提供的方案,在VXLAN中,实现数据流量按照有序的逐包负载均衡方式在VXLAN隧道中传输,从而,减少报文乱序的情况和提高VXLAN隧道的带宽利用率。
在上述第一方面或第二方面中,可选的,所述第一VXLAN报文包括VXLAN头,所述VXLAN头包括所述第一序列号。
在上述第一方面或第二方面中,可选的,所述第一VXLAN报文包括通用网络虚拟化封装GENEVE头,所述GENEVE头包括序列号类型长度值TLV,所述序列号TLV包括所述第一序列号。
在上述第一方面或第二方面中,可选的,所述第一VXLAN报文还包括第一数据流的标识,所述第一数据流包含所述多个业务报文。
第三方面,提供了一种第一网络设备,所述第一网络设备具有实现上述方法中第一网络设备行为的功能。所述功能可以基于硬件实现,也可以基于硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,第一网络设备的结构中包括处理器和接口,所述处理器被配置为支持第一网络设备执行上述方法中相应的功能。所述接口用于支持第一网络设备与第二网络设备之间的通信,向第二网络设备发送上述方法中所涉及的信息或者指令,或者从第二网络设备接收上述方法中所涉及的信息或者指令。所述第一网络设备还可以包括存储器,所述存储器用于与处理器耦合,其保存第一网络设备必要的程序指令和数据。
在另一个可能的设计中,所述第一网络设备包括:处理器、发送器、接收器、随机存取存储器、只读存储器以及总线。其中,处理器通过总线分别耦接发送器、接收器、随机存取存储器以及只读存储器。其中,当需要运行第一网络设备时,通过固化在只读存储器中的基本输入/输出系统或者嵌入式系统中的bootloader引导系统进行启动,引导第一网络设备进入正常运行状态。在第一网络设备进入正常运行状态后,在随机存取存储器中运行应用程序和操作系统,使得该处理器执行第一方面或第一方面的任意可能的实现方式中的方法。
第四方面,提供一种第一网络设备,所述第一网络设备包括:主控板和接口板,进一步,还可以包括交换网板。所述第一网络设备用于执行第一方面或第一方面的任意可能的实现方式中的方法。具体地,所述第一网络设备包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的模块。
第五方面,提供一种第一网络设备,所述第一网络设备包括控制器和第一转发子设备。所述第一转发子设备包括:接口板,进一步,还可以包括交换网板。所述第一转发子设备用于执行第四方面中的接口板的功能,进一步,还可以执行第四方面中交换网板的功能。所述控制器包括接收器、处理器、发送器、随机存取存储器、只读存储器以及总线。其中,处理器通过总线分别耦接接收器、发送器、随机存取存储器以及只读存储器。其中,当需要运行控制器时,通过固化在只读存储器中的基本输入/输出系统或者嵌入式系统中的bootloader引导系统进行启动,引导控制器进入正常运行状态。在控制器进入正常运行状态后,在随机存取存储器中运行应用程序和操作系统,使得该处理器执行第四方面中主控板的功能。
第六方面,提供了一种计算机存储介质,用于储存为上述第一网络设备所用的程序、代码或指令,当处理器或硬件设备执行这些程序、代码或指令时可以完成上述方面中第一网络设备的功能或步骤。
第七方面,提供了一种第二网络设备,所述第二网络设备具有实现上述方法中第二网络设备行为的功能。所述功能可以基于硬件实现,也可以基于硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,第二网络设备的结构中包括处理器和接口,所述处理器被配置为支持第二网络设备执行上述方法中相应的功能。所述接口用于支持第二网络设备与第一网络设备之间的通信,向第一网络设备发送上述方法中所涉及的信息或者指令,或者从第一网络设备接收上述方法中所涉及的信息或者指令。所述第二网络设备还可以包括存储器,所述存储器用于与处理器耦合,其保存第二网络设备必要的程序指令和数据。
在另一个可能的设计中,所述第二网络设备包括:处理器、发送器、接收器、随机存取存储器、只读存储器以及总线。其中,处理器通过总线分别耦接发送器、接收器、随机存取存储器以及只读存储器。其中,当需要运行第二网络设备时,通过固化在只读存储器中的基本输入/输出系统或者嵌入式系统中的bootloader引导系统进行启动,引导第二网络设备进入正常运行状态。在第二网络设备进入正常运行状态后,在随机存取存储器中运行应用程序和操作系统,使得该处理器执行第二方面或第二方面的任意可能的实现方式中的方法。
第八方面,提供一种第二网络设备,所述第二网络设备包括:主控板和接口板,进一步,还可以包括交换网板。所述第二网络设备用于执行第二方面或第二方面的任意可能的实现方式中的方法。具体地,所述第二网络设备包括用于执行第二方面或第二方面的任意可能的实现方式中的方法的模块。
第九方面,提供一种第二网络设备,所述第二网络设备包括控制器和第二转发子设备。所述第二转发子设备包括:接口板,进一步,还可以包括交换网板。所述第二转发子设备用于执行第八方面中的接口板的功能,进一步,还可以执行第八方面中交换网板的功能。所述控制器包括接收器、处理器、发送器、随机存取存储器、只读存储器以及总线。其中,处理器通过总线分别耦接接收器、发送器、随机存取存储器以及只读存储器。其中,当需要运行控制器时,通过固化在只读存储器中的基本输入/输出系统或者嵌入式系统中的bootloader引导系统进行启动,引导控制器进入正常运行状态。在控制器进入正常运行状态后,在随机存取存储器中运行应用程序和操作系统,使得该处理器执行第八方面中主控板的功能。
第十方面,提供了一种计算机存储介质,用于储存为上述第二网络设备所用的程序、代码或指令,当处理器或硬件设备执行这些程序、代码或指令时可以完成上述方面中第二网络设备的功能或步骤。
第十一方面,提供一种网络系统,所述网络系统包括第一网络设备和第二网络设备,所述第一网络设备为前述第三方面或第四方面或第五方面中的第一网络设备,所述第二网络设备为前述第七方面或第八方面或第九方面中的第二网络设备。
通过上述方案,本申请实施例提供的数据流量处理方法、设备及系统。应用在VXLAN场景中,第二网络设备经由VXLAN隧道包括的多条链路以逐包负载均衡方式向所述第一网络设备传输多个VXLAN报文,所述多个VXLAN报文携带的负载属于同一个数据流。所述多个VXLAN报文中的每个VXLAN报文包括序列号。相应的,所述第一网络设备在接收到所述第二网络设备发送的VXLAN报文后,根据该VXLAN报文携带的序列号和所述第一网络设备保存的当前序列号处理该VXLAN报文。从而,序列号被应用到VXLAN报文的传输中,实现数据流量按照有序的逐包负载均衡方式在VXLAN隧道中传输,从而,减少报文乱序的情况和提高VXLAN隧道的带宽利用率。
附图说明
图1为本申请实施例的一种网络结构示意图;
图2为本申请实施例的另一种网络结构示意图;
图3为本申请实施例的一种数据流量处理方法流程图;
图4为本申请实施例的一种应用场景示意图;
图5为本申请实施例的一种VXLAN头的格式图;
图6为本申请实施例的一种GENEVE头的格式图;
图7为本申请实施例的另一种GENEVE头的格式图;
图8为本申请实施例的第一网络设备的结构示意图;
图9为本申请实施例的第一网络设备的硬件结构示意图;
图10为本申请实施例的另第一网络设备的硬件结构示意图;
图11为本申请实施例的第二网络设备的结构示意图;
图12为本申请实施例的第二网络设备的硬件结构示意图;
图13为本申请实施例的另第二网络设备的硬件结构示意图。
具体实施方式
下面通过具体实施例,分别进行详细的说明。
图1为本申请实施例的一种网络结构示意图。所述网络可以是虚拟扩展局域网(virtual extensible local area network,VXLAN)。所述网络包括第一网络设备和第二网络设备。所述第一网络设备与所述第二网络设备之间的通信网络可以是IP网络。具体的,所述第一网络设备经由第一链路与所述第二网络设备通信,并且,所述第一网络设备经由第二链路与所述第二网络设备通信。所述第一链路上还包括汇聚节点1(spine node 1),所述第二链路上还包括汇聚节点2(spine node 1)。因此,所述第二网络设备可以经由所述第一链路和汇聚节点1向所述第一网络设备发送数据流量,所述第二网络设备还可以经由所述第二链路和汇聚节点2向所述第一网络设备发送数据流量。
所述第一网络设备与所述第二网络设备之间建立有VXLAN隧道。所述VXLAN隧道包括所述第一链路和所述第二链路。所述VXLAN隧道是所述第一网络设备与所述第二网络设备之间的逻辑隧道,具体的,所述VXLAN隧道是承载在IP链路(第一链路和第二链路)上的逻辑隧道。为了更加形象的体现出VXLAN隧道与第一链路和第二链路的关联性,图1的网络结构可以被形象的展示为图2所示的网络结构。图2可以被理解为省略了汇聚节点1和汇聚节点2,而展现出VXLAN隧道、第一链路和第二链路的网络结构示意图。图1和图2展示出所述VXLAN隧道包括两条链路,应当理解,所述VXLAN隧道包括的链路可以多于两条。并且,所述VXLAN隧道包括的链路均可以按照上述第一链路和第二链路的结构进行实现。
在实际应用场景中,所述第一网路设备和所述第二网络设备可以被称为运营商边缘(provider edge,PE)设备,具体的,所述第一网路设备和所述第二网络设备分别可以包括路由器或三层交换机。在本申请实施例中,所述第一网路设备和所述第二网络设备分别位于所述VXLAN隧道的两端,因此,所述第一网路设备和所述第二网络设备可以被称为VTEP设备。在VXLAN的应用场景中,VTEP设备也可以称为网络虚拟边缘(networkvirtualization edge,NVE)设备。在一些应用场景中,VTEP设备被理解为集成在NVE设备中的模块。本申请中,在不进行特殊说明的情况下,VTEP设备等同于NVE设备。
汇聚节点1和汇聚节点2可以包括路由器或三层交换机。汇聚节点1和汇聚节点2用于接收来自所述第一网络设备的流量数据,并向所述第二网络设备转发;或者汇聚节点1和汇聚节点2用于接收来自所述第二网络设备的流量数据,并向所述第一网络设备转发。图1所示的网络结构可以应用在数据中心(data center,DC)中,即,DC包括图1所示的网络设备。所述第一网络设备和所述第二网络设备可以通过汇聚节点1和汇聚节点2与DC之外的网络节点进行通信。在一种可能的实现方式中,所述第一链路上和/或所述第二链路上还可以包括其他网络设备。例如,所述第一网络设备经由第一链路、第三网络设备和汇聚节点1与所述第二网络设备通信。在另一种可能的实现方式中,所述第一链路上和/或所述第二链路上不包括任何网络设备。例如,图2所示,所述第一网络设备和第二网络设备经由第一链路和第二链路直接通信。
所述第一网络设备和第二网络设备可以连接VM,如图1所示,所述第一网络设备连接有VM1和VM2,所述第二网络设备连接有VM3和VM4。从而,所述第一网络设备可以从VM1或VM2接收数据流量,并通过所述VXLAN隧道向所述第二网络设备转发,或者,所述第一网络设备经由所述VXLAN隧道接收来自所述第二网络设备的数据流量,并将该数据流量下发给VM1或VM2。类似的,所述第二网络设备可以执行相同操作,此处不进行赘述。其中,VM可以被称为主机。具体的,VM可以是路由器或交换机。并且本申请对VM的数量不进行限定,所述第一网络设备可以连接多台VM。VM可以运行在服务器中。一台服务器可以包含至少一台VM。在一种可能的实现方式中,一台服务器可以包括多个VM。不同的VM可以属于不同的VXLAN网段。
在图1所示的网络中,所述VXLAN隧道包括所述第一链路和所述第二链路。所述第一链路和所述第二链路用于以负载均衡方式传输数据流量。在本申请的后续实施例中,以所述第二网络设备向所述第一网络设备发送数据流量为例进行解释说明。应当理解,所述第一网络设备向所述第二网络设备发送数据流量的情况可以采用相同的实现方式。
在图1所示的网络中,所述第二网络设备可以经由所述第一链路和所述第二链路以逐流负载均衡方式向所述第一网络设备传输数据流量。所述逐流负载均衡方式是指以数据流为单位进行负载均衡。所述第二网络设备接收VM3或VM4发送的多个业务报文,所述多个业务报文属于同一条数据流。我们将该数据流命名为数据流01。所述第二网络设备接收来自VM3或VM4的所述多个业务报文,根据VXLAN协议,将所述多个业务报文中的每个业务报文封装为VXLAN报文。因此,在本申请中,VXLAN报文包括业务报文,并且,所述VXLAN报文中的业务报文均属于数据流01。所述第二网络设备经由所述第一链路向所述第一网络设备发送所述多个VXLAN报文。由于采用逐流负载均衡方式,所述多个VXLAN报文不会被分担到所述第二链路上传输。也就是说,属于数据流01的多个业务报文仅经由VXLAN隧道中的一条链路由所述第一网络设备传输到所述第二网络设备。假设此时所述第二网络设备还接收到VM3或VM4发送的属于另一条数据流的多个业务报文。我们将该数据流命名为数据流02。所述第二网络设备在接收到属于数据流02的多个业务报文后,根据逐流负载均衡方式,将属于数据流02的多个业务报文封装为多个VXLAN报文,并经由所述第二链路发送到所述第一网络设备。采用逐流负载均衡方式,由于属于同一个数据流的业务报文只在一条链路上传输,不会产生乱序。但是,这种方式可能导致VXLAN隧道带宽的浪费。例如,所述第一链路上传输的数据流01的数据量大于所述第二链路上传输的数据流02的数据量。这样,当所述第二链路传输数据流02完成后,所述第一链路仍然在传输数据流01。这将导致所述第二链路空闲,从而导致VXLAN隧道的带宽浪费。
在图1所示的网络中,假设所述第二网络设备经由所述第一链路和所述第二链路以逐包负载均衡方式向所述第一网络设备传输数据流量。所述逐流负载均衡方式是指以报文为单位进行负载均衡。所述第二网络设备在接收到属于数据流01的多个业务报文后,根据VXLAN协议,将多个业务报文封装为多个VXLAN报文。每个VXLAN报文包括的业务报文均属于数据流01。所述第二网络设备按照逐包负载均衡方式经由所述第一链路向所述第一网络设备发送所述多个VXLAN报文。属于同一个数据流的业务报文将在两条链路上传输,由于两条链路的带宽、时延、丢包率和抖动不同,无法保证所述多个VXLAN报文按照原有的发送顺序被接收端连接的VM接收。因此,传统的逐包负载均衡方式应用到VXLAN中,将会导致报文乱序。
本申请实施例提供了一种数据流量处理方法、设备及系统,实现数据流量按照有序的逐包负载均衡方式在VXLAN隧道中传输,从而,减少报文乱序的情况和提高VXLAN隧道的带宽利用率。如图1所示,所述第二网络设备经由所述第一链路和所述第二链路以逐包负载均衡方式向所述第一网络设备传输多个VXLAN报文,所述多个VXLAN报文携带的业务报文属于同一个数据流。所述多个VXLAN报文中的每个VXLAN报文包括序列号,所述序列号用于指示所述多个VXLAN报文中的每个VXLAN报文携带的业务报文在多个业务报文中的位置。所述第一网络设备在接收到所述第二网络设备发送的VXLAN报文后,根据该VXLAN报文携带的序列号和所述第一网络设备中的最新解封装的VXLAN报文的序列号处理该VXLAN报文。其中该VXLAN报文携带的业务报文和最新解封装的VXLAN报文携带的业务报文属于同一数据流。所述同一数据流包含所述多个业务报文。举例来说,所述同一数据流可以是一个VM向另一个VM发送的数据流。例如,VM0向VM1发送的数据流是一个数据流。VM0向VM2发送的数据流是另一个数据流。再例如,当一个VM向另一个VM发送的数据流包含不同类型的数据流时,所述同一数据流可以是某一类型的数据流。例如,VM0向VM1发送的数据流包括语音流和视频流。VM0向VM1发送的语音流是一个数据流。VM0向VM1发送的视频流是另一个数据流。
举例说明,所述第一网络设备已经对VXLAN报文01解封装,并且,所述VXLAN报文01为所述第一网络设备最新解封装的VXLAN报文。所述第一网络设备在接收到VXLAN报文02后,根据VXLAN报文02包括的序列号和VXLAN报文01包括的序列号对VXLAN报文02进行处理。其中VXLAN报文02包括的业务报文与VXLAN报文01包括的业务报文属于同一个数据流。
相应的,在VXLAN中,所述第一网络设备和所述第二网络设备利用序列号实现逐包负载均衡方式的数据流传输的实现方式参见后续实施方式的说明。
图3为本申请实施例的一种数据流量处理方法流程图。图3所示的方法可以应用在图1或图2所示的网络结构中。具体的,所述数据流量处理方法应用在VXLAN中,所述VXLAN包括第一网络设备和第二网络设备,所述第一网络设备经由VXLAN隧道与所述第二网络设备连接,所述VXLAN隧道包括第一链路以及第二链路。该方法包括:
S101、所述第二网络设备接收来自VM的多个业务报文,所述多个业务报文包括第一业务报文和第二业务报文。
在本申请实施例中,以所述第二网络设备经由所述VXLAN隧道向所述第一网络设备发送数据流量为例进行说明。如图1所示,所述第二网络设备接收来自VM3或VM4的多个业务报文,并且所述多个业务报文被希望发送到所述第一网络设备连接的VM1或VM2。所述多个业务报文属于同一个数据流。所述多个业务报文包括第一业务报文和第二业务报文。为了说明方便,本申请实施例中,以VM3作为源端和以VM1作为目的端进行说明。相应的,在本申请实施例中,所述多个业务报文所属的数据流被命名为数据流01。因此,数据流01的源MAC地址是VM3的MAC地址,目的MAC地址是VM1的MAC地址;数据流01的源IP地址是VM3的IP地址,目的IP地址是VM1的IP地址。其中,数据流01包括所述多个业务报文。本申请对数据流01的类型定义不进行限定。在一种可能的实现方式中,可以根据目的地址定义数据流01的类型,例如,目的地为VM1的数据流量属于数据流01。在另一种可能的实现方式中,可以根据业务类型定义数据流01的类型,例如,视频流属于数据流01或者语音流属于数据流01。
S102、所述第二网络设备根据所述第一业务报文生成第一VXLAN报文,所述第一VXLAN报文包括第一序列号以及所述第一业务报文,所述第一序列号指示所述第一业务报文在所述多个业务报文中的位置。
所述第二网络设备在接收到来自VM3的多个业务报文后,根据VXLAN协议对所述多个业务报文进行VXLAN封装。具体的,所述第二网络设备根据VXLAN协议,将属于数据流01的多个业务报文中的每个业务报文封装为VXLAN报文,生成多个VXLAN报文。其中,所述多个VXLAN报文中的每个VXLAN报文包括有载荷,所述载荷包括业务报文。因此,所述多个VXLAN报文携带的业务报文均属于数据流01。
在本申请实施例中,所述第二网络设备在接收到所述第一业务报文后,所述第二网络设备根据所述第一业务报文生成第一VXLAN报文。所述第一VXLAN报文包括VXLAN头,所述VXLAN头包括VNI,所述VNI用于标识VXLAN网段。本申请实施例中,为了简化说明,设定VM3和VM1属于同一VXLAN网段,例如VNI的值均为VNI_10。第一VXLAN报文还包括源VTEP地址和目的VTEP地址。其中,所述源VTEP地址为所述第二网络设备的VTEP地址,所述目的VTEP地址为所述第一网络设备的VTEP地址。其中,VTEP地址包括IP地址。源VTEP地址和目的VTEP地址确保了所述第一VXLAN报文可以经由所述第二网络设备与所述第一网络设备之间的VXLAN隧道传输。
在本申请实施例中,所述第一VXLAN报文还包括第一序列号以及所述第一业务报文。所述第一序列号用于指示所述第一VXLAN报文携带的所述第一业务报文在所述多个业务报文中的位置。也就是说,所述第一序列号指示了所述第一VXLAN报文封装的所述第一业务报文在数据流01中的位置。例如,序列号的起始值为1,序列号的第一步长值为1。所述第一序列号的值为5,表示所述第一VXLAN报文封装的所述第一业务报文是数据流01中的第5个业务报文。
可选的,所述第二网络设备保存有当前序列号。为了区分后续提及的所述第一网络设备保存的当前序列号,我们将所述第二网络设备保存的当前序列号称为第一当前序列号。所述第一当前序列号的值表示了所述第二网络设备封装当前VXLAN报文时,使用的序列号的值。例如,所述第一当前序列号的值为5,则所述第二网络设备封装的VXLAN报文中携带的序列号的值为5。当所述第二网络设备封装完序列号为5的VXLAN报文后,自动将所述第一当前序列号增加第一步长,以便所述第一当前序列号用于封装下一个VXLAN报文。例如,第一步长为1,当所述第二网络设备封装完序列号为5的VXLAN报文后,自动将所述第一当前序列号的值更新为6,以便所述第二网络设备封装序列号为6的VXLAN报文。其中,本申请对序列号的初始值和第一步长的值不进行限定,例如可以为任意正整数。
在一种可能的实现方式中,所述第一序列号被携带在所述第一VXLAN报文的VXLAN头中。如图5所示,VXLAN头包括序列号字段,所述序列号字段用于携带所述第一序列号。所述VXLAN头还包括使能标志位,所述使能标志位被置为1时,表示所述序列号字段有效。如图5中所示的“S”用于实现所述使能标志位。
在另一种可能的实现方式中,所述第一VXLAN报文的封装格式还可以根据通用网络虚拟化封装(generic network virtualization encapsulation,GENEVE)协议进行封装。具体的,所述第一VXLAN报文包括GENEVE头。所述GENEVE头的格式可以按照图6的方式实现。所述GENEVE头包括版本(version)字段、可选长度(options length)字段、协议类型(protocol type)字段、标志位(O和C)、VNI字段和预留字段。上述字段的定义可以参见因特网工程任务组(Internet Engineering Task Force,IETF)的工作组草案:draft-ietf-nvo3-geneve的相关说明。
如图6所示,所述GENEVE头还包括序列号类型长度值(type-length-value,TLV)。所述序列号TLV用于携带序列号。具体的,所述序列号TLV可以包括可选分类(optionsclass)字段、类型(type)字段、长度(length)字段、标志位(R,R,R)和序列号字段。其中,所述可选分类字段用于指示GENEVE的可选类型,在本申请实施例中可以用于指示该TLV是序列号TLV。所述类型字段用于指示序列号TLV中包含的数据格式。所述长度字段用于指示所述序列号TLV的长度。所述标志位为预留控制位。该标志位可以用于使能序列号字段,例如该标志位中的某一位被设置为1时表示序列号字段有效。所述序列号字段用于携带序列号的值。
本申请实施例中以一条数据流(数据流01)为例进行说明。应当理解,采用本申请实施例的方法可以传送多条数据流。当传送多条数据流时,第一VXLAN报文可以携带数据流的标识,所述标识用于标识该数据流。在本申请实施例中,数据流的标识可以被称作流标识。
在一种可能的实现方式中,所述第一VXLAN报文包括有VXLAN头(如图5所示)。所述第二网络设备在生成所述第一VXLAN报文时,可以对所述第一VXLAN报文的内层报文的流信息进行哈希计算,将哈希计算的结果作为流标识。其中,所述第一VXLAN报文的内层报文的流信息是指所述第一VXLAN报文的载荷的流信息,也就是所述第一业务报文的流信息。所述流信息可以包括以下信息的一个或多个:源IP地址、目的IP地址、源端口号、目的端口号和传输协议。所述第二网络设备将哈希计算的结果携带在所述第一VXLAN报文的UDP头中,并且将哈希计算的结果携带在UDP头中的源端口字段中。如此这样,所述UDP头在本申请实施例中被复用,一方面被用来指示源端口号,另一方面被用来指示所述第一业务报文所属的数据流。
在另一种可能的实现方式中,所述第一VXLAN报文包括有GENEVE头(如图6所示)。所述第二网络设备可以采用上述相同的方式,通过哈希算法计算所述第一VXLAN报文的内层报文的流信息。然后,所述第二网络设备将哈希计算的结果作为流标识,携带在GENEVE头中的序列号TLV中,如图7所示。图7所示的GENEVE头的格式相对于图6,增加了流标识字段。所述流标识字段用于携带所述第一VXLAN报文中的所述第一业务报文所属数据流的流标识。另外,图7中的标志位中的任意一位可以用于指示所述流标识字段是否有效。
S103、所述第二网络设备经由第一链路向所述第一网络设备发送所述第一VXLAN报文。
S104、所述第一网络设备经由所述第一链路接收所述第二网络设备发送的所述第一VXLAN报文。
所述第二网络设备生成所述第一VXLAN报文后,可以经由所述VXLAN隧道向所述第一网络设备发送所述第一VXLAN报文。具体的,所述第二网络设备可以经由所述VXLAN隧道包括的第一链路或第二链路发送所述第一VXLAN报文。本申请实施例以所述第二网络设备经由所述第一链路发送所述第一VXLAN报文为例进行说明。相应的,所述第一网络设备经由所述第一链路接收所述第一VXLAN报文。
S105、所述第一网络设备对所述第一VXLAN报文进行解封装。
所述第一网络设备在获取所述第一VXLAN报文后,可以根据所述第一VXLAN报文携带的所述第一序列号对所述第一VXLAN报文进行处理。具体的,所述第一网络设备根据所述第一序列号确定是否对所述第一VXLAN报文进行解封装。所述第一网络设备根据所述第一序列号对所述第一VXLAN报文的处理过程可以参见本申请后续实施方式中对第二VXLAN报文的描述。
在本申请实施方式中,假设所述第一网络设备根据所述第一序列号确定对所述第一VXLAN报文进行解封装。在一种可能的实现方式中,所述第一VXLAN报文包括的所述第一业务报文是所述多个业务报文中的第一个业务报文,例如,所述第一业务报文是业务流01的首包。所述第一网络设备解封装所述第一VXLAN报文。在另一种可能的实现方式中,所述第一VXLAN报文携带的所述第一序列号是所述第一网络设备中已经解析的VXLAN报文包括的序列号的下一个序列号。例如,所述第一网络设备当前已经解析的VXLAN报文包括的序列号的值为5,所述第一VXLAN报文携带的所述第一序列号的值为6。因此,所述第一序列号是值为5的序列号的下一个序列号。所述第一网络设备解封装所述第一VXLAN报文。
S106、所述第二网络设备根据所述第二业务报文生成第二VXLAN报文,所述第二VXLAN报文包括第二序列号以及所述第二业务报文,所述第二序列号指示所述第二业务报文在所述多个业务报文中的位置,所述第二序列号为所述第一序列号的下一个序列号。
在本申请实施例中,所述第二网络设备还从VM3接收第二业务报文,所述第二业务报文是所述多个业务报文中的一个。也就是说,所述第一业务报文和所述第二业务报文均属于数据流01。在本申请实施方式中,所述第二业务报文是所述第一业务报文的下一个业务报文。所述第二网络设备在接收到所述第二业务报文后,所述第二网络设备根据所述第二业务报文生成第二VXLAN报文。所述第二网络设备生成第二VXLAN报文的实现方式可以参见前述第一VXLAN报文的实现方式,此处不进行赘述。
所述第二VXLAN报文携带的第二序列号是所述第一VXLAN报文携带的第一序列号的下一个序列号。也就是说,所述第一序列号和所述第二序列号是连续的序列号。例如,第一序列号的值为5,序列号的步长值为1,则第二序列号的值为6。或者,第一序列号的值为5,序列号的步长值为2,则第二序列号的值为7。
举例说明,根据前述S102的说明,所述第二网络设备在生成所述第一VXLAN报文后,所述第二网络设备还将所述第一当前序列号的值增加第一步长的值。也就是说,所述第二网络设备在生成所述第一VXLAN报文的下一个VXLAN报文(例如,第二VXLAN报文)之前,执行更新所述第一当前序列号的值。另外,所述第一步长的具体取值可以由所述第一网络设备和所述第二网络设备协商确定;或者,所述第二网络设备确定所述第一步长的值,并且通告所述第一网络设备;或者,由网络管理员直接在所述第一网络设备和所述第二网络设备上直接配置;或者,直接使用所述第一网络设备和所述第二网络设备的默认值(例如:第一步长的默认值为1)。可选的,所述第二网络设备发送的数据流01的第一个VXLAN报文的序列号的值设置为所述第一步长的值。
S107、在所述第二网络设备经由所述第一链路向所述第一网络设备发送所述第一VXLAN报文之后,所述第二网络设备经由第二链路向所述第一网络设备发送所述第二VXLAN报文。
S108、所述第一网络设备经由所述第二链路接收所述第二网络设备发送的所述第二VXLAN报文。
根据本申请实施方式的前述说明,所述第一VXLAN报文包括所述第一业务报文,所述第二VXLAN报文包括所述第二业务报文。所述第一业务报文和所述第二业务报文属于同一个数据流,例如数据流01。所述第一VXLAN报文和所述第二VXLAN报文在不同的链路上进行传输,从而实现经由所述第一链路和所述第二链路以逐包负载均衡方式发送多个VXLAN报文。所述第一VXLAN报文还包括所述第一序列号,所述第二VXLAN报文还包括所述第二序列号,确保所述第一网络设备在接收到来自同一数据流的不同VXLAN报文时,根据序列号对VXLAN报文进行处理。
在应用场景中,所述第二网络设备根据接收到的所述多个业务报文生成多个VXLAN报文,并且以逐包负载均衡方式经由所述第一链路和所述第二链路发送所述多个VXLAN报文。下面以图4为例对所述第二网络设备发送VXLAN报文的实施方式进行说明。相对于图1所示的网络结构,在图4中增加了VXLAN报文的传输的具体实现。
如图4所示,所述第一链路和所述第二链路上显示的方框1-方框4表示4个VXLAN报文,方框中的数字表示该VXLAN报文的序列号,并且,所述4个VXLAN报文均属于数据流01。应当理解,本申请实施例中提及的第一VXLAN报文和第二VXLAN报文可以是图4中所示的4个VXLAN报文中的任意VXLAN报文。为说明方便,我们将图4所示的4个VXLAN报文分别称为VXLAN报文01、VXLAN报文02、VXLAN报文03和VXLAN报文04,其中名称中的数字部分对应相应的序列号。在本申请实施例中,所述第一步长示例性的被设置为1,所述第一当前序列号的初始值为1。
根据前述实施方式的说明,所述第二网络设备接收到多个业务报文后,将多个业务报文中的第一个业务报文封装为VXLAN报文01。其中,业务流01包括所述多个业务报文。所述第一当前序列号的值为1,因此VXLAN报文01携带的序列号为1。所述第二网络设备通过哈希计算确定使用所述第一链路发送VXLAN报文01。并且,所述第二网络设备将所述第一当前序列号增加所述第一步长,即将所述第一当前序列号的值由1更新为2。然后,所述第二网络设备将数据流01中的第二个业务报文封装为VXLAN报文02。所述第一当前序列号的值已经更新为2,因此VXLAN报文02携带的序列号为2。所述第二网络设备通过哈希计算确定使用所述第二链路发送VXLAN报文02。并且,继续将所述第一当前序列号的值由2更新为3。同样的实现方式,所述第二网络设备向所述第一网络设备发送VXLAN报文03和VXLAN报文04。从而,所述第二网络设备可以通过在VXLAN报文中插入序列号的方式,实现数据流01中的业务报文在VXLAN隧道中的不同链路上进行负载均衡的传输。根据前述实施方式的说明,VXLAN报文中可以携带流标识,从而区分不同的数据流。从而,所述第二网络设备可以同时发送不同的数据流,并且不同数据流之间的序列号可以重叠。
S109、在所述第一网络设备对所述第一VXLAN报文进行解封装之后,所述第一网络设备确定所述第二序列号是否为所述第一序列号的下一个序列号。
S110、当所述第一网络设备确定所述第二序列号是所述第一序列号的下一个序列号时,所述第一网络设备对所述第二VXLAN报文进行解封装。
为了和所述第二网络设备保存的当前序列号区别,我们将所述第一网络设备保存的当前序列号称为第二当前序列号。所述第一网络设备在接收到所述第二VXLAN报文后,获取所述第二VXLAN报文携带的所述第二序列号。然后,所述第一网络设备根据所述第二序列号与所述第二当前序列号处理所述第二VXLAN报文。其中,所述第二当前序列号是所述第一网络设备最新解封装的所述数据流中的VXLAN报文的序列号。所述最新解封装的所述数据流中的VXLAN报文是指:所述第一网络设备接收到的、所述第二VXLAN报文的前一个VXLAN报文,所述前一个VXLAN报文与所述第二VXLAN报文均属于数据流01,并且所述前一个VXLAN报文被所述第一网络设备成功解封装。根据本申请前述实施方式,所述前一个VXLAN报文可以是所述第一VXLAN报文,所述第二当前序列号为所述第一序列号。所述第一网络设备对所述第二VXLAN报文的处理可以包括解封装所述第二VXLAN报文,并转发所述第二VXLAN报文包括的所述第二业务报文,或者缓存所述第二VXLAN报文。具体的,所述第一网络设备确定所述第二序列号与所述第二当前序列号是否连续,也就是说,所述第一网络设备确定所述第二序列号是否为所述第一序列号的下一个序列号。可选的,当所述第一网络设备确定所述第二序列号为所述第一序列号的下一个序列号,则所述第一网络设备解封装所述第二VXLAN报文,并将解封装后的所述第二业务报文转发到目的端。当所述第一网络设备确定所述第二序列号不是所述第一序列号的下一个序列号,则所述第一网络设备将所述第二VXLAN报文缓存到所述第一网络设备的存储器内。
继续以图4为例进行说明,其中,假设所述第二当前序列号的初始值为0,第一步长的值为1。假设所述第一网络设备首先接收到VXLAN报文01。所述第一网络设备获取VXLAN报文01的序列号为1,并且所述第一网络设备确定所述第二当前序列号的值为0,因此,所述第一网络设备可以确定VXLAN报文01的序列号与所述第二当前序列号是连续的。所述第一网络设备根据确定的结果,解封装VXLAN报文01,并且转发VXLAN报文01中包括的业务报文。如此这样,所述第一网络设备可以确定VXLAN报文01是最新解封装的数据流01中的VXLAN报文,因此,所述第一网络设备将所述第二当前序列号更新为VXLAN报文01的序列号的值。如果所述第一网络设备接收到的下一个VXLAN报文是VXLAN报文02,则所述第一网络设备可以按照上述相同的处理方式处理VXLAN报文02。
假设在接收到VXLAN报文01之后,所述第一网络设备接收到的下一个VXLAN报文是VXLAN报文03。所述第一网络设备获取VXLAN报文03的序列号为3,并且所述第一网络设备确定所述第二当前序列号的值为1,因此,所述第一网络设备可以确定VXLAN报文03的序列号与所述第二当前序列号不是连续的,也就是说,VXLAN报文03的序列号不是VXLAN报文01的序列号的下一个序列号。所述第一网络设备根据确定的结果,缓存VXLAN报文03。并且,VXLAN报文03不是所述第一网络设备最新解封装的数据流01中的VXLAN报文,因此,所述第一网络设备不会将所述第二当前序列号更新为VXLAN报文03的序列号的值。可选的,所述第一网络设备在接收到VXLAN报文02,并且成功解封装VXLAN报文02后,所述第一网络设备解封装缓存的VXLAN报文03。
根据前述实施方式的说明,当所述第一网络设备接收到不同数据流的VXLAN报文时,可以根据流标识识别VXLAN报文所属的数据流,从而根据上述方法实现多个数据流的处理。
所述VXLAN隧道包括的多条链路可以被称为等价多路径(equal and weightedcost multi-path,ECMP)链路。ECMP也可以被表述为equal cost multi-path。如图1所示,ECMP链路包括第一链路和第二链路。
本实施例提供的数据流量处理方法,所述第二网络设备经由VXLAN隧道包括的多条链路以逐包负载均衡方式向所述第一网络设备传输多个VXLAN报文,所述多个VXLAN报文携带的负载属于同一个数据流。所述多个VXLAN报文中的每个VXLAN报文包括序列号。相应的,所述第一网络设备在接收到所述第二网络设备发送的VXLAN报文后,根据该VXLAN报文携带的序列号和所述第一网络设备保存的当前序列号处理该VXLAN报文。通过实施例提供的方法,序列号被应用到VXLAN报文的传输中,实现数据流量按照有序的逐包负载均衡方式在VXLAN隧道中传输,从而,减少报文乱序的情况和提高VXLAN隧道的带宽利用率。
可选的,当所述第一网络设备确定所述第二序列号不是所述第一网络设备已解封装的所述第一VXLAN报文中的所述第一序列号的下一个序列号时,所述第一网络设备将所述第二VXLAN报文存储到存储器中。
结合上述实施方式举例说明,所述第一网络设备确定所述第二序列号与所述第二当前序列号是否连续的具体实现方式是,所述第一网络设备确定所述第二序列号的值减去所述第二当前序列号的值的结果是否等于所述第一步长。当结果等于所述第一步长时,所述第一网络设备可以按照S110中的实现方式解封装所述第二VXLAN报文和将所述第二当前序列号的值更新为所述第二序列号的值。当结果不等于所述第一步长时,所述第一网络设备可以将所述第二VXLAN报文保存到存储器中。
举例说明,如图4所示,所述第一网络设备接收到VXLAN报文01后,确定VXLAN报文01的序列号的值(值为1)减去所述第二当前序列号的值(值为0)的结果等于所述第一步长(值为1),因此所述第一网络设备解封装VXLAN报文01和将所述第二当前序列号的值更新为VXLAN报文01的序列号的值。然后,所述第一网络设备接收到VXLAN报文03。所述第一网络设备确定VXLAN报文03的序列号的值(值为3)减去所述第二当前序列号的值(值为1)的结果不等于所述第一步长(值为1),因此所述第一网络设备将VXLAN报文03保存到存储器中。
可选的,所述第一网络设备确定所述存储器中是否保存了第三VXLAN报文,所述第三VXLAN报文是所述第一网络设备经由所述第一链路或所述第二链路接收到的VXLAN报文,所述第三VXLAN报文包括第三序列号以及第三业务报文,所述第三序列号指示所述第三业务报文在所述多个业务报文中的位置,所述第三序列号为所述第一网络设备已解封装的所述第一VXLAN报文中的所述第一序列号的下一个序列号,或者所述第三序列号为所述第一网络设备已解封装的所述第二VXLAN报文中的所述第二序列号的下一个序列号。当所述第一网络设备确定所述存储器中保存了第三VXLAN报文时,所述第一网络设备对所述第三VXLAN报文进行解封装。
根据前述实施方式的说明,所述第一网络设备根据接收到的VXLAN报文的序列号和所述第二当前序列号,判断接收到的VXLAN报文是否为所述第一网络设备已经解封装的VXLAN报文的连续报文。当所述第一网络设备接收到的VXLAN报文不是连续报文时,将接收到的VXLAN报文缓存到存储器中。因此,所述存储器中可能缓存有一个或多个不连续的VXLAN报文。在一种实现方式中,假设所述第一网络设备已经对所述第二VXALN报文进行解封装。也就是说,当所述第一网络设备最新已经解封装的VXLAN报文是第二VXLAN报文。所述第一网络设备在解封装所述第二VXLAN报文和更新所述第二当前序列号的值后,对所述存储器进行查找。所述第一网络设备确定所述存储器中是否存在第三VXLAN报文。其中,所述第三VXLAN报文携带的第三序列号的值减去所述第二当前序列号的值的结果等于所述第一步长。也就是说,所述第一网络设备确定所述存储器中是否存在与当前解封装的第二VXLAN报文连续的第三VXLAN报文。如果所述存储器中存在所述第三VXLAN报文,所述第一网络设备解封装所述第三VXLAN报文和将所述当前序列号的值更新为所述第三序列号的值。进一步可选的,所述第一网络设备在解封装所述第三VXLAN报文后,还可以按照上述实现方式继续确定所述存储器中是否存在与所述第三VXLAN报文连续的第四VXLAN报文。如果所述存储器中存在所述第四VXLAN报文,所述第一网络设备解封装所述第四VXLAN报文和将所述当前序列号的值更新为所述第四序列号的值。
在另一种实现方式中,假设所述第一网络设备已经对所述第一VXALN报文进行解封装。也就是说,当所述第一网络设备最新已经解封装的VXLAN报文是第一VXLAN报文。那么,所述第二当前序列号的值为所述第一序列号的值。所述第一网络设备确定所述存储器中是否存在第三VXLAN报文。其中,所述第三VXLAN报文携带的第三序列号的值减去所述第二当前序列号的值的结果等于所述第一步长。也就是说,所述第一网络设备确定所述存储器中是否存在与当前解封装的第一VXLAN报文连续的第三VXLAN报文。如果所述存储器中存在所述第三VXLAN报文,所述第一网络设备解封装所述第三VXLAN报文和将所述当前序列号的值更新为所述第三序列号的值。
举例说明,如图4所示,假设所述第一网络设备接收到VXLAN报文01并根据上述实施方式的说明完成对VXLAN报文01的处理。随后,所述第一网络设备相继接收到VXLAN报文03和VXLAN报文04。根据前述实施方式的说明,VXLAN报文03和VXLAN报文04被缓存到所述存储器中。然后,所述第一网络设备接收到VXLAN报文02。所述第一网络设备根据上述实施方式的说明完成对VXLAN报文02的处理。如此这样,所述第二当前序列号的值被更新为2。所述第一网络设备确定所述存储器中存在VXLAN报文03,其中,VXLAN报文03的序列号的值(值为3)减去所述第二当前序列号的值(值为2)的结果等于所述第一步长(值为1)。所述第一网络设备解封装VXLAN报文03和将所述第二当前序列号的值更新为VXLAN报文03的序列号的值。同样的实现方式,所述第一网络设备可以继续处理所述存储器中的VXLAN报文04。
在一种可能的实现方式中,所述第一网络设备可以被配置为:所述第一网络设备确定所述第二当前序列号的值被更新时,执行上述查找所述第三VXLAN报文的操作。
通过上述实施方式,所述第一网络设备可以将不连续的VXLAN报文缓存到存储器中,并且,所述第一网络设备在检测到连续时,解封装存储器中缓存的VXLAN报文。从而,进一步减少报文乱序的情况。
可选的,当第四VXLAN报文在所述存储器中的停留时间大于或等于第一时间阈值时,所述第一网络设备确定第四序列号的值是否小于所述存储器中保存的其他VXLAN报文包含的序列号的值,并且所述第一网络设备确定所述第四序列号的值是否大于所述第一网络设备已解封装的所述第一VXLAN报文中的所述第一序列号的值,其中,所述第四VXLAN报文是所述第一网络设备经由所述第一链路或所述第二链路接收到的VXLAN报文,所述第四VXLAN报文包括所述第四序列号以及第四业务报文,所述第四序列号指示所述第四业务报文在所述多个业务报文中的位置。当所述第一网络设备确定所述第四序列号的值小于所述存储器中保存的其他VXLAN报文包含的序列号的值,并且所述第四序列号的值大于所述第一网络设备最新已解封装的VXLAN报文中的序列号的值时,所述第一网络设备对所述第四VXLAN报文进行解封装。
如果所述第四VXLAN报文的前一个连续的报文已经在传输路径上发生丢包,所述第一网络设备无法接收到所述第四VXLAN报文的前一个连续的报文,并且,所述第四VXLAN报文将始终无法成为所述第一网络设备最新已经解封装VXLAN报文的连续报文,报文传输将发生中断。为了避免因为丢包引起的报文传输的中断,所述第一网络设备还可以包括第一计时器。所述第一计时器用于记录进入所述存储器中的第四VXLAN报文的停留时间,这个停留时间被称为第一缓存时间。当所述第四VXLAN报文进入所述存储器时,所述第一计时器开始计时。所述第一网络设备还包括第一时间阈值。如果所述第一缓存时间超过所述第一时间阈值,并且,所述第一网络设备确定所述第四VXLAN报文的第四序列号为所述存储器中最小的序列号和所述第四序列号的值大于所述第二当前序列号的值,所述第一网络设备将强制解封装所述第四VXLAN报文,并更新所述第二当前序列号的值。其中,可选的,当所述第一网络设备的最新已解封装的VXLAN报文时所述第一VXLAN报文,则所述第二当前序列号的值是所述第一序列号的值。当所述第一网络设备的最新已解封装的VXLAN报文时所述第二VXLAN报文,则所述第二当前序列号的值是所述第二序列号的值。当所述第一网络设备的最新已解封装的VXLAN报文时所述第三VXLAN报文,则所述第二当前序列号的值是所述第三序列号的值。
举例说明,如图4所示,所述第一网络设备接收到VXLAN报文01后,接收到VXLAN报文03和VXLAN报文04。根据前述实施方式的说明,VXLAN报文03和VXLAN报文04将被缓存到所述存储器中。假设VXLAN报文02在传输过程中发生丢包,所述第一网络设备将无法接收到VXLAN报文02。此时,所述第一网络设备已经将VXLAN报文01解封装,并且将所述第二当前序列号的值更新为1。所述第一网络设备根据前述实施方式的实现方式,无法在所述存储器中查找到比所述第二当前序列号的值大所述第一步长(值为1)的序列号。当VXLAN报文03的缓存时间超过了时间阈值,所述第一网络设备可以确定VXLAN报文03的序列号是存储器中最小的序列号,并且VXLAN报文03的序列号的值(值为3)大于所述第二当前序列号的值(值为1)。所述第一网络设备解封装VXLAN报文03和将所述第二当前序列号的值更新为VXLAN报文03的序列号的值。
通过上述实施方式,确保了所述第一网络设备和所述第二网络设备之间的数据流传输不会因为VXLAN隧道中的链路发生丢包而产生业务中断。
可选的,当第四VXLAN报文在所述存储器中的停留时间大于或等于第一时间阈值时,所述第一网络设备确定第四序列号的值是否大于所述存储器中保存的其他VXLAN报文包含的序列号的值,其中,所述第四VXLAN报文是所述第一网络设备经由所述第一链路或所述第二链路接收到的VXLAN报文,所述第四VXLAN报文包括所述第四序列号以及第四业务报文,所述第四序列号指示所述第四业务报文在所述多个业务报文中的位置。当所述第一网络设备确定所述第四序列号的值大于所述存储器中保存的其他VXLAN报文包含的序列号的值时,所述第一网络设备对所述第四VXLAN报文在所述存储器中的停留时间清零,并且对所述第四VXLAN报文在所述存储器中的停留时间重新计时。
举例说明,如图4所示,所述第一网络设备接收到VXLAN报文01后,所述第一网络设备先接收到VXLAN报文04,再接收到VXLAN报文03。根据前述实施方式的说明,VXLAN报文03和VXLAN报文04将被缓存到所述存储器中。假设VXLAN报文02在传输过程中发生丢包,所述第一网络设备将无法接收到VXLAN报文02。如此这样,VXLAN报文04会比VXLAN报文03先超过时间阈值。所述第一网络设备确定VXLAN报文04的序列号不是存储器中最小的序列号,所述第一网络设备将VXLAN报文04的缓存时间重置为0。从而,VXLAN报文04的缓存时间重新计时,确保VXLAN报文03先超过时间阈值。因此,所述第一网络设备能够在解封装VXLAN报文04之前解封装VXLAN报文03,进一步减少乱序的情况。
可选的,当第四VXLAN报文在所述存储器中的停留时间大于或等于第一时间阈值时,所述第一网络设备确定第四序列号的值是否小于所述存储器中保存的其他VXLAN报文包含的序列号的值,并且所述第一网络设备确定所述第四序列号的值与所述第一网络设备最新已解封装的VXLAN报文中的序列号的值的差值的绝对值是否大于第一序列号阈值,其中,所述第四VXLAN报文是所述第一网络设备经由所述第一链路或所述第二链路接收到的VXLAN报文,所述第四VXLAN报文包括所述第四序列号以及第四业务报文,所述第四序列号指示所述第四业务报文在所述多个业务报文中的位置,所述第一序列号阈值的范围为[0.5N,N],其中,N表示所述第二网络设备发送VXLAN报文的序列号上限值。当所述第一网络设备确定所述第四序列号的值小于所述存储器中保存的其他VXLAN报文包含的序列号的值,并且所述第四序列号的值与所述第一网络设备最新已解封装的VXLAN报文中的序列号的值的差值的绝对值大于所述第一序列号阈值时,所述第一网络设备对所述第四VXLAN报文进行解封装。
通常情况下,本申请实施例中的VXLAN报文中可携带的序列号的上限值大于传输数据流包括的业务报文的数量。例如数据流01包括的业务报文的数量为5000000个,序列号的上限值为FFFFFF(16进制)。在一种可能的实现方式中,数据流01的数据量可能比较大,以至于数据流01包括的业务报文数量超过VXLAN报文中可携带的序列号的上限值(例如FFFFFF)。如此这样,所述第二网络设备在发送数据流01的VXLAN报文过程中,假设所述第一当前序列号的值为FFFFFF。所述第二网络设备在发送数据流01的下一个VXLAN报文前,将所述第一当前序列号的值(FFFFFF)增加所述第一步长(值为1),则所述第一当前序列号的值被更新为0(按2进制计算共计24位)。这种情况被称为序列号的翻转,也就是说,序列号被更新到最大值后重新计数。
相应的,在所述第一网络设备侧,假设所述第二当前序列号的值为FFFFFF,翻转阈值为FFFFFF。由于序列号达到上限值,所述第一网络设备在所述存储器中无法找到大于FFFFFF的序列号的报文。所述第一网络设备还接收到第四VXLAN报文,假设第四VXLAN报文的第四序列号为0(根据前述,第四序列号为翻转后的序列号)。当所述第四VXLAN报文在所述存储器中超时时,所述第一网络设备确定所述第四序列号的值(值为0)减去所述第二当前序列号的值(值为FFFFFF)为-FFFFFF,取绝对值后为FFFFFF。所述第一网络设备确定计算结果等于翻转阈值FFFFFF。因此所述第一网络设备可以确定所述第四VXLAN报文是连续的VXLAN报文,所述第一网络设备解封装所述第四VXLAN报文和将所述第二当前序列号的值更新为所述第四序列号的值。
通过上述实施方式,所述第一网络设备和所述第二网络设备之间VXLAN隧道可以在传送大数据量的数据流(可以称为“大象流”)时,减少乱序的情况。其中,在实际应用中,翻转阈值的设置值可以小于序列号的上限值。只要保证翻转阈值的设置值在数量级上指示已使用的序列号达到上限值即可。例如,翻转阈值被设置为FFFFFD,如此这样,即使序列号为FFFFFF的VXLAN报文丢包,也能保证翻转后的VXLAN报文能够正常被解封装。在上述实施方式中,所述第一序列号阈值的范围为[0.5N,N],其中,N表示所述第二网络设备发送VXLAN报文的序列号上限值。这样设置有利于所述第一网络设备在判断翻转时,增加所述第一网络设备的容忍度。
在一种可能的实现方式中,VXLAN报文中可以包括翻转标志位,所述翻转标志位用于指示VXLAN报文携带的序列号是否发生翻转。例如,当序列号发生翻转时,所述第二网络设备将所述翻转标志位由0置为1。当序列号再次发生翻转时,所述第二网络设备将所述翻转标志位由1置为0。这样,作为接收端的所述第二网络设备可以根据翻转标志位确定翻转前的最后一个VXLAN报文(可以称为尾包)和翻转后的第一个VXLAN报文(可以称为首包)是相互连续的VXLAN报文。
在一种可能的实现方式中,所述第一网络设备还可以包括第二计时器,所述第二计时器用于记录所述存储器中VXLAN报文的总缓存时间。这样,前述提及的第一计时器记录的缓存时间即使被重置,所述第二计时器记录的总缓存时间也不会被重置。当所述第一网络设备确定所述总缓存时间达到阈值时,所述第一网络设备丢弃所述总缓存时间对应的VXLAN报文。这样设置的目的是,防止报文传输错误或所述第一网络设备处理错误造成个别无法被解封装的VXLAN报文长时间占用存储器的存储空间。
在本申请实施例中,存储器的空间可以根据网络情况进行设置。例如,VXLAN隧道中的多条链路的性能较好,存储器的空间可以被设置的较小。所述性能可以包括链路的时延、丢包率和抖动。当所述第一网络设备确定存储器的占用率达到100%时,所述第一网络设备可以按照存储器中缓存的VXLAN报文的序列号顺序,强制解封装存储器中的报文,并更新第二当前序列号。
图8为本申请实施例的第一网络设备1000的结构示意图。图8所示的第一网络设备1000可以执行上述实施例的方法中第一网络设备执行的相应步骤。所述第一网络设备被部署在VXLAN中,所述VXLAN还包括第二网络设备。所述第一网络设备经由VXLAN隧道与所述第二网络设备连接,所述VXLAN隧道包括第一链路以及第二链路。如图8所示,所述第一网络设备1000包括接收单元1002和处理单元1004。
接收单元1002,用于经由所述第一链路接收所述第二网络设备发送的第一VXLAN报文,所述第一VXLAN报文包括第一序列号以及第一业务报文,所述第一序列号指示所述第一业务报文在多个业务报文中的位置;
处理单元1004,用于对所述第一VXLAN报文进行解封装;
所述接收单元1002还用于经由所述第二链路接收所述第二网络设备发送的第二VXLAN报文,所述第二VXLAN报文包括第二序列号以及第二业务报文,所述第二序列号指示所述第二业务报文在所述多个业务报文中的位置;
所述处理单元1004对所述第一VXLAN报文进行解封装之后,所述处理单元1004还用于确定所述第二序列号是否为所述第一序列号的下一个序列号;
当所述处理单元1004确定所述第二序列号是所述第一序列号的下一个序列号时,所述处理单元1004还用于对所述第二VXLAN报文进行解封装。
可选的,当所述处理单元1004确定所述第二序列号不是所述处理单元1004已解封装的所述第一VXLAN报文中的所述第一序列号的下一个序列号时,所述处理单元1004还用于将所述第二VXLAN报文存储到存储器中。
可选的,所述处理单元1004还用于确定所述存储器中是否保存了第三VXLAN报文,所述第三VXLAN报文是所述接收单元1002经由所述第一链路或所述第二链路接收到的VXLAN报文,所述第三VXLAN报文包括第三序列号以及第三业务报文,所述第三序列号指示所述第三业务报文在所述多个业务报文中的位置,所述第三序列号为所述处理单元1004已解封装的所述第一VXLAN报文中的所述第一序列号的下一个序列号。当所述处理单元1004确定所述存储器中保存了第三VXLAN报文时,所述处理单元1004还用于对所述第三VXLAN报文进行解封装。
可选的,当第四VXLAN报文在所述存储器中的停留时间大于或等于第一时间阈值时,所述处理单元1004还用于确定第四序列号的值是否小于所述存储器中保存的其他VXLAN报文包含的序列号的值,并且所述处理单元1004还用于确定所述第四序列号的值是否大于所述处理单元1004已解封装的所述第一VXLAN报文中的所述第一序列号的值,其中,所述第四VXLAN报文是所述接收单元1002经由所述第一链路或所述第二链路接收到的VXLAN报文,所述第四VXLAN报文包括所述第四序列号以及第四业务报文,所述第四序列号指示所述第四业务报文在所述多个业务报文中的位置。当所述处理单元1004确定所述第四序列号的值小于所述存储器中保存的其他VXLAN报文包含的序列号的值,并且所述第四序列号的值大于所述处理单元1004已解封装的所述第一VXLAN报文中的所述第一序列号的值时,所述处理单元1004还用于对所述第四VXLAN报文进行解封装。
可选的,当第四VXLAN报文在所述存储器中的停留时间大于或等于第一时间阈值时,所述处理单元1004还用于确定第四序列号的值是否大于所述存储器中保存的其他VXLAN报文包含的序列号的值,其中,所述第四VXLAN报文是所述接收单元1002经由所述第一链路或所述第二链路接收到的VXLAN报文,所述第四VXLAN报文包括所述第四序列号以及第四业务报文,所述第四序列号指示所述第四业务报文在所述多个业务报文中的位置。当所述处理单元1004确定所述第四序列号的值大于所述存储器中保存的其他VXLAN报文包含的序列号的值时,所述处理单元1004还用于对所述第四VXLAN报文在所述存储器中的停留时间清零,并且对所述第四VXLAN报文在所述存储器中的停留时间重新计时。
可选的,当第四VXLAN报文在所述存储器中的停留时间大于或等于第一时间阈值时,所述处理单元1004还用于确定第四序列号的值是否小于所述存储器中保存的其他VXLAN报文包含的序列号的值,并且所述处理单元1004还用于确定所述第四序列号的值与所述处理单元1004已解封装的所述第一VXLAN报文中的所述第一序列号的值的差值的绝对值是否大于第一序列号阈值,其中,所述第四VXLAN报文是所述接收单元1002经由所述第一链路或所述第二链路接收到的VXLAN报文,所述第四VXLAN报文包括所述第四序列号以及第四业务报文,所述第四序列号指示所述第四业务报文在所述多个业务报文中的位置,所述第一序列号阈值的范围为[0.5N,N],其中,N表示所述第二网络设备发送VXLAN报文的序列号上限值。当所述处理单元1004确定所述第四序列号的值小于所述存储器中保存的其他VXLAN报文包含的序列号的值,并且所述第四序列号的值与所述处理单元1004已解封装的所述第一VXLAN报文中的所述第一序列号的值的差值的绝对值大于所述第一序列号阈值时,所述处理单元1004还用于对所述第四VXLAN报文进行解封装。
可选的,所述第一VXLAN报文还包括第一数据流的标识,所述第一数据流包含所述多个业务报文。
图8所示的第一网络设备可以执行上述实施例的方法中第一网络设备执行的相应步骤。应用在VXLAN场景中,第二网络设备经由VXLAN隧道包括的多条链路以逐包负载均衡方式向所述第一网络设备传输多个VXLAN报文,所述多个VXLAN报文携带的负载属于同一个数据流。所述多个VXLAN报文中的每个VXLAN报文包括序列号。相应的,所述第一网络设备在接收到所述第二网络设备发送的VXLAN报文后,根据该VXLAN报文携带的序列号和所述第一网络设备保存的当前序列号处理该VXLAN报文。通过实施例提供的设备,序列号被应用到VXLAN报文的传输中,实现数据流量按照有序的逐包负载均衡方式在VXLAN隧道中传输,从而,减少报文乱序的情况和提高VXLAN隧道的带宽利用率。
图9为本申请实施例的第一网络设备1100的硬件结构示意图。图9所示的第一网络设备1100可以执行上述实施例的方法中第一网络设备执行的相应步骤。
如图9所示,所述第一网络设备1100包括处理器1101、存储器1102、接口1103和总线1104。其中接口1103可以通过无线或有线的方式实现,具体来讲可以是网卡。上述处理器1101、存储器1102和接口1103通过总线1104连接。
所述接口1103具体可以包括发送器和接收器,用于第一网络设备与上述实施例中的第二网络设备之间收发信息。例如,所述接口1103用于支持接收所述第二网络设备发送的VXLAN报文。作为举例,所述接口1103用于支持图3中的过程S104和S108。所述处理器1101用于执行上述实施例中由第一网络设备进行的处理。例如,所述处理器1101用于对VXLAN报文进行解封装;用于确定VXLAN报文包括的序列号是否连续;和/或用于本文所描述的技术的其他过程。作为举例,所述处理器1101用于支持图3中的过程S105、S109和S110。存储器1102包括操作系统11021和应用程序11022,用于存储程序、代码或指令,当处理器或硬件设备执行这些程序、代码或指令时可以完成方法实施例中涉及第一网络设备的处理过程。可选的,所述存储器1102可以包括只读存储器(英文:Read-only Memory,缩写:ROM)和随机存取存储器(英文:Random Access Memory,缩写:RAM)。其中,所述ROM包括基本输入/输出系统(英文:Basic Input/Output System,缩写:BIOS)或嵌入式系统;所述RAM包括应用程序和操作系统。当需要运行第一网络设备1100时,通过固化在ROM中的BIOS或者嵌入式系统中的bootloader引导系统进行启动,引导第一网络设备1100进入正常运行状态。在第一网络设备1100进入正常运行状态后,运行在RAM中的应用程序和操作系统,从而,完成方法实施例中涉及第一网络设备的处理过程。
可以理解的是,图9仅仅示出了第一网络设备1100的简化设计。在实际应用中,第一网络设备可以包含任意数量的接口,处理器或者存储器。
图10为本申请实施例的另一种第一网络设备1200的硬件结构示意图。图10所示的第一网络设备1200可以执行上述实施例的方法中第一网络设备执行的相应步骤。
如图10所述,第一网络设备1200包括:主控板1210、接口板1230、交换网板1220和接口板1240。主控板1210、接口板1230和1240,以及交换网板1220之间通过系统总线与系统背板相连实现互通。其中,主控板1210用于完成系统管理、设备维护、协议处理等功能。交换网板1220用于完成各接口板(接口板也称为线卡或业务板)之间的数据交换。接口板1230和1240用于提供各种业务接口(例如,POS接口、GE接口、ATM接口等),并实现数据包的转发
接口板1230可以包括中央处理器1231、转发表项存储器1234、物理接口卡1233和网络处理器1232。其中,中央处理器1231用于对接口板进行控制管理并与主控板上的中央处理器进行通信。转发表项存储器1234用于保存转发表项。物理接口卡1233用于完成流量的接收和发送。网络存储器1232用于根据所述转发表项控制物理接口卡1233收发流量。
具体的,物理接口卡1233用于接收所述第二网络设备发送的VXLAN报文。
中央处理器1211用于对VXLAN报文进行解封装。
中央处理器1211还用于确定VXLAN报文包括的序列号是否连续。
物理接口卡1233接收到VXLAN报文后,将VXLAN报文经由中央处理器1231发送到中央处理器1211,中央处理器1211处理该VXLAN报文。
中央处理器1231还用于控制网络存储器1232获取转发表项存储器1234中的转发表项,并且,中央处理器1231还用于控制网络存储器1232经由物理接口卡1233完成流量的接收和发送。
应理解,本发明实施例中接口板1240上的操作与所述接口板1230的操作一致,为了简洁,不再赘述。应理解,本实施例的第一网络设备1200可对应于上述方法实施例所具有的功能和/或所实施的各种步骤,在此不再赘述。
此外,需要说明的是,主控板可能有一块或多块,有多块的时候可以包括主用主控板和备用主控板。接口板可能有一块或多块,第一网络设备的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,第一网络设备可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下,第一网络设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。所以,分布式架构的第一网络设备的数据接入和处理能力要大于集中式架构的设备。具体采用哪种架构,取决于具体的组网部署场景,此处不做任何限定。
图11为本申请实施例的第二网络设备2000的结构示意图。图11所示的第二网络设备2000可以执行上述实施例的方法中第二网络设备执行的相应步骤。所述第二网络设备被部署在VXLAN中,所述VXLAN还包括第一网络设备。所述第一网络设备经由VXLAN隧道与所述第二网络设备连接,所述VXLAN隧道包括第一链路以及第二链路。如图11所示,所述第二网络设备2000包括接收单元2002,处理单元2004和发送单元2006。
接收单元2002,用于接收来自虚拟机VM的多个业务报文,所述多个业务报文包括第一业务报文和第二业务报文;
处理单元2004,用于根据所述第一业务报文生成第一VXLAN报文,所述第一VXLAN报文包括第一序列号以及所述第一业务报文,所述第一序列号指示所述第一业务报文在所述多个业务报文中的位置;
发送单元2006,用于经由所述第一链路向所述第一网络设备发送所述第一VXLAN报文;
所述处理单元2004还用于根据所述第二业务报文生成第二VXLAN报文,所述第二VXLAN报文包括第二序列号以及所述第二业务报文,所述第二序列号指示所述第二业务报文在所述多个业务报文中的位置,所述第二序列号为所述第一序列号的下一个序列号;
在所述发送单元2006经由所述第一链路向所述第一网络设备发送所述第一VXLAN报文之后,所述发送单元2006还用于经由所述第二链路向所述第一网络设备发送所述第二VXLAN报文。
可选的,所述第一VXLAN报文包括VXLAN头,所述VXLAN头包括所述第一序列号。
可选的,所述第一VXLAN报文包括通用网络虚拟化封装GENEVE头,所述GENEVE头包括序列号类型长度值TLV,所述序列号TLV包括所述第一序列号。
可选的,所述第一VXLAN报文还包括第一数据流的标识,所述第一数据流包含所述多个业务报文。
图11所示的第二网络设备可以执行上述实施例的方法中第二网络设备执行的相应步骤。应用在VXLAN场景中,第二网络设备经由VXLAN隧道包括的多条链路以逐包负载均衡方式向所述第一网络设备传输多个VXLAN报文,所述多个VXLAN报文携带的负载属于同一个数据流。所述多个VXLAN报文中的每个VXLAN报文包括序列号。相应的,所述第一网络设备在接收到所述第二网络设备发送的VXLAN报文后,根据该VXLAN报文携带的序列号和所述第一网络设备保存的当前序列号处理该VXLAN报文。通过实施例提供的设备,序列号被应用到VXLAN报文的传输中,实现数据流量按照有序的逐包负载均衡方式在VXLAN隧道中传输,从而,减少报文乱序的情况和提高VXLAN隧道的带宽利用率。
图12为本申请实施例的第二网络设备2100的硬件结构示意图。图12所示的第二网络设备2100可以执行上述实施例的方法中第二网络设备执行的相应步骤。
如图12所示,所述第二网络设备2100包括处理器2101、存储器2102、接口2103和总线2104。其中接口2103可以通过无线或有线的方式实现,具体来讲可以是网卡。上述处理器2101、存储器2102和接口2103通过总线2104连接。
所述接口2103具体可以包括发送器和接收器,用于第二网络设备与上述实施例中的第一网络设备之间收发信息。例如,所述接口2103用于支持向所述第一网络设备发送VXLAN报文,还用于支持接收来自VM的业务报文。作为举例,所述接口2103用于支持图3中的过程S101、S103和S107。所述处理器2101用于执行上述实施例中由第二网络设备进行的处理。例如,所述处理器2101用于封装VXLAN报文;和/或用于本文所描述的技术的其他过程。作为举例,所述处理器2101用于支持图3中的过程S102和S106。存储器2102包括操作系统21021和应用程序21022,用于存储程序、代码或指令,当处理器或硬件设备执行这些程序、代码或指令时可以完成方法实施例中涉及第二网络设备的处理过程。可选的,所述存储器2102可以包括只读存储器(英文:Read-only Memory,缩写:ROM)和随机存取存储器(英文:Random Access Memory,缩写:RAM)。其中,所述ROM包括基本输入/输出系统(英文:BasicInput/Output System,缩写:BIOS)或嵌入式系统;所述RAM包括应用程序和操作系统。当需要运行第二网络设备2100时,通过固化在ROM中的BIOS或者嵌入式系统中的bootloader引导系统进行启动,引导第二网络设备2100进入正常运行状态。在第二网络设备2100进入正常运行状态后,运行在RAM中的应用程序和操作系统,从而,完成方法实施例中涉及第二网络设备的处理过程。
可以理解的是,图12仅仅示出了第二网络设备2100的简化设计。在实际应用中,第二网络设备可以包含任意数量的接口,处理器或者存储器。
图13为本申请实施例的另一种第二网络设备2200的硬件结构示意图。图13所示的第二网络设备2200可以执行上述实施例的方法中第二网络设备执行的相应步骤。
如图13所述,第二网络设备2200包括:主控板2210、接口板2230、交换网板2220和接口板2240。主控板2210、接口板2230和2240,以及交换网板2220之间通过系统总线与系统背板相连实现互通。其中,主控板2210用于完成系统管理、设备维护、协议处理等功能。交换网板2220用于完成各接口板(接口板也称为线卡或业务板)之间的数据交换。接口板2230和2240用于提供各种业务接口(例如,POS接口、GE接口、ATM接口等),并实现数据包的转发。
接口板2230可以包括中央处理器2231、转发表项存储器2234、物理接口卡2233和网络处理器2232。其中,中央处理器2231用于对接口板进行控制管理并与主控板上的中央处理器进行通信。转发表项存储器2234用于保存转发表项。物理接口卡2233用于完成流量的接收和发送。网络存储器2232用于根据所述转发表项控制物理接口卡2233收发流量。
具体的,物理接口卡2233用于接收所述VM发送的业务报文,或者用于向所述第一网络设备发送VXLAN报文。
中央处理器2211用于将业务报文封装为VXLAN报文。
中央处理器2211将VXLAN报文经由中央处理器2231向物理接口卡2233发送。物理接口卡2233向所述第一网络设备发送所述VXLAN报文。
中央处理器2231还用于控制网络存储器2232获取转发表项存储器2234中的转发表项,并且,中央处理器2231还用于控制网络存储器2232经由物理接口卡2233完成流量的接收和发送。
应理解,本发明实施例中接口板2240上的操作与所述接口板2230的操作一致,为了简洁,不再赘述。应理解,本实施例的第二网络设备2200可对应于上述方法实施例所具有的功能和/或所实施的各种步骤,在此不再赘述。
此外,需要说明的是,主控板可能有一块或多块,有多块的时候可以包括主用主控板和备用主控板。接口板可能有一块或多块,第二网络设备的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,第二网络设备可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下,第二网络设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。所以,分布式架构的第二网络设备的数据接入和处理能力要大于集中式架构的设备。具体采用哪种架构,取决于具体的组网部署场景,此处不做任何限定。
另外,本申请实施例提供了一种计算机存储介质,用于储存为上述第一网络设备所用的计算机软件指令,其包含用于执行上述方法实施例所设计的程序。
另外,本申请实施例提供了一种计算机存储介质,用于储存为上述第二网络设备所用的计算机软件指令,其包含用于执行上述方法实施例所设计的程序。
本申请实施例还包括一种网络系统,所述网络系统包括第一网络设备和第二网络设备,所述第一网络设备为前述图8或图9或图10中的第一网络设备,所述第二网络设备为前述图11或图12或图13中的第二网络设备。
结合本申请公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于用户设备中。当然,处理器和存储介质也可以作为分立组件存在于用户设备中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请所描述的功能可以用硬件或者用硬件和软件的组合来实现。当使用硬件和软件的组合实现时,可以将这些软件存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明。所应理解的是,以上所述仅为本申请的具体实施方式而已。
Claims (22)
1.一种数据流量处理方法,其特征在于,所述数据流量处理方法应用在虚拟扩展局域网VXLAN中,所述VXLAN包括第一网络设备和第二网络设备,所述第一网络设备经由VXLAN隧道与所述第二网络设备连接,所述VXLAN隧道包括第一链路以及第二链路,所述方法包括:
所述第一网络设备经由所述第一链路接收所述第二网络设备发送的第一VXLAN报文,所述第一VXLAN报文包括第一序列号以及第一业务报文,所述第一序列号指示所述第一业务报文在多个业务报文中的位置;
所述第一网络设备对所述第一VXLAN报文进行解封装;
所述第一网络设备经由所述第二链路接收所述第二网络设备发送的第二VXLAN报文,所述第二VXLAN报文包括第二序列号以及第二业务报文,所述第二序列号指示所述第二业务报文在所述多个业务报文中的位置;
在所述第一网络设备对所述第一VXLAN报文进行解封装之后,所述第一网络设备确定所述第二序列号是否为所述第一序列号的下一个序列号;
当所述第一网络设备确定所述第二序列号是所述第一序列号的下一个序列号时,所述第一网络设备对所述第二VXLAN报文进行解封装。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述第一网络设备确定所述第二序列号不是所述第一网络设备已解封装的所述第一VXLAN报文中的所述第一序列号的下一个序列号时,所述第一网络设备将所述第二VXLAN报文存储到存储器中。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述第一网络设备确定所述存储器中是否保存了第三VXLAN报文,所述第三VXLAN报文是所述第一网络设备经由所述第一链路或所述第二链路接收到的VXLAN报文,所述第三VXLAN报文包括第三序列号以及第三业务报文,所述第三序列号指示所述第三业务报文在所述多个业务报文中的位置,所述第三序列号为所述第一网络设备已解封装的所述第一VXLAN报文中的所述第一序列号的下一个序列号;
当所述第一网络设备确定所述存储器中保存了第三VXLAN报文时,所述第一网络设备对所述第三VXLAN报文进行解封装。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当第四VXLAN报文在所述存储器中的停留时间大于或等于第一时间阈值时,所述第一网络设备确定第四序列号的值是否小于所述存储器中保存的其他VXLAN报文包含的序列号的值,并且所述第一网络设备确定所述第四序列号的值是否大于所述第一网络设备已解封装的所述第一VXLAN报文中的所述第一序列号的值,其中,所述第四VXLAN报文是所述第一网络设备经由所述第一链路或所述第二链路接收到的VXLAN报文,所述第四VXLAN报文包括所述第四序列号以及第四业务报文,所述第四序列号指示所述第四业务报文在所述多个业务报文中的位置;
当所述第一网络设备确定所述第四序列号的值小于所述存储器中保存的其他VXLAN报文包含的序列号的值,并且所述第四序列号的值大于所述第一网络设备已解封装的所述第一VXLAN报文中的所述第一序列号的值时,所述第一网络设备对所述第四VXLAN报文进行解封装。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当第四VXLAN报文在所述存储器中的停留时间大于或等于第一时间阈值时,所述第一网络设备确定第四序列号的值是否大于所述存储器中保存的其他VXLAN报文包含的序列号的值,其中,所述第四VXLAN报文是所述第一网络设备经由所述第一链路或所述第二链路接收到的VXLAN报文,所述第四VXLAN报文包括所述第四序列号以及第四业务报文,所述第四序列号指示所述第四业务报文在所述多个业务报文中的位置;
当所述第一网络设备确定所述第四序列号的值大于所述存储器中保存的其他VXLAN报文包含的序列号的值时,所述第一网络设备对所述第四VXLAN报文在所述存储器中的停留时间清零,并且对所述第四VXLAN报文在所述存储器中的停留时间重新计时。
6.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当第四VXLAN报文在所述存储器中的停留时间大于或等于第一时间阈值时,所述第一网络设备确定第四序列号的值是否小于所述存储器中保存的其他VXLAN报文包含的序列号的值,并且所述第一网络设备确定所述第四序列号的值与所述第一网络设备已解封装的所述第一VXLAN报文中的所述第一序列号的值的差值的绝对值是否大于第一序列号阈值,其中,所述第四VXLAN报文是所述第一网络设备经由所述第一链路或所述第二链路接收到的VXLAN报文,所述第四VXLAN报文包括所述第四序列号以及第四业务报文,所述第四序列号指示所述第四业务报文在所述多个业务报文中的位置,所述第一序列号阈值的范围为[0.5N,N],其中,N表示所述第二网络设备发送VXLAN报文的序列号上限值;
当所述第一网络设备确定所述第四序列号的值小于所述存储器中保存的其他VXLAN报文包含的序列号的值,并且所述第四序列号的值与所述第一网络设备已解封装的所述第一VXLAN报文中的所述第一序列号的值的差值的绝对值大于所述第一序列号阈值时,所述第一网络设备对所述第四VXLAN报文进行解封装。
7.根据权利要求1-6中任一项所述的方法,其特征在于,
所述第一VXLAN报文还包括第一数据流的标识,所述第一数据流包含所述多个业务报文。
8.一种数据流量处理方法,其特征在于,所述数据流量处理方法应用在虚拟扩展局域网VXLAN中,所述VXLAN包括第一网络设备和第二网络设备,所述第一网络设备经由VXLAN隧道与所述第二网络设备连接,所述VXLAN隧道包括第一链路以及第二链路,所述方法包括:
所述第二网络设备接收来自虚拟机VM的多个业务报文,所述多个业务报文包括第一业务报文和第二业务报文;
所述第二网络设备根据所述第一业务报文生成第一VXLAN报文,所述第一VXLAN报文包括第一序列号以及所述第一业务报文,所述第一序列号指示所述第一业务报文在所述多个业务报文中的位置;
所述第二网络设备经由所述第一链路向所述第一网络设备发送所述第一VXLAN报文;
所述第二网络设备根据所述第二业务报文生成第二VXLAN报文,所述第二VXLAN报文包括第二序列号以及所述第二业务报文,所述第二序列号指示所述第二业务报文在所述多个业务报文中的位置,所述第二序列号为所述第一序列号的下一个序列号;
在所述第二网络设备经由所述第一链路向所述第一网络设备发送所述第一VXLAN报文之后,所述第二网络设备经由所述第二链路向所述第一网络设备发送所述第二VXLAN报文。
9.根据权利要求8所述的方法,其特征在于,
所述第一VXLAN报文包括VXLAN头,所述VXLAN头包括所述第一序列号。
10.根据权利要求8所述的方法,其特征在于,
所述第一VXLAN报文包括通用网络虚拟化封装GENEVE头,所述GENEVE头包括序列号类型长度值TLV,所述序列号TLV包括所述第一序列号。
11.根据权利要求8-10中任一项所述的方法,其特征在于,
所述第一VXLAN报文还包括第一数据流的标识,所述第一数据流包括所述多个业务报文。
12.一种第一网络设备,其特征在于,所述第一网络设备应用在虚拟扩展局域网VXLAN中,所述VXLAN还包括第二网络设备,所述第一网络设备经由VXLAN隧道与所述第二网络设备连接,所述VXLAN隧道包括第一链路以及第二链路,所述第一网络设备包括:
接收器,用于经由所述第一链路接收所述第二网络设备发送的第一VXLAN报文,所述第一VXLAN报文包括第一序列号以及第一业务报文,所述第一序列号指示所述第一业务报文在多个业务报文中的位置;
处理器,用于对所述第一VXLAN报文进行解封装;
所述接收器还用于经由所述第二链路接收所述第二网络设备发送的第二VXLAN报文,所述第二VXLAN报文包括第二序列号以及第二业务报文,所述第二序列号指示所述第二业务报文在所述多个业务报文中的位置;
所述处理器对所述第一VXLAN报文进行解封装之后,所述处理器还用于确定所述第二序列号是否为所述第一序列号的下一个序列号;
当所述处理器确定所述第二序列号是所述第一序列号的下一个序列号时,所述处理器还用于对所述第二VXLAN报文进行解封装。
13.根据权利要求12所述的第一网络设备,其特征在于,
当所述处理器确定所述第二序列号不是所述处理器已解封装的所述第一VXLAN报文中的所述第一序列号的下一个序列号时,所述处理器还用于将所述第二VXLAN报文存储到存储器中。
14.根据权利要求13所述的第一网络设备,其特征在于,
所述处理器还用于确定所述存储器中是否保存了第三VXLAN报文,所述第三VXLAN报文是所述接收器经由所述第一链路或所述第二链路接收到的VXLAN报文,所述第三VXLAN报文包括第三序列号以及第三业务报文,所述第三序列号指示所述第三业务报文在所述多个业务报文中的位置,所述第三序列号为所述处理器已解封装的所述第一VXLAN报文中的所述第一序列号的下一个序列号;
当所述处理器确定所述存储器中保存了第三VXLAN报文时,所述处理器还用于对所述第三VXLAN报文进行解封装。
15.根据权利要求13所述的第一网络设备,其特征在于,
当第四VXLAN报文在所述存储器中的停留时间大于或等于第一时间阈值时,所述处理器还用于确定第四序列号的值是否小于所述存储器中保存的其他VXLAN报文包含的序列号的值,并且所述处理器还用于确定所述第四序列号的值是否大于所述处理器已解封装的所述第一VXLAN报文中的所述第一序列号的值,其中,所述第四VXLAN报文是所述接收器经由所述第一链路或所述第二链路接收到的VXLAN报文,所述第四VXLAN报文包括所述第四序列号以及第四业务报文,所述第四序列号指示所述第四业务报文在所述多个业务报文中的位置;
当所述处理器确定所述第四序列号的值小于所述存储器中保存的其他VXLAN报文包含的序列号的值,并且所述第四序列号的值大于所述处理器已解封装的所述第一VXLAN报文中的所述第一序列号的值时,所述处理器还用于对所述第四VXLAN报文进行解封装。
16.根据权利要求13所述的第一网络设备,其特征在于,
当第四VXLAN报文在所述存储器中的停留时间大于或等于第一时间阈值时,所述处理器还用于确定第四序列号的值是否大于所述存储器中保存的其他VXLAN报文包含的序列号的值,其中,所述第四VXLAN报文是所述接收器经由所述第一链路或所述第二链路接收到的VXLAN报文,所述第四VXLAN报文包括所述第四序列号以及第四业务报文,所述第四序列号指示所述第四业务报文在所述多个业务报文中的位置;
当所述处理器确定所述第四序列号的值大于所述存储器中保存的其他VXLAN报文包含的序列号的值时,所述处理器还用于对所述第四VXLAN报文在所述存储器中的停留时间清零,并且对所述第四VXLAN报文在所述存储器中的停留时间重新计时。
17.根据权利要求13所述的第一网络设备,其特征在于,
当第四VXLAN报文在所述存储器中的停留时间大于或等于第一时间阈值时,所述处理器还用于确定第四序列号的值是否小于所述存储器中保存的其他VXLAN报文包含的序列号的值,并且所述处理器还用于确定所述第四序列号的值与所述处理器已解封装的所述第一VXLAN报文中的所述第一序列号的值的差值的绝对值是否大于第一序列号阈值,其中,所述第四VXLAN报文是所述接收器经由所述第一链路或所述第二链路接收到的VXLAN报文,所述第四VXLAN报文包括所述第四序列号以及第四业务报文,所述第四序列号指示所述第四业务报文在所述多个业务报文中的位置,所述第一序列号阈值的范围为[0.5N,N],其中,N表示所述第二网络设备发送VXLAN报文的序列号上限值;
当所述处理器确定所述第四序列号的值小于所述存储器中保存的其他VXLAN报文包含的序列号的值,并且所述第四序列号的值与所述处理器已解封装的所述第一VXLAN报文中的所述第一序列号的值的差值的绝对值大于所述第一序列号阈值时,所述处理器还用于对所述第四VXLAN报文进行解封装。
18.根据权利要求12-17中任一项所述的第一网络设备,其特征在于,
所述第一VXLAN报文还包括第一数据流的标识,所述第一数据流包含所述多个业务报文。
19.一种第二网络设备,其特征在于,所述第二网络设备应用在虚拟扩展局域网VXLAN中,所述VXLAN还包括第一网络设备,所述第一网络设备经由VXLAN隧道与所述第二网络设备连接,所述VXLAN隧道包括第一链路以及第二链路,所述第二网络设备包括:
接收器,用于接收来自虚拟机VM的多个业务报文,所述多个业务报文包括第一业务报文和第二业务报文;
处理器,用于根据所述第一业务报文生成第一VXLAN报文,所述第一VXLAN报文包括第一序列号以及所述第一业务报文,所述第一序列号指示所述第一业务报文在所述多个业务报文中的位置;
发送器,用于经由所述第一链路向所述第一网络设备发送所述第一VXLAN报文;
所述处理器还用于根据所述第二业务报文生成第二VXLAN报文,所述第二VXLAN报文包括第二序列号以及所述第二业务报文,所述第二序列号指示所述第二业务报文在所述多个业务报文中的位置,所述第二序列号为所述第一序列号的下一个序列号;
在所述发送器经由所述第一链路向所述第一网络设备发送所述第一VXLAN报文之后,所述发送器还用于经由所述第二链路向所述第一网络设备发送所述第二VXLAN报文。
20.根据权利要求19所述的第二网络设备,其特征在于,
所述第一VXLAN报文包括VXLAN头,所述VXLAN头包括所述第一序列号。
21.根据权利要求19所述的第二网络设备,其特征在于,
所述第一VXLAN报文包括通用网络虚拟化封装GENEVE头,所述GENEVE头包括序列号类型长度值TLV,所述序列号TLV包括所述第一序列号。
22.一种网络系统,其特征在于,所述网络系统包括第一网络设备和第二网络设备,所述第一网络设备为权利要求12至18中任一所述的第一网络设备,所述第二网络设备为权利要求19至21中任一所述的第二网络设备。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810241895.6A CN110300064A (zh) | 2018-03-22 | 2018-03-22 | 一种数据流量处理方法、设备及系统 |
EP18911173.5A EP3764610A4 (en) | 2018-03-22 | 2018-11-28 | DATA TRAFFIC PROCESSING PROCESS, DEVICE AND SYSTEM |
PCT/CN2018/117989 WO2019179161A1 (zh) | 2018-03-22 | 2018-11-28 | 一种数据流量处理方法、设备及系统 |
US17/027,476 US11356372B2 (en) | 2018-03-22 | 2020-09-21 | Data traffic processing method, device, and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810241895.6A CN110300064A (zh) | 2018-03-22 | 2018-03-22 | 一种数据流量处理方法、设备及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110300064A true CN110300064A (zh) | 2019-10-01 |
Family
ID=67988236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810241895.6A Pending CN110300064A (zh) | 2018-03-22 | 2018-03-22 | 一种数据流量处理方法、设备及系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11356372B2 (zh) |
EP (1) | EP3764610A4 (zh) |
CN (1) | CN110300064A (zh) |
WO (1) | WO2019179161A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113824636A (zh) * | 2020-06-18 | 2021-12-21 | 中兴通讯股份有限公司 | 报文发送方法、接收方法、电子设备、系统及存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11115506B2 (en) * | 2019-10-02 | 2021-09-07 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd | Inner VXLAN tunnel packet detection |
CN112637015B (zh) * | 2020-12-23 | 2022-08-26 | 苏州盛科通信股份有限公司 | 一种基于psn实现rdma网络的丢包检测方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014189709A1 (en) * | 2013-05-24 | 2014-11-27 | Alcatel Lucent | System and method for detecting a virtual extensible local area network (vxlan) segment data path failure |
CN107547366A (zh) * | 2017-05-15 | 2018-01-05 | 新华三技术有限公司 | 一种报文转发方法和装置 |
CN107733813A (zh) * | 2016-08-12 | 2018-02-23 | 中兴通讯股份有限公司 | 报文转发方法及装置 |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101459615A (zh) * | 2008-12-25 | 2009-06-17 | 华为技术有限公司 | 一种传输报文的方法、端口和系统 |
CN101917472B (zh) * | 2010-08-12 | 2013-05-29 | 北京星网锐捷网络技术有限公司 | 一种多链路报文的重组方法、装置及设备 |
US9898317B2 (en) * | 2012-06-06 | 2018-02-20 | Juniper Networks, Inc. | Physical path determination for virtual network packet flows |
US9906450B2 (en) * | 2012-07-16 | 2018-02-27 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and system for handling error indications |
JP6236221B2 (ja) * | 2013-05-22 | 2017-11-22 | 富士通株式会社 | 管理プログラム、管理装置、およびネットワークシステム |
US9569301B2 (en) * | 2013-05-24 | 2017-02-14 | Alcatel-Lucent | System and method for detecting a network virtualization using generic routing encapsulation (NVGRE) segment data path failure |
CN104243311B (zh) * | 2013-06-08 | 2018-05-25 | 华为技术有限公司 | 报文处理的方法及路由器 |
CN103490972B (zh) * | 2013-09-27 | 2016-06-22 | 迈普通信技术股份有限公司 | 多链路隧道报文传输方法及系统 |
US10135687B2 (en) * | 2014-01-06 | 2018-11-20 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Virtual group policy based filtering within an overlay network |
US9479457B2 (en) * | 2014-03-31 | 2016-10-25 | Juniper Networks, Inc. | High-performance, scalable and drop-free data center switch fabric |
US20150295729A1 (en) * | 2014-04-09 | 2015-10-15 | Lokesh Bevinamarad | Hardware accelerator for tunnel processing |
EP2966815A4 (en) * | 2014-05-29 | 2016-04-13 | Huawei Tech Co Ltd | PACKET PROCESSING AND VXLAN GATEWAY |
US9419897B2 (en) * | 2014-06-30 | 2016-08-16 | Nicira, Inc. | Methods and systems for providing multi-tenancy support for Single Root I/O Virtualization |
EP3152871B1 (en) * | 2014-07-08 | 2018-09-19 | Huawei Technologies Co., Ltd. | Generic operations, administration, and management (oam) function |
WO2016030724A1 (en) * | 2014-08-29 | 2016-03-03 | Pismo Labs Technology Limited | Methods and systems for transmitting packets through an aggregated connection |
IL238690B (en) * | 2015-05-07 | 2019-07-31 | Mellanox Technologies Ltd | Network-based computational accelerator |
US10505849B1 (en) * | 2015-07-02 | 2019-12-10 | Cisco Technology, Inc. | Network traffic load balancing |
US10038650B2 (en) * | 2015-08-25 | 2018-07-31 | Futurewei Technologies, Inc. | System and method for tunnel stitching transport |
US10050855B1 (en) * | 2015-12-17 | 2018-08-14 | Juniper Networks, Inc. | Maintaining a tunnel liveness session in a multi-chassis link aggregation group topology |
JP6549996B2 (ja) * | 2016-01-27 | 2019-07-24 | アラクサラネットワークス株式会社 | ネットワーク装置、通信方法、及び、ネットワークシステム |
CN107800602B (zh) * | 2016-08-29 | 2021-01-15 | 华为技术有限公司 | 一种报文处理方法、设备及系统 |
US10212071B2 (en) * | 2016-12-21 | 2019-02-19 | Nicira, Inc. | Bypassing a load balancer in a return path of network traffic |
US10601704B2 (en) * | 2017-07-31 | 2020-03-24 | Cisco Technology, Inc. | Asymmetric routing minimization |
US10212089B1 (en) * | 2017-09-21 | 2019-02-19 | Citrix Systems, Inc. | Encapsulating traffic entropy into virtual WAN overlay for better load balancing |
US10693769B2 (en) * | 2017-10-10 | 2020-06-23 | Vmware, Inc. | Methods and apparatus to perform network fabric migration in virtualized server systems |
US10911262B2 (en) * | 2017-10-31 | 2021-02-02 | Cisco Technology, Inc. | Deterministic forwarding across L2 and L3 networks |
US10708240B2 (en) * | 2017-12-14 | 2020-07-07 | Mellanox Technologies, Ltd. | Offloading communication security operations to a network interface controller |
US10917389B2 (en) * | 2018-07-31 | 2021-02-09 | Splunk Inc. | Trusted tunnel bridge |
US11336629B2 (en) * | 2019-11-05 | 2022-05-17 | Vmware, Inc. | Deterministic load balancing of IPSec packet processing |
-
2018
- 2018-03-22 CN CN201810241895.6A patent/CN110300064A/zh active Pending
- 2018-11-28 WO PCT/CN2018/117989 patent/WO2019179161A1/zh unknown
- 2018-11-28 EP EP18911173.5A patent/EP3764610A4/en not_active Withdrawn
-
2020
- 2020-09-21 US US17/027,476 patent/US11356372B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014189709A1 (en) * | 2013-05-24 | 2014-11-27 | Alcatel Lucent | System and method for detecting a virtual extensible local area network (vxlan) segment data path failure |
CN107733813A (zh) * | 2016-08-12 | 2018-02-23 | 中兴通讯股份有限公司 | 报文转发方法及装置 |
CN107547366A (zh) * | 2017-05-15 | 2018-01-05 | 新华三技术有限公司 | 一种报文转发方法和装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113824636A (zh) * | 2020-06-18 | 2021-12-21 | 中兴通讯股份有限公司 | 报文发送方法、接收方法、电子设备、系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2019179161A1 (zh) | 2019-09-26 |
EP3764610A1 (en) | 2021-01-13 |
EP3764610A4 (en) | 2021-03-24 |
US11356372B2 (en) | 2022-06-07 |
US20210014166A1 (en) | 2021-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10757231B2 (en) | Providing network efficiencies in forwarding packets among provider networks and applying segment routing policies | |
US11671367B1 (en) | Methods and apparatus for improving load balancing in overlay networks | |
CN109362085B (zh) | 通过openflow数据平面在云计算机中实现epc | |
US20220078114A1 (en) | Method and Apparatus for Providing Service for Traffic Flow | |
TWI461032B (zh) | 電腦系統及在電腦系統的通信方法 | |
KR101900536B1 (ko) | Openflow 데이터 플레인 및 컨트롤 플레인을 갖는 클라우드 컴퓨터에서의 3g 패킷 코어의 구현 | |
CN101573913B (zh) | 用于多播路由选择的方法和设备 | |
US11165693B2 (en) | Packet forwarding | |
CN104468358A (zh) | 分布式虚拟交换机系统的报文转发方法及设备 | |
US6714541B1 (en) | Method and apparatus for encoding bridging/switching information within a routing information filed in a token ring environment | |
CN100591048C (zh) | 网络流量负载均衡的方法以及第三层交换设备 | |
US11979283B2 (en) | Stacking-port configuration using zero-touch provisioning | |
CN113542111B (zh) | 一种报文转发方法及网络设备 | |
CN110300064A (zh) | 一种数据流量处理方法、设备及系统 | |
CN109936492A (zh) | 一种通过隧道传输报文的方法、装置和系统 | |
WO2003069440A2 (en) | Network processor with high-speed transceiver | |
CN111193644A (zh) | 一种vBRAS业务传输方法、装置、终端设备和介质 | |
JP2001060956A (ja) | トランスポート層マルチリンク通信方法 | |
CN106961487A (zh) | 虚拟机热迁移过程中的数据流自适应调整系统及调整方法 | |
CN105264837A (zh) | 一种数据报文的传输系统、传输方法和设备 | |
WO2024001701A1 (zh) | 数据处理方法、装置及系统 | |
CN110391961A (zh) | 一种隧道绑定方法、设备及系统 | |
CN104471538A (zh) | 一种数据流处理方法、设备和系统 | |
US10581749B2 (en) | Automatic discovery of maximum transmission unit size for a software defined network | |
CN108156066A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191001 |