虚拟机数据分组封装及解封装制造技术

技术编号:11277365 阅读:108 留言:0更新日期:2015-04-09 10:05
根据示例,用于虚拟机(VM)数据分组封装和解封装的方法可以包括:接收包括介质访问控制(MAC)报头和互联网协议(IP)报头的数据分组。该方法还可以包括:通过处理器,对所接收到的数据分组进行封装以包括封装MAC报头、封装IP报头、与接收到的数据分组的MAC报头具有相同内容的VM MAC报头、以及与接收到的数据分组的IP报头具有相同内容的VM IP报头。

【技术实现步骤摘要】
【国外来华专利技术】虚拟机数据分组封装及解封装
技术介绍
网络接口卡(NIC)能够利用通常称为硬件卸载的方法实现硬件中的传输控制协议(TCP)功能。典型的硬件卸载功能包括校验和卸载和TCP分段卸载(TSO)。需要校验和功能来确保在传输过程中遭到破坏的TCP分组被丢弃而不是被传送给应用。校验和功能能够解决数据有效负载、TCP报头以及互联网协议(IP)报头的包括源IP地址和目的地IP地址、分组长度和协议类型的部分。 当源主机上的应用通过TCP连接将大量数据传输到目的地主机时,该数据能够大于下层网络协议层所支持的最大尺寸。典型的以太网网络支持1500字节的最大传输单元(MTU),而其他链路协议可具有不同的MTU值。当应用传输了比所支持的MTU大的数据时,TCP层将该数据分段成较小MTU尺寸的数据分组。这种分段以及跨主机操作系统中的软件网络堆栈的较小MTU尺寸的数据分组的使用会消耗相当大的中央处理单元(CPU)开销。在高带宽网络上,TSO是一种能够用于减少TCP的CPU开销的技术。对于TS0,不是在软件中将数据分段,而是将大块数据传递到Nic以在硬件中进行分段。 在包括一个或多个虚拟机(VM)的虚拟化主机上,TSO以及NIC所提供的其他功能也是有益的。为了在大的云数据中心提供地址空间虚拟化,虚拟化主机的管理程序能够用于将VM传输的数据分组与层2以及其他上层报头进行封装。然而,如果不恰当地封装数据分组,则在NIC上可用的硬件卸载技术的益处将被取消。 【附图说明】 通过举例的方式来图示说明本公开的特征,不受下面附图的限制,在附图中相似的标记指示相似的元件,其中: 图1示出了根据本公开示例的虚拟机数据分组封装和解封装装置的体系结构; 图2示出了根据本公开示例的封装后的数据分组; 图3示出了根据本公开示例的另一封装后的数据分组; 图4示出了根据本公开示例的用于虚拟机数据分组封装和解封装的方法; 图5示出了根据本公开示例的用于虚拟机数据分组封装和解封装的方法的进一步的细节;以及 图6示出了根据本公开示例的计算机系统。 【具体实施方式】 为简化和示例的目的,通过主要参考示例来描述本公开。在下面的说明中,为提供对本公开的充分理解,阐述了多个具体的细节。然而,显然本公开可以在不限于这些具体细节的情况下实施。在其他实例中,为避免不必要地模糊本公开内容,没有对一些方法和结构进行详细说明。 在本公开内容中,术语“一(a)”和“一(an)”意在指示至少一个特定要素。如本文所使用,术语“包括”意指但不限于包括,术语“包括有”意指但不限于包括有。术语“基于”意指至少部分基于。 在虚拟化数据中心中,通过掌管源VM的虚拟化源的管理程序,能够将源虚拟机(VM)传输的数据分组与新的报头封装在一起用于实现地址空间虚拟化。然而,如果不恰当地封装数据分组,则在网络接口卡(NIC)上可用的硬件卸载技术的益处将被取消。例如,NIC能够执行传输控制协议(TCP)分段卸载(TSO),传输校验和,以及接收校验和。这些NIC功能能够减少中央处理单元(CPU)开销,否则这些CPU开销将被虚拟化源用来将数据分组传输到虚拟化目的地上所掌管的目的地虚拟机。 对于TS0,不是在软件中将数据分段,而是将大块数据连同所需的报头信息一起传递到NIC。NIC将数据分段成带有相关报头信息的最大传输单元(MTU)尺寸的数据分组(即,数据分组分段)。NIC进一步创建报头,使得每个数据分组分段都是包含序列号的有效TCP包。对于虚拟化目的地,每个MTU尺寸的数据分组分段能够被转发到软件TCP堆栈,然后被独立地转发到应用,而无需重新创建原始较大尺寸的数据分组。 除了 TSO之外,NIC能够支持校验和卸载。在发送侧,TCP数据分组分段的校验和经计算得出且在传输之前添加到TCP报头。在接收侧,数据分组分段的校验和经重新计算且与数据分组分段报头中的校验和值进行比较以确保完整性。如果NIC没有进行求校验和,则校验和计算将导致在发送侧和接收侧产生大的CPU开销,这是因为校验和计算要读取TCP分段的每个字节。 如上所述,在虚拟化数据中心,通过虚拟化源的管理程序,能够将源VM所传输的数据分组与新的报头封装在一起用于实现地址空间虚拟化。如果不正确地构造添加到数据分组中的新的报头,则不能平衡NIC上的TSO和校验和卸载支持。相反,虚拟化源的管理程序需要在封装之前将源VM数据分组分解成数据分组分段,在发送侧也需要计算数据分组分段校验和。虚拟化目的地的管理程序需要执行相似的操作。这些操作会消耗大量的CPU循环,这会降低数据分组传输的效率。 根据示例,描述了虚拟机数据分组封装和解封装装置以及方法。该方法一般包括:接收包含介质访问控制(MAC)报头和互联网协议(IP)报头的数据分组;以及通过处理器,封装接收到的数据分组以包含封装MAC报头、封装IP报头、与接收到的数据分组的MAC报头具有相同内容的VM MAC报头、以及与接收到的数据分组的IP报头具有相同内容的VM IP报头。该方法还包括^fVM MAC报头和VM IP报头置于封装MAC报头和封装IP报头之后。接收到的数据分组可以被封装以包含与接收到的数据分组的TCP报头具有相同内容的TCP报头,VM MAC报头和VM IP报头可置于封装的数据分组的TCP报头的TCP可选项字段中。可替代地,VM MAC报头和VM IP报头可置于封装IP报头的IP可选项字段中。VM MAC报头和VM IP报头可以包含在由NIC处理的数据分组分段中,例如,包含在数据分组分段的报头中。封装的数据分组可以被传输到虚拟化目的地的NIC,例如,作为处理后的数据分组分段。在一个示例中,封装的数据分组被传输到虚拟化源的NIC,处理后的数据分组分段从虚拟化源的NIC传输到虚拟化目的地的NIC,并且虚拟化目的地的管理程序中的无状态解封装层用来从虚拟化目的地的NIC接收处理后的数据分组分段,并进一步将处理后的数据分组分段进行处理以及传输到虚拟化目的地上的目的地VM(在该情况下,虚拟化目的地的NIC不组合处理后的数据分组分段来形成封装后的数据分组)。可替代地,封装后的数据分组可以被传输到虚拟化源的NIC,可以从虚拟化目的地的NIC接收封装后的数据分组,可以将封装后的数据分组解封装以用VM MAC报头替换封装MAC报头,以及用VM IP报头替换封装IP报头(在该情况下,虚拟化目的地的NIC将处理后的数据分组分段组合以形成封装后的数据分组)。该方法还包括:将封装后的数据分组传输到虚拟化源的NIC,将处理后的数据分组分段从虚拟化源的NIC传输到虚拟化目的地的NIC,从虚拟化目的地的NIC接收处理后的数据分组分段,以及独立于其他处理后的数据分组分段,将数据分组分段传输到虚拟化目的地上的目的地VM。用于虚拟化源和目的地的NIC可用来对封装后的数据分组执行硬件卸载操作,包括TSO以及在发送侧求校验和以及在接收侧求校验和。 对于虚拟机数据分组封装和解封装装置和方法,封装技术提供了 NIC上的TSO与校验和卸载支持的平衡。即使数据分组分段丢失,也能够通过虚拟化目的地来处理和传送其他的数据分组分段。例如,在虚拟化目的地处接收到的任意个体数据分组分段能够被传送到虚拟化目的地的目的地VM本文档来自技高网...

