一种报文封装方法与设备技术

技术编号:15297275 阅读:71 留言:0更新日期:2017-05-11 19:32
本发明专利技术提供了一种报文封装方法与设备,报文封装方法包括步骤:接收虚拟主机发出的第一报文;将第一报文的默认分段值进行调整,以使按调整后的分段值对第一报文进行分段并隧道封装后大小不超过最大传输单元值;按调整后的分段值对第一报文进行分段;将分段后的第一报文进行隧道封装,以获得数个第二报文,每个第二报文大小不超过最大传输单元值;将数个第二报文向外发送。通过对第一报文的分段值进行调整,以使得按调整后的分段值对第一报文进行分段并隧道封装后大小不超过宿主机MTU,从而使得宿主机CPU不需要再对隧道封装后的报文进行分片,从而减少了网络设备间的分片报文,提高了传输性能,减少了宿主机CPU消耗。

Packet encapsulation method and device

The invention provides a device and packet encapsulation method, packet encapsulation method comprises the steps of: receiving a first message from the virtual host; the default first message segment value is adjusted to make the first packet segmentation and tunnel encapsulation after small does not exceed the maximum transmission unit value according to the partition adjusted according to the partition value; the adjusted value of the first message segment; the first segment of message tunnel encapsulation, in order to obtain a number of second packets, each of the second packet size does not exceed the maximum transmission unit value; a number of messages sent out second. Adjust the value of the first section through the message, so that according to the adjusted value of the first sub message segments and after the tunnel encapsulation size does not exceed the MTU host, so that the host CPU does not need the message after the tunnel encapsulation piece, thereby reducing the fragments between network equipment, improve the transmission performance of the host CPU to reduce consumption.

【技术实现步骤摘要】

本专利技术涉及网络虚拟化环境下的技术,尤其涉及网络虚拟化环境下的一种报文封装方法与设备
技术介绍
随着虚拟化和云环境的逐步发展,为了控制不同虚拟机和虚拟机之间,以及虚拟机和租户之间的通信,隧道封装技术被越来越多地运用,例如VXLAN(VirtualeXtensibleLocalAreaNetwork,虚拟可扩展局域网)、NVGRE(NetworkVirtualizationusingGenericRoutingEncapsulation,网络虚拟化通用路由封装)。隧道封装需要在原始的IP报文前面增加隧道协议报头,因此将使得所传输的报文的长度变长。在现有技术中,虚拟主机一般会根据自身接口的MTU(MaximumTransmissionUnit,最大传输单元值),通常是1500字节,来控制所发送的数据报文的大小,但是由于需要采用隧道封装技术,使得隧道协议封装后的IP报文的长度增加,从而使得IP报文超出运行虚拟主机的宿主机的MTU,因而宿主机需要将IP报文进行分片,以满足宿主机MTU,再由宿主机将分片后的IP报文向外传输。由于以上原因,会导致网络设备之间在传输IP报文时产生大量的分片报文,降低了端到端的传输性能,同时由于需要宿主机CPU(CentralProcessingUnit,中央处理器)对IP报文进行分片,因此增加了CPU的消耗。
技术实现思路
针对以上现有问题,本专利技术的目的在于在网络虚拟化的云环境下,提供一种报文封装方法与设备,能够有效避免分片报文。根据本专利技术的第一个方面,提供一种报文封装方法,包括步骤:接收虚拟主机发出的第一报文;将第一报文的默认分段值进行调整,以使按调整后的分段值对第一报文进行分段并隧道封装后大小不超过最大传输单元值;按调整后的分段值对第一报文进行分段;将分段后的第一报文进行隧道封装,以获得数个第二报文,每个第二报文大小不超过最大传输单元值;将数个第二报文向外发送。优选地,将第一报文的默认分段值进行调整,以使按调整后的分段值对第一报文进行分段并隧道封装后不超过最大传输单元值的步骤包括:判断按默认分段值对第一报文进行分段并隧道封装后大小是否超过最大传输单元值;当超过时,减小默认分段值至修改分段值,修改分段值满足修改分段值加上传输协议报头以及隧道封装报头后大小不超过最大传输单元值;当未超过时,保持默认分段值不变。优选地,使用通用分段延后处理对第一报文进行分段以及隧道封装。优选地,按调整后的分段值对第一报文进行分段的步骤,以及将分段后的第一报文进行隧道封装,以获得数个第二报文的步骤由宿主机的物理网卡执行。优选地,将第一报文的默认分段值进行调整,以使按调整后的分段值对第一报文进行分段并隧道封装后不超过最大传输单元值的步骤由宿主机的虚拟交换机执行。根据本专利技术的第二个方面,提供一种报文封装设备,包括接收单元,接收单元用于接收虚拟主机发出的第一报文;调整单元,调整单元用于调整第一报文的默认分段值,以使按调整后的分段值对第一报文进行分段并隧道封装后大小不超过最大传输单元值;分段单元,分段单元用于按调整后的分段值对第一报文进行分段;封装单元,封装单元用于将分段后的第一报文进行隧道封装,以获得数个第二报文,每个第二报文不超过最大传输单元值;发送单元,发送单元用于将第二报文向外发送。优选地,调整单元判断按默认分段值对第一报文进行分段并隧道封装后大小是否超过最大传输单元值;当超过时,调整单元减小默认分段值至修改分段值,修改分段值满足修改分段值加上传输协议报头以及隧道封装报头后大小不超过最大传输单元值;当未超过时,调整单元保持默认分段值不变。优选地,报文封装设备使用通用分段延后处理对第一报文进行分段以及隧道封装。优选地,分段单元以及封装单元运行于报文封装设备的物理网卡中。优选地,调整单元运行于报文封装设备的中央处理器中。本专利技术中通过对第一报文的分段值进行调整,以使得按调整后的分段值对第一报文进行分段并隧道封装后大小不超过宿主机MTU,从而使得宿主机CPU不需要再对隧道封装后的报文进行分片,从而减少了网络设备间的分片报文,提高了传输性能,减少了宿主机CPU消耗。附图说明以下结合附图和具体实施例对本专利技术的技术方案进行详细的说明,以使本专利技术的特性和优点更为明显。图1为现有技术中虚拟网络环境下报文封装传输数据流向图;图2为本专利技术的一个实施例的报文封装传输数据流向图;图3为本专利技术的一个实施例的报文封装设备的模块示意图;图4为本专利技术的一个实施例的报文封装方法的流程图;图5为图4中步骤S102的详细流程图。具体实施方式以下将对本专利技术的实施例给出详细的说明。尽管本专利技术将结合一些具体实施方式进行阐述和说明,但需要注意的是本专利技术并不仅仅只局限于这些实施方式。相反,对本专利技术进行的修改或者等同替换,均应涵盖在本专利技术的权利要求范围当中。一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元或是数据,但是这些单元或数据不应当受这些术语限制。使用这些术语仅仅是为了将一个数据与另一个数据进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一报文可以被称为第二报文,并且类似地第二报文可以被称为第一报文。图1为现有技术中虚拟网络环境下报文封装传输数据流向图。下面通过图1对现有技术中虚拟网络环境下报文封装以及传输进行介绍。如图1所示,虚拟主机1运行在宿主机2中,虚拟主机1通常由客户进行管控。宿主机2的硬件通常包括CPU以及物理网卡22,其中CPU运行软件OVS(OpenVSwitch,虚拟交换机)21,通过OVS21以及物理网卡22对宿主机2的报文进行处理。现有技术中,当虚拟主机1需要向网络4发送报文时,首先由虚拟主机1发出第一报文31,宿主机2的OVS21接收第一报文31。OVS21根据第一报文31的默认分段值对第一报文31进行分段,从而获得数个分段后第一报文32。接着OVS21对分段后第一报文32进行隧道封装,以获得数个第二报文33。当第二报文33的长度超出宿主机2的MTU时,OVS21会对第二报文33进行分片,即将超出MTU的第二报文33分成数个分片报文34。OVS21将上述的第二报文33以及分片报文34发送给物理网卡22,由物理网卡22发向网络4。根据上述描述可看出,由于第二报文33被分为分片报文34,从而使得设备间传输的报文的总数量增加。在网络设备接收时,需要接收所有分片报文34,并对分片报文34进行重组,即将分片报文34重新组成为一个完整报文后再处理,因此使得网络设备处理能力下降。对于宿主机2而言,由于需要增加分片处理,增加了宿主机2CPU消耗。在一些情况下,更可能由于未进行有效分片而导致物理网卡22发出的报文被网络设备丢弃。本专利技术正是针对以上现有技术中的报文分片问题。图2为本专利技术的一个实施例的报文封装传输数据流向图。图3为本专利技术的一个实施例的报文封装设备的模块示意图。图4为本专利技术的一个实施例本文档来自技高网...
一种报文封装方法与设备

