VxLAN数据包封装方法及使用物理网卡发送VxLAN数据包的卸载方法技术

技术编号:14182516 阅读:693 留言:0更新日期:2016-12-14 11:51
本发明专利技术提供了一种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及操作系统的计算开销。

VxLAN data packet encapsulation method and unloading method using physical network card to send VxLAN data packet

The invention provides a VxLAN packet encapsulation method and method of unloading using ordinary physical card sending VxLAN packet, Outer MAC Header, computing Outer IP Header, UPD Header, VxLAN Header and Inner MAC Header the length of the driver using the physical network card, and re package as a pseudo Ethernet Baotou; IPHeader, Inner and Inner were calculated L4 Header and Inner Payload4 Header length, and the pseudo Ethernet Baotou and Inner Header, Inner IP L4 Header and Inner Payload4 Header whole package; Outer Header, Inner MAC IP Header, Inner L4 and Inner Header Payload4Header in length as the configuration parameters, issued to the physical network card driver and the configuration of physical register card. Through the reconstruction of the data structure of the VxLAN data packet, the physical network card can be used to unload the VxLAN inner layer and calculate and process the data packet fragmentation, which reduces the computation cost of CPU and the operating system.

【技术实现步骤摘要】

本专利技术涉及网络设备
,尤其涉及一种VxLAN数据包封装方法,以及一种使用物理网卡发送VxLAN数据包的卸载方法。
技术介绍
Overlay网络是基于现有技术中的物理网络基础之上建立的一张应用层网络,将网络资源通过软件量化的方式表现出来,这样数据中心不用关心实际网络设备是如何互联的,网络配置如何,只要关心能提供的端口和带宽就可以完成业务的部署。Overlay网络可以很好地解决数据中心网络目前面临的主要问题,是未来数据中心网络的主流技术,代表了数据中心网络技术的发展方向。VxLAN是overlay网络的主要实现技术。VxLAN(Virtual Extensible Local Area Network)是一种将二层报文用三层协议进行封装的技术,可以对二层网络在三层范围进行扩展。每个覆盖域被称为VxLAN segment,它的ID是由位于VxLAN数据包头中的VxLAN Network Identifier(VNI)标识的。VNI字段包含24bits,故segments最大数量为2的24次方,约合16M个。并且只有在相同VxLAN segment内的虚拟机之间才可以相互通信。现有技术中的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及Inner Payload4Header的长度作为配置参数,下发至物理网卡的驱动程序,以对物理网卡中的寄存器进行配置。作为本专利技术的进一步改进,还包括使用物理网卡的驱动程序对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的这些伪以太网数据报文的各首本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/62/201610587273.html" title="VxLAN数据包封装方法及使用物理网卡发送VxLAN数据包的卸载方法原文来自X技术">VxLAN数据包封装方法及使用物理网卡发送VxLAN数据包的卸载方法</a>

【技术保护点】
一种VxLAN数据包封装方法,其特征在于,包括:利用物理网卡的驱动程序计算Outer MAC Header、Outer IP Header、UPD Header、VxLAN Header以及Inner MAC Header的长度,并将重新封装为一个伪以太网包头;然后将伪以太网包头与Inner IP Header、Inner L4Header及Inner Payload4Header进行整体封装。

【技术特征摘要】
1.一种VxLAN数据包封装方法,其特征在于,包括:利用物理网卡的驱动程序计算Outer MAC Header、Outer IP Header、UPD Header、VxLAN Header以及Inner MAC Header的长度,并将重新封装为一个伪以太网包头;然后将伪以太网包头与Inner IP Header、Inner L4Header及Inner Payload4Header进行整体封装。2.一种使用物理网卡发送VxLAN数据包的卸载方法,其特征在于,包括:利用物理网卡的驱动程序中计算Outer MAC Header、Outer IP Header、UPD Header、VxLAN Header以及Inner MAC Header的长度,并将重新封...

【专利技术属性】
技术研发人员:许广彬郑军张银滨刘晓欣刘志坤刘继江田大鹏
申请(专利权)人:无锡华云数据技术服务有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1