【技术保护点】
一种用于虚拟机(VM)数据分组封装和解封装的方法,所述方法包括:接收包括介质访问控制(MAC)报头和互联网协议(IP)报头的数据分组;以及通过处理器,对接收到的数据分组进行封装以包括封装MAC报头、封装IP报头、与所述接收到的数据分组的MAC报头具有相同内容的VM MAC报头、以及与所述接收到的数据分组的IP报头具有相同内容的VM IP报头。

【技术特征摘要】
【国外来华专利技术】1.一种用于虚拟机(VM)数据分组封装和解封装的方法,所述方法包括: 接收包括介质访问控制(MAC)报头和互联网协议(IP)报头的数据分组;以及通过处理器,对接收到的数据分组进行封装以包括封装MAC报头、封装IP报头、与所述接收到的数据分组的MAC报头具有相同内容的VM MAC报头、以及与所述接收到的数据分组的IP报头具有相同内容的VM IP报头。2.如权利要求1所述的方法,还包括: 将所述VM MAC报头和所述VM IP报头置于所述封装MAC报头和所述封装IP报头之后。3.如权利要求1所述的方法,还包括: 对所述接收到的数据分组进行封装以包括与所述接收到的数据分组的传输控制协议(TCP)报头具有相同内容的TCP报头;以及 将所述VM MAC报头和所述VM IP报头置于封装后的数据分组的TCP报头的TCP可选项字段中。4.如权利要求3所述的方法,还包括: 包含描述在所述TCP可选项字段中携带的可选项类型的关键字段。5.如权利要求3所述的方法,还包括: 包含描述所述VM MAC报头和所述VM IP报头的尺寸的尺寸字段。6.如权利要求1所述的方法,还包括: 将所述VM MAC报头和所述VM IP报头置于所述封装IP报头的IP可选项字段中。7.如权利要求6所述的方法,还包括: 包含描述所述IP可选项字段中携带的可选项类型的关键字段。8.如权利要求6所述的方法,还包括: 包含描述所述VM MAC报头和所述VM IP报头的尺寸的尺寸字段。9.如权利要求1所述的方法,还包括: 在网络接口卡(NIC)所处理的数据分组分段的报头中包含所述VM MAC报头和所述VMIP报头。10.如权利要求1所述的方法,还包括: 将封装后的数据分组传输到虚拟化源的网络接口卡(NIC); 将处理后的数据分组分段从所述虚拟化源的NIC传输到虚拟化目的地的NIC ;以及利用所述虚拟化目的地的管理程序中的无状态解封装层来从所述虚拟化目的地的NIC接收处理后的数据分组分段,并进一步处理所述处理后的数据分组分段且将其传输到所述虚拟化目的地上的目的地VM。11.如权利要求1所述的方法,还包括: 将封装后的数据分组传输到虚拟化源的网络接口卡(NI...

【专利技术属性】
技术研发人员:P·亚拉甘杜拉J·R·G·桑托斯Y·特纳
申请(专利权)人:惠普发展公司有限责任合伙企业
类型:发明
国别省市:美国;US

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

1