TCP卸载对企业网络的利与弊

日期: 2013-12-29 作者:Stephen J. Bigelow翻译:陈德文 来源:TechTarget中国 英文

TCP卸载是为提高数据中心网络性能和可靠性而开发的,但对该技术的理解错误可能造成适得其反的效果。 在传统网络中,CPU处理涉及到传输数据的所有任务:分组内存中需要外发的数据包,计算每个包的校验和,为数据包添加头部信息并将包交给网络接口缓存。CPU同样负责处理网络数据接收——其原理与发送数据正相反。 传输控制协议/Internet协议(TCP/IP)通信增加了处理器的开销,这样可能影响到负载计算任务的性能。

当数据中心部署高带宽网络,如千兆甚至万兆以太网时,CPU处理此类事务的开销会增加。某些现代数据中心技术,如iSCSI和其他基于网络的存储,以及虚拟化技术,都会因为网络传输要求而增加CPU开销。……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

TCP卸载是为提高数据中心网络性能和可靠性而开发的,但对该技术的理解错误可能造成适得其反的效果。

在传统网络中,CPU处理涉及到传输数据的所有任务:分组内存中需要外发的数据包,计算每个包的校验和,为数据包添加头部信息并将包交给网络接口缓存。CPU同样负责处理网络数据接收——其原理与发送数据正相反。

传输控制协议/Internet协议(TCP/IP)通信增加了处理器的开销,这样可能影响到负载计算任务的性能。当数据中心部署高带宽网络,如千兆甚至万兆以太网时,CPU处理此类事务的开销会增加。某些现代数据中心技术,如iSCSI和其他基于网络的存储,以及虚拟化技术,都会因为网络传输要求而增加CPU开销。

要将CPU从网络相关的任务中释放出来,新的网络控制器将接手整个TCP/IP栈的处理任务。控制器处理所有的包制作、校验和、缓冲以及其他任务,并且与主机交换数据块。

TCP Chimney、TSO和TOE都是卸载技术。TCP/IP卸载引擎(TOE)一词是基于网络控制器供应商而创造的。TCP分段卸载(TSO)技术被用于某些虚拟化环境,如VMware。TCP Chimney Offload是微软提供的软件卸载功能。虽然卸载产品的特性与功能可能会有所不同,但这三技术最终目的基本一致。

卸载技术并不是解决所有网络问题的万能药

虽然TCP卸载技术有其承诺的优势,但也存在局限。TCP卸载控制器会比其他控制器更容易出现资源不足的情况。如果控制器负载过重,可能会引发网络性能问题。专有的TCP卸载技术实现可能需要对TCP/IP栈进行大量更改,从而降低支持与安全性,提高了复杂度,并且可能影响到服务质量(QoS)以及其他网络功能。

不是每个数据中心都能从TCP卸载技术中收益。主机系统正在变得越来越快,下一代服务器无须卸载网络控制器,就可以比现有旧系统更好地处理网络事务。如果服务器完成任务比TCP卸载控制器更快的传输确认还快,那么可能导致通信错误。

几乎涉及到TCP/IP卸载产品的功能与性能问题都与软件有关。在处理卸载引擎问题时,首先考虑进行软件更新或升级,通常需要进行固件与驱动更新。例如,如果卸载引擎集成在系统主板上,考虑更新主板驱动来解决网络问题。如果卸载引擎是作为PCI-E(PCIe)适配器独立安装,那么可以考虑更新该适配器的固件,而不是主板。类似的,为虚拟化管理平台和虚拟机操作系统寻找与更新驱动程序。就如同任何升级一样,首先在实验室环境里进行测试。

如果需要禁用网络控制器的卸载功能以进行测试或故障排除,可以通过BIOS上的网络控制器设置来启用/禁用该功能。如果网络控制器集成在系统主板上,可以通过重启系统进入BIOS进行设置。如果卸载适配器是安装在PCIe插槽中,可以试试通过适配器所专有的配置工具来修改选项。或者,尝试在Windows下连接属性对话框里的高级选项卡上禁用卸载功能。如果使用基于软件的卸载引擎,如TCP Chimney,可能需要访问系统注册表并禁用相关注册项。请无比参考供应商文档以启用或禁用卸载功能。

网络卸载引擎替代方案

对完整TCP卸载产品的批评不断,有些IT专家们开始考虑另外的道路。

替代方案之一就是TCP校验和卸载;系统CPU依旧穿梭数据之间并组装/拆卸头部信息,但在网络控制器计算校验和,并将其插入到该数据包,并在接受过程中对其进行验证。由于校验和计算以及检查需要时间,从CPU中卸载这些任务可以提升性能,而无须批量重构操作系统的TCP/IP栈。

另一种流行的选择就是大段卸载(LSO)技术,或TSO。LSO/TSO卸载所有外发数据的网络任务。主机系统负责简单的传输内存数据到网络控制器缓存,然后网络控制器将外发数据分段为数据包,并帮助它们传输。网络适配器通常都支持LSO或TSO。

LSO/TSO对接的部分是大型接收卸载(LRO),其卸载所有传入数据的网络任务。网络控制器会剥掉传入的数据包报头,验证校验和,并将数据组装存放到缓冲区,服务器会定期来取这些数据。LRO比LSO更不流行,但目前正变得越来越普遍。

这些技术依赖于操作系统的TCP/IP栈为模版,避免了那些不同架构堆栈可能引发的问题。

由于服务器计算能力远比TOE产品发展的快,现代服务器拥有大量CPU核心与内存来处理大部分网络任务,无须对TCP/IP协议栈进行任何调整。除非你的数据中心有十分极端的网络需求,使用TOE适配器可能无法达到满意的效果。尽管如此,卸载技术的替代选项,如校验和、LSO与LRO都已经成为数据中心内广泛部署,用于优化虚拟机服务器资源的常见技术。

作者

Stephen J. Bigelow
Stephen J. Bigelow

数据中心和虚拟化网站的高级技术编辑,拥有20年的PC和技术写作经验。

翻译

陈德文
陈德文

TechTarget中国特约编辑

相关推荐