书签 分享 收藏 举报 版权申诉 / 12

一种报文封装方法与设备.pdf

  • 上传人:1***
  • 文档编号:1514614
  • 上传时间:2018-06-19
  • 格式:PDF
  • 页数:12
  • 大小:583.83KB
  • 摘要
    申请专利号:

    CN201611185636.3

    申请日:

    2016.12.20

    公开号:

    CN106656724A

    公开日:

    2017.05.10

    当前法律状态:

    实审

    有效性:

    审中

    法律详情:

    实质审查的生效IPC(主分类):H04L 12/46申请日:20161220|||公开

    IPC分类号:

    H04L12/46

    主分类号:

    H04L12/46

    申请人:

    上海优刻得信息科技有限公司

    发明人:

    文旭

    地址:

    200433 上海市杨浦区伟德路6号1207-10室

    优先权:

    专利代理机构:

    上海隆天律师事务所 31282

    代理人:

    钟宗;盛晓颖

    PDF完整版下载: PDF下载
    内容摘要

    本发明提供了一种报文封装方法与设备,报文封装方法包括步骤:接收虚拟主机发出的第一报文;将第一报文的默认分段值进行调整,以使按调整后的分段值对第一报文进行分段并隧道封装后大小不超过最大传输单元值;按调整后的分段值对第一报文进行分段;将分段后的第一报文进行隧道封装,以获得数个第二报文,每个第二报文大小不超过最大传输单元值;将数个第二报文向外发送。通过对第一报文的分段值进行调整,以使得按调整后的分段值对第一报文进行分段并隧道封装后大小不超过宿主机MTU,从而使得宿主机CPU不需要再对隧道封装后的报文进行分片,从而减少了网络设备间的分片报文,提高了传输性能,减少了宿主机CPU消耗。

    权利要求书

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

    说明书

    一种报文封装方法与设备

    技术领域

    本发明涉及网络虚拟化环境下的技术,尤其涉及网络虚拟化环境下的一种报文封
    装方法与设备。

    背景技术

    随着虚拟化和云环境的逐步发展,为了控制不同虚拟机和虚拟机之间,以及虚拟
    机和租户之间的通信,隧道封装技术被越来越多地运用,例如VXLAN(Virtual eXtensible
    Local Area Network,虚拟可扩展局域网)、NVGRE(Network Virtualization using
    Generic Routing Encapsulation,网络虚拟化通用路由封装)。

    隧道封装需要在原始的IP报文前面增加隧道协议报头,因此将使得所传输的报文
    的长度变长。

    在现有技术中,虚拟主机一般会根据自身接口的MTU(Maximum Transmission
    Unit,最大传输单元值),通常是1500字节,来控制所发送的数据报文的大小,但是由于需要
    采用隧道封装技术,使得隧道协议封装后的IP报文的长度增加,从而使得IP报文超出运行
    虚拟主机的宿主机的MTU,因而宿主机需要将IP报文进行分片,以满足宿主机MTU,再由宿主
    机将分片后的IP报文向外传输。

    由于以上原因,会导致网络设备之间在传输IP报文时产生大量的分片报文,降低
    了端到端的传输性能,同时由于需要宿主机CPU(Central Processing Unit,中央处理器)
    对IP报文进行分片,因此增加了CPU的消耗。

    发明内容

    针对以上现有问题,本发明的目的在于在网络虚拟化的云环境下,提供一种报文
    封装方法与设备,能够有效避免分片报文。

    根据本发明的第一个方面,提供一种报文封装方法,包括步骤:接收虚拟主机发出
    的第一报文;将第一报文的默认分段值进行调整,以使按调整后的分段值对第一报文进行
    分段并隧道封装后大小不超过最大传输单元值;按调整后的分段值对第一报文进行分段;
    将分段后的第一报文进行隧道封装,以获得数个第二报文,每个第二报文大小不超过最大
    传输单元值;将数个第二报文向外发送。

    优选地,将第一报文的默认分段值进行调整,以使按调整后的分段值对第一报文
    进行分段并隧道封装后不超过最大传输单元值的步骤包括:判断按默认分段值对第一报文
    进行分段并隧道封装后大小是否超过最大传输单元值;当超过时,减小默认分段值至修改
    分段值,修改分段值满足修改分段值加上传输协议报头以及隧道封装报头后大小不超过最
    大传输单元值;当未超过时,保持默认分段值不变。

    优选地,使用通用分段延后处理对第一报文进行分段以及隧道封装。

    优选地,按调整后的分段值对第一报文进行分段的步骤,以及将分段后的第一报
    文进行隧道封装,以获得数个第二报文的步骤由宿主机的物理网卡执行。

    优选地,将第一报文的默认分段值进行调整,以使按调整后的分段值对第一报文
    进行分段并隧道封装后不超过最大传输单元值的步骤由宿主机的虚拟交换机执行。

    根据本发明的第二个方面,提供一种报文封装设备,包括接收单元,接收单元用于
    接收虚拟主机发出的第一报文;调整单元,调整单元用于调整第一报文的默认分段值,以使
    按调整后的分段值对第一报文进行分段并隧道封装后大小不超过最大传输单元值;分段单
    元,分段单元用于按调整后的分段值对第一报文进行分段;封装单元,封装单元用于将分段
    后的第一报文进行隧道封装,以获得数个第二报文,每个第二报文不超过最大传输单元值;
    发送单元,发送单元用于将第二报文向外发送。

    优选地,调整单元判断按默认分段值对第一报文进行分段并隧道封装后大小是否
    超过最大传输单元值;当超过时,调整单元减小默认分段值至修改分段值,修改分段值满足
    修改分段值加上传输协议报头以及隧道封装报头后大小不超过最大传输单元值;当未超过
    时,调整单元保持默认分段值不变。

    优选地,报文封装设备使用通用分段延后处理对第一报文进行分段以及隧道封
    装。

    优选地,分段单元以及封装单元运行于报文封装设备的物理网卡中。

    优选地,调整单元运行于报文封装设备的中央处理器中。

    本发明中通过对第一报文的分段值进行调整,以使得按调整后的分段值对第一报
    文进行分段并隧道封装后大小不超过宿主机MTU,从而使得宿主机CPU不需要再对隧道封装
    后的报文进行分片,从而减少了网络设备间的分片报文,提高了传输性能,减少了宿主机
    CPU消耗。

    附图说明

    以下结合附图和具体实施例对本发明的技术方案进行详细的说明,以使本发明的
    特性和优点更为明显。

    图1为现有技术中虚拟网络环境下报文封装传输数据流向图;

    图2为本发明的一个实施例的报文封装传输数据流向图;

    图3为本发明的一个实施例的报文封装设备的模块示意图;

    图4为本发明的一个实施例的报文封装方法的流程图;

    图5为图4中步骤S102的详细流程图。

    具体实施方式

    以下将对本发明的实施例给出详细的说明。尽管本发明将结合一些具体实施方式
    进行阐述和说明,但需要注意的是本发明并不仅仅只局限于这些实施方式。相反,对本发明
    进行的修改或者等同替换,均应涵盖在本发明的权利要求范围当中。

    一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操
    作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各
    项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未
    包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。

    应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元
    或是数据,但是这些单元或数据不应当受这些术语限制。使用这些术语仅仅是为了将一个
    数据与另一个数据进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一报文
    可以被称为第二报文,并且类似地第二报文可以被称为第一报文。

    图1为现有技术中虚拟网络环境下报文封装传输数据流向图。下面通过图1对现有
    技术中虚拟网络环境下报文封装以及传输进行介绍。

    如图1所示,虚拟主机1运行在宿主机2中,虚拟主机1通常由客户进行管控。宿主机
    2的硬件通常包括CPU以及物理网卡22,其中CPU运行软件OVS(Open VSwitch,虚拟交换机)
    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为本发明的一个实施例的报文封装方法的流程图。

    结合图2,图3以及图4所示,本发明提供的报文封装设备即宿主机2,包括接收单元
    51,调整单元52,分段单元53,封装单元54以及发送单元55。其中,接收单元51用于接收虚拟
    主机1发出的第一报文31。调整单元52用于调整第一报文31的默认分段值。分段单元53用于
    将第一报文31进行分段,以获得数个分段后第一报文32。封装单元54用于将分段后第一报
    文32进行隧道封装,以获得数个第二报文33。发送单元55用于将第二报文33向网络4发送。

    在本实施例中,接收单元51以及调整单元52被设置在宿主机2的OVS21中,OVS21由
    宿主机2的CPU运行,也就是说接收单元51以及调整单元52运行于宿主机2的CPU中。分段单
    元53,封装单元54以及发送单元55运行于宿主机2的物理网卡22中。

    本发明的报文封装方法包括步骤:

    S101:接收虚拟主机1发出的第一报文31。

    S102:将第一报文31的默认分段值进行调整。

    S103:按调整后的分段值对第一报文31进行分段。

    S104:将分段后第一报文32进行隧道封装,以获得数个第二报文33。

    S105:将数个第二报文33向外发送。

    首先如步骤S101,接收单元51接收来自虚拟主机1发出的第一报文31。为了节省虚
    拟主机1对CPU的消耗,第一报文31可以为超大数据包,即第一报文31的大小超过虚拟主机1
    以及宿主机2的MTU。

    接着如步骤S102,调整单元52对第一报文31的默认分段值进行调整。

    具体而言,图5为图4中步骤S102的详细流程图,首先如步骤S1021,调整单元52判
    断按默认分段值对第一报文31进行分段并隧道封装后大小是否超过宿主机2的MTU。

    通常默认分段值为虚拟主机1的MTU减去传输协议报头。

    作为可选的一种实施方式,调整单元52可以针对特定的隧道封装方式设定分段值
    阈值,当默认分段值超出分段值阈值时,则判定按默认分段值对第一报文31进行分段并隧
    道封装后大小超过宿主机2的MTU。

    接着调整单元52根据不同判定结果对默认分段值进行调整。如步骤S1022,若判定
    超过时,调整单元52减小默认分段值至修改分段值。修改分段值满足修改分段值加上传输
    协议报头以及隧道封装报头后大小不超过宿主机2的MTU。

    作为一可选的实施方式,调整单元52针对不同第一报文31计算优选的修改分段
    值,以使得第一报文31被分段的数量最少。

    在本发明中,修改分段值是基于所有传输层协议的,并不限于TCP(Transmission
    Control Protocol,传输控制协议)协议,对于基于UDP协议(User Datagram Protocol,用
    户数据报协议)的报文同样适用。

    如步骤S1021和S1023,当调整单元52判定按默认分段值对第一报文31进行分段并
    隧道封装后大小未超过宿主机2的MTU时,调整单元52保持默认分段值不变。

    继续参考图2,图3以及图4,如步骤S103,分段单元53按调整后的分段值对第一报
    文31进行分段,以获得数个分段后第一报文32。

    如步骤S104,封装单元54对分段后第一报文32进行隧道封装,以获得数个第二报
    文33。具体而言,封装单元54对于分段后第一报文32加上传输协议报头以及隧道封装报头。
    这里的传输协议报头例如可以是IP协议报头,隧道封装报头例如可以是VXLAN报头。

    最后如步骤S105,发送单元55将数个第二报文33向网络5发送。

    通过以上描述可看出,由于对第一报文1的默认分段值进行了调整,因此本发明中
    的第二报文33不会超过宿主机2的MTU。与现有技术相比,本发明不再需要对第二报文33进
    行分片,从而避免了设备间传输的报文的总数量增加。网络设备也不再需要对分片报文进
    行重组,从而提高了网络设备处理能力。对于宿主机2而言,由于避免了分片处理步骤,减少
    了宿主机2CPU的消耗。同时,也防止报文被网络设备丢弃,增加了传输可靠性。

    在本发明中,接收单元51以及调整单元52运行于宿主机2的CPU中,具体而言,步骤
    S102将第一报文31的默认分段值进行调整的步骤由宿主机2的OVS21执行。由于对于默认分
    段值的调整是由OVS21实现的,不需要虚拟主机1做任何变动,对于客户运营不会产生影响。

    在一优选的实施例中,宿主机2使用GSO技术(Generic Segmentation Offload,通
    用分段延后处理),即宿主机2判断物理网卡22是否支持分段延后处理,如支持,则宿主机2
    将第一报文31分段以及隧道封装的工作延迟到由物理网卡22处理,如不支持,则宿主机2通
    过OVS21处理第一报文31分段以及隧道封装。

    作为一种可选的实施方式,本实施例中,步骤S103以及步骤S104,即按调整后的分
    段值对第一报文31进行分段的步骤,以及将分段后第一报文32进行隧道封装以获得数个第
    二报文33的步骤由宿主机2的物理网卡22执行。也就是说,分段单元53,封装单元54以及发
    送单元55均运行于宿主机2的物理网卡22中。

    通过这样的设置,使得OVS21不再需要对第一报文31进行分段以及隧道封装,而只
    需要对默认分段值进行调整。从而减少了宿主机2CPU的能耗,整体上提高报文处理速度。

    由于本发明不需要对第二报文33进行分片,因此不会发生后续步骤再次由物理网
    卡22转回CPU执行分片的情况,在保证了报文处理速率的同时,也防止了由于后续OVS未进
    行有效分片而导致物理网卡22发出的报文被网络设备丢弃的情况。

    在其他实施例中,对于步骤S103以及步骤S104也可以不由物理网卡22执行,而通
    过OVS21执行。

    需要说明的是,本发明是网络虚拟化环境下的报文封装的一种应用。在本发明的
    实现过程中,会涉及到多个软件功能模块的应用。如在仔细阅读申请文件、准确理解本发明
    的实现原理和发明目的以后,在结合现有公知技术的情况下,本领域技术人员完全可以运
    用其掌握的软件编程技能实现本发明。前述报文封装方法中对报文的具体分段以及隧道封
    装的方法,均可参考现有技术中的方法,前述报文封装设备还包括但不限于存储单元等,凡
    本发明申请文件提及的均属此范畴,申请人不再一一列举。

    以上仅是本发明的具体应用范例,对本发明的保护范围不构成任何限制。除上述
    实施例外,本发明还可以有其它实施方式。凡采用等同替换或等效变换形成的技术方案,均
    落在本发明所要求保护的范围之内。

    关 键  词:
    一种 报文 封装 方法 设备
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:一种报文封装方法与设备.pdf
    链接地址:https://www.zhuanlichaxun.net/p-1514614.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1