CN106230656A - VxLAN数据包封装方法及使用物理网卡发送VxLAN数据包的卸载方法 - Google Patents
VxLAN数据包封装方法及使用物理网卡发送VxLAN数据包的卸载方法 Download PDFInfo
- Publication number
- CN106230656A CN106230656A CN201610587273.XA CN201610587273A CN106230656A CN 106230656 A CN106230656 A CN 106230656A CN 201610587273 A CN201610587273 A CN 201610587273A CN 106230656 A CN106230656 A CN 106230656A
- Authority
- CN
- China
- Prior art keywords
- header
- vxlan
- physical network
- network card
- packet
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- 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
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0888—Throughput
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种VxLAN数据包封装方法以及使用普通物理网卡发送VxLAN数据包的卸载方法,利用物理网卡的驱动程序计算Outer MAC Header、Outer IP Header、UPD Header、VxLAN Header以及Inner MAC Header的长度,并将重新封装为一个伪以太网包头;分别计算Inner IPHeader、Inner L4 Header及Inner Payload4 Header的长度,并将伪以太网包头与Inner IP Header、Inner L4 Header及Inner Payload4 Header进行整体封装;将Outer MAC Header、Inner IP Header、Inner L4 Header及Inner Payload4Header的长度作为配置参数,下发至物理网卡的驱动程序并配置物理网卡的寄存器。通过对VxLAN数据包的数据结构进行重新构造,可由物理网卡卸载VxLAN内层校验和计算和处理数据包分片,减少了CPU及操作系统的计算开销。
Description
技术领域
本发明涉及网络设备技术领域,尤其涉及一种VxLAN数据包封装方法,以及一种使用物理网卡发送VxLAN数据包的卸载方法。
背景技术
Overlay网络是基于现有技术中的物理网络基础之上建立的一张应用层网络,将网络资源通过软件量化的方式表现出来,这样数据中心不用关心实际网络设备是如何互联的,网络配置如何,只要关心能提供的端口和带宽就可以完成业务的部署。Overlay网络可以很好地解决数据中心网络目前面临的主要问题,是未来数据中心网络的主流技术,代表了数据中心网络技术的发展方向。VxLAN是overlay网络的主要实现技术。
VxLAN(Virtual Extensible Local Area Network)是一种将二层报文用三层协议进行封装的技术,可以对二层网络在三层范围进行扩展。每个覆盖域被称为VxLANsegment,它的ID是由位于VxLAN数据包头中的VxLAN Network Identifier(VNI)标识的。VNI字段包含24bits,故segments最大数量为2的24次方,约合16M个。并且只有在相同VxLANsegment内的虚拟机之间才可以相互通信。现有技术中的VxLAN数据包的封装形式如图1所示。
在Overlay网络中,如果不能用硬件对VxLAN数据包的关键操作例如封包、解包、校验和的计算/验证和数据包分片等进行处理,只是单纯用OS和CPU来计算,这将占用大部分计算处理资源,影响整个网络的性能。
检验和(checksum),在数据处理和数据通信领域中,用于校验目的地一组数据项的和。通常用来在通信中,尤其是远距离通信中保证数据的完整性和准确性。现在的网卡一般都是支持普通以太网数据包的校验和计算和分片的硬件卸载,但是不支持VxLAN数据包内层的校验和的计算和分片卸载。
有鉴于此,有必要对现有技术中的VxLAN数据包的封装技术予以改进,以解决上述问题。
发明内容
本发明的目的在于公开一种VxLAN数据包封装方法,用以提高VxLAN网络的吞吐率并减少延迟;本发明的另一个目的在于公开一种使用物理网卡发送VxLAN数据包的卸载方法,用以降低普通网卡的发送数据包的卸载能力,并降低对CPU及操作系统计算资源的消耗。
为实现上述目的之一,本发明提供了一种VxLAN数据包封装方法,其特征在于,包括:利用物理网卡的驱动程序计算Outer MAC Header、Outer IP Header、UPD Header、VxLAN Header以及Inner MAC Header的长度,并将重新封装为一个伪以太网包头;然后将伪以太网包头与Inner IP Header、Inner L4Header及Inner Payload4Header进行整体封装。
为实现第二个发明目的,本发明还提供了一种使用物理网卡发送VxLAN数据包的卸载方法,包包括:利用物理网卡的驱动程序中计算Outer MAC Header、Outer IP Header、UPD Header、VxLAN Header以及Inner MAC Header的长度,并将重新封装为一个伪以太网包头;分别计算Inner IP Header、Inner L4Header及Inner Payload4Header的长度,并将伪以太网包头与Inner IP Header、Inner L4Header及Inner Payload4Header进行整体封装;将所述Outer MAC Header、Inner IP Header、Inner L4Header及InnerPayload4Header的长度作为配置参数,下发至物理网卡的驱动程序,以对物理网卡中的寄存器进行配置。
作为本发明的进一步改进,还包括使用物理网卡的驱动程序对VxLAN Header执行校验和的计算步骤,所述校验和为0。
与现有技术相比,本发明的有益效果是:在上述发明中,通过对VxLAN数据包的结构进行重新构造,实现了使用普通物理网卡来卸载VxLAN内层校验和计算和处理数据包分片,从而减少了CPU及操作系统的计算开销,提高了VxLAN网络的吞吐率并能够有效的减少延迟的发生。
附图说明
图1为现有技术中VxLAN数据包封装结构的示意图;
图2为在本发明中的VxLAN数据包封装结构的示意图;
图3为本发明一种使用物理网卡发送VxLAN数据包的卸载方法的流程图。
具体实施方式
下面结合附图所示的各实施方式对本发明进行详细说明,但应当说明的是,这些实施方式并非对本发明的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、或者结构上的等效变换或替代,均属于本发明的保护范围之内。
在封装一个VxLAN数据包时,外层IP数据包的校验和可以通过软件计算,这个只是和IP首部长度有关,计算过程简单;根据VxLAN RFC定义的规格,外层数据包的UDP头部的校验和可以填充为0,因此只是需要计算内层IP首部的校验和和内层传输层的校验和即可,但影响网络性能的是内层传输层(UDP/TCP)的校验和的计算。一个UDP/TCP的检验和所需要用到的所有信息,包括三个部分:1)UDP/TCP伪首部;2)UDP/TCP首部;3)UDP/TCP的数据部分。所以,如果用软件去计算校验和,数据部分长度越长时候,那么将占用较多的CPU计算资源。
如图2所示,在本实施方式中,二层首部长度l2_len=outer_l2_len+outer_l3_len+outer_udp_len+vxlan_hdr_len+inner_l2_len。并且IP层是内层IP层,所以l3_len也就是inner_l3_len,数据包的传输层是内层的传输层,所以l4_len也就是inner_l4_len;数据包数据部分的长度是内层的数据部分长度data_len=inner_data_len。把计算出来的l2_len、l3_len、l4_len和data_len作为参数传递给网卡驱动程序去配置硬件相应的寄存器,这样网卡在发送VxLAN数据包就会按照重新定义的伪数据包的格式去做校验和(checksum)的计算和数据包的分片,从而使用了普通网卡的发送数据包的卸载能力,这样可以释放CPU的资源去做真正要做的应用程序的计算工作。
如图3所示,本实施方式还公开了一种使用普通物理网卡发送VxLAN数据包的卸载方法,并包括以下步骤:
在本实施方式中,普通网卡选用Intel 82576 1G或者Intel 82599 10G。
P101:在带有物理网卡的服务器中的启动应用程序发送VxLNA协议数据报文;
P102:在驱动程序中分析接收到的应用程序发送的VxLAN数据包,用软件计算外层IP首部校验和,和设置外层的UDP首部校验和为0;
P103:在标准的VxLAN数据报文的基础上,组装伪以太网数据报文,l2_len=outer_l2_len+outer_l3_len+outer_udp_len+vxlan_hdr_len+inner_l2_len,l3_len=inner_l3_len,l4_len=inner_l4_len,data_len=inner_data_len;
P104:然后把重新计算得到l2_len、l3_len、l4_len、data_len的这些伪以太网数据报文的各首部长度作为配置参数在网卡驱动中配置给网卡硬件寄存器。
P105:待伪以太网数据报文发送API返回。
流程结束。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (3)
1.一种VxLAN数据包封装方法,其特征在于,包括:利用物理网卡的驱动程序计算OuterMAC Header、Outer IP Header、UPD Header、VxLAN Header以及Inner MAC Header的长度,并将重新封装为一个伪以太网包头;然后将伪以太网包头与Inner IP Header、InnerL4Header及Inner Payload4Header进行整体封装。
2.一种使用物理网卡发送VxLAN数据包的卸载方法,其特征在于,包括:利用物理网卡的驱动程序中计算Outer MAC Header、Outer IP Header、UPD Header、VxLAN Header以及Inner MAC Header的长度,并将重新封装为一个伪以太网包头;分别计算Inner IPHeader、Inner L4Header及Inner Payload4Header的长度,并将伪以太网包头与Inner IPHeader、Inner L4Header及Inner Payload4Header进行整体封装;将所述Outer MACHeader、Inner IP Header、Inner L4Header及Inner Payload4Header的长度作为配置参数,下发至物理网卡的驱动程序,以对物理网卡中的寄存器进行配置。
3.根据权利要求2所述的使用物理网卡发送VxLAN数据包的卸载方法,其特征在于,还包括使用物理网卡的驱动程序对VxLAN Header执行校验和的计算步骤,所述校验和为0。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610587273.XA CN106230656B (zh) | 2016-07-22 | 2016-07-22 | VxLAN数据包封装方法及使用物理网卡发送VxLAN数据包的卸载方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610587273.XA CN106230656B (zh) | 2016-07-22 | 2016-07-22 | VxLAN数据包封装方法及使用物理网卡发送VxLAN数据包的卸载方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106230656A true CN106230656A (zh) | 2016-12-14 |
CN106230656B CN106230656B (zh) | 2019-03-01 |
Family
ID=57531401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610587273.XA Active CN106230656B (zh) | 2016-07-22 | 2016-07-22 | VxLAN数据包封装方法及使用物理网卡发送VxLAN数据包的卸载方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106230656B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107770031A (zh) * | 2017-10-26 | 2018-03-06 | 郑州云海信息技术有限公司 | 一种可扩展虚拟局域网vxlan报文处理方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104410541A (zh) * | 2014-11-18 | 2015-03-11 | 盛科网络(苏州)有限公司 | Vxlan内层虚拟机流量在中间交换机上进行统计的方法及装置 |
CN105162674A (zh) * | 2015-10-16 | 2015-12-16 | 上海斐讯数据通信技术有限公司 | 一种物理机访问虚拟网络的方法及网卡 |
WO2016086670A1 (zh) * | 2014-12-04 | 2016-06-09 | 中兴通讯股份有限公司 | Vxlan报文传输方法及装置、存储介质 |
-
2016
- 2016-07-22 CN CN201610587273.XA patent/CN106230656B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104410541A (zh) * | 2014-11-18 | 2015-03-11 | 盛科网络(苏州)有限公司 | Vxlan内层虚拟机流量在中间交换机上进行统计的方法及装置 |
WO2016086670A1 (zh) * | 2014-12-04 | 2016-06-09 | 中兴通讯股份有限公司 | Vxlan报文传输方法及装置、存储介质 |
CN105162674A (zh) * | 2015-10-16 | 2015-12-16 | 上海斐讯数据通信技术有限公司 | 一种物理机访问虚拟网络的方法及网卡 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107770031A (zh) * | 2017-10-26 | 2018-03-06 | 郑州云海信息技术有限公司 | 一种可扩展虚拟局域网vxlan报文处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106230656B (zh) | 2019-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9917792B2 (en) | Virtualized application acceleration infrastructure | |
CN103888386B (zh) | 可扩展虚拟局域网报文的传输方法及装置、系统 | |
CN116346635A (zh) | 虚拟私有云的云网络可达性分析 | |
US20090172171A1 (en) | Method and an apparatus for disguising digital content | |
CN105991387A (zh) | 虚拟扩展局域网的报文传输方法和装置 | |
CN114189905A (zh) | 一种报文处理方法及相关设备 | |
US9769116B2 (en) | Encapsulating traffic while preserving packet characteristics | |
CN106789652B (zh) | 业务分流方法及装置 | |
CN108566336A (zh) | 一种网络路径获取方法和设备 | |
CN106385344A (zh) | 一种报文监控方法和装置 | |
CN114553752B (zh) | 基于仿真软件的网络性能测试方法、装置和计算机设备 | |
CN105634977B (zh) | 发现路径最大传输单元的方法和装置 | |
CN106341333B (zh) | 应用于vxlan中的丢包定位方法和装置 | |
TW201408023A (zh) | 於原有硬體中實施活動目標技術之系統及方法 | |
CN106921578A (zh) | 一种转发表项的生成方法和装置 | |
US20230006937A1 (en) | Packet flow identification with reduced decode operations | |
Dollas et al. | An open tcp/ip core for reconfigurable logic | |
CN103001883A (zh) | 一种基于NetFPGA的可编程虚拟路由器内部通信方法 | |
CN108234194A (zh) | 基于sdn的网络拓扑结构发现方法、装置和存储介质 | |
CN106230656A (zh) | VxLAN数据包封装方法及使用物理网卡发送VxLAN数据包的卸载方法 | |
CN107342946A (zh) | 一种基于自协商的通信方法及终端 | |
Beckett et al. | Katra: Realtime verification for multilayer networks | |
CN108737239A (zh) | 一种报文转发方法及装置 | |
CN116074253B (zh) | 一种报文链式转发方法及装置 | |
CN106209906A (zh) | 一种二层隧道协议l2tp报文传输方法及隧道端点设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 | ||
CP01 | Change in the name or title of a patent holder |
Address after: 214000, science and software park, Binhu District, Jiangsu, Wuxi 6 Patentee after: Huayun data holding group Co., Ltd Address before: 214000, science and software park, Binhu District, Jiangsu, Wuxi 6 Patentee before: WUXI CHINAC DATA TECHNICAL SERVICE Co.,Ltd. |
|
CP01 | Change in the name or title of a patent holder |