【技术保护点】
一种报文封装方法,其特征在于,包括步骤:接收虚拟主机发出的第一报文;将第一报文的默认分段值进行调整,以使按调整后的分段值对所述第一报文进行分段并隧道封装后大小不超过最大传输单元值;按调整后的分段值对第一报文进行分段;将分段后的第一报文进行隧道封装,以获得数个第二报文,每个所述第二报文大小不超过最大传输单元值;将所述数个第二报文向外发送。

【技术特征摘要】
1.一种报文封装方法,其特征在于,包括步骤:接收虚拟主机发出的第一报文;将第一报文的默认分段值进行调整,以使按调整后的分段值对所述第一报文进行分段并隧道封装后大小不超过最大传输单元值;按调整后的分段值对第一报文进行分段;将分段后的第一报文进行隧道封装,以获得数个第二报文,每个所述第二报文大小不超过最大传输单元值;将所述数个第二报文向外发送。2.如权利要求1所述的报文封装方法,其特征在于,所述将第一报文的默认分段值进行调整,以使按调整后的分段值对所述第一报文进行分段并隧道封装后不超过最大传输单元值的步骤包括:判断按所述默认分段值对所述第一报文进行分段并隧道封装后大小是否超过最大传输单元值;当超过时,减小所述默认分段值至修改分段值,所述修改分段值满足所述修改分段值加上传输协议报头以及隧道封装报头后大小不超过最大传输单元值;当未超过时,保持所述默认分段值不变。3.如权利要求1所述的报文封装方法,其特征在于,使用通用分段延后处理对所述第一报文进行分段以及隧道封装。4.如权利要求3所述的报文封装方法,其特征在于,所述按调整后的分段值对第一报文进行分段的步骤,以及所述将分段后的第一报文进行隧道封装,以获得数个第二报文的步骤由宿主机的物理网卡执行。5.如权利要求1至4中任意一项所述的报文封装方法,其特征在于,所述将第一报文的默认分段值进行调整,以使按调整后的分段值对所述第一报文进行分段并隧...

【专利技术属性】
技术研发人员:文旭
申请(专利权)人:上海优刻得信息科技有限公司
类型:发明
国别省市:上海;31

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

1