借助TCP Express优化WAN和LAN应用性能

概述

对于交付互联网和外联网应用的企业,TCP/IP效率低下,加之WAN延迟和丢包的影响,会共同降低应用性能。结果是应用响应时间延长,带宽利用效率(即“填满管道”的能力)显著下降。

F5的BIG-IP Local Traffic Manager提供先进的TCP/IP协议栈,可显著提升实际网络中的WAN和LAN应用性能,而不是针对无法准确模拟真实客户端和互联网环境的数据包压力测试工具进行优化。

这一高度优化的TCP/IP协议栈称为TCP Express,融合了多项先进的TCP/IP技术以及最新RFC中的改进。F5开发的多项改进和扩展可最大限度地降低拥塞和数据包丢失的影响,并改善恢复能力。独立测试工具和客户实践表明,无需更改服务器、应用或客户端桌面,TCP Express即可将最终用户的性能提升至多2倍,并将带宽效率提升4倍。

解决方案

TCP Express:F5优化的TCP协议栈

F5的TCP Express是一款基于标准的先进TCP/IP协议栈,既利用各种客户端和服务器操作系统原生支持的优化功能,也采用不依赖特定操作系统的优化技术。F5的TCP/IP协议栈包含数百项改进,可提升WAN和LAN的效率,其中包括:

  • 对于高速LAN:F5的TCP协议栈可快速扩展缓冲区大小并检测低延迟,以管理拥塞。
  • 对于低速WAN:F5的TCP协议栈可检测客户端速度并估算带宽,以减少丢包,并在发生丢包时缩短恢复时间。

BIG-IP Local Traffic Manager的核心是TMOS架构,它为所有BIG-IP平台和软件附加模块提供F5优化的TCP/IP协议栈。这些独特的优化适用于LAN和WAN通信中的客户端和服务器,使F5解决方案相比无法提供同等功能的逐包处理系统更具优势;后者在优化水平、丢包恢复能力以及性能欠佳的客户端与服务器之间的协调能力方面也难以企及。

F5的TMOS全代理架构与TCP Express相结合,可显著提升所有基于TCP的应用的性能。实践证明,借助这些技术,BIG-IP可以:

  • 提高所有连接客户端类型的传输速率
    • 宽带用户的性能平均提升79%
    • 拨号客户端的性能平均提升35%
  • 提高拨号客户端的连接可靠性
    • TCP/IP错误平均减少56%(主要是TCP超时)
  • 提高现有各ISP提供商的带宽利用效率
    • 线路传输的数据量增加224%(提升至3.2倍)
    • 线路上传输的数据包减少50%(提升2倍)
    • 消除了63%的“空”TCP数据包(提升至2.7倍)

以下各节介绍TMOS支持架构,以及TCP Express用于优化流量的部分标准TCP RFC和优化技术。由于不存在适用于所有场景的统一解决方案,本文还将介绍如何自定义TCP Profiles,以及如何处理与旧系统的通信。

TMOS架构与TCP/IP协议栈代理

大多数组织不会频繁更新服务器操作系统,有些应用仍在非常老旧的系统上运行。通过WAN交付应用时,这类遗留基础设施可能会造成明显延迟。搭载TCP Express的BIG-IP Local Traffic Manager可以隔离企业数据中心服务器上可能运行的旧版或不合规TCP协议栈,并以透明方式对其进行优化。该方案在保持与这些设备兼容的同时,可在连接的客户端侧独立利用F5的TCP/IP协议栈优化,为每台连接的设备和各种网络状况提供完全独立且经过优化的TCP行为。

TMOS作为连接各种TCP/IP协议栈的全代理,是实现F5独特的TCP Express功能集中多项WAN优化的关键。客户端与服务器连接相互隔离、分别控制并独立优化,从而为每台连接设备提供出色性能。

BIG-IP Local Traffic Manager无需客户端和服务器通过协商采用最低通用通信标准。它代表客户端进行中介处理(称为“协议栈代理”),并使用TCP Express优化客户端侧交付,同时在网络内部维持针对服务器优化的连接,如下图所示。

组织通常没有足够的资源来移除或更换旧版服务器和应用,也可能并无此必要。为适配这些系统,BIG-IP Local Traffic Manager可提供中介转换,在未经优化甚至不兼容的设备之间实现互通,包括:

  • 为客户端和服务器分别维护MSS,确保双方都能以适当速率传输数据。客户端和服务器通过交换MSS,确定TCP通信中每个报文段可承载的最大数据量。双方通过协商MSS来尽可能提高通信兼容性,但由于必须采用双方均支持的最低MSS值,往往会导致客户端或服务器一方无法实现优化。
  • 当客户端连接到不支持这些优化的服务器时,仍可为客户端保留TCP选择性确认(SACK)、TCP时间戳等多项优化。
  • 为每台连接的设备(每个客户端和每台服务器)动态自动优化TCP窗口大小和TCP拥塞信息。
  • 保持不同协议栈之间的互操作性,例如Windows与不支持TCP FIN-PUSH的旧版Solaris系统。这只是各种协议栈互操作性问题中的一个例子;此类问题往往会给需要服务广泛用户群体的企业带来挑战。

除了改善WAN通信外,BIG-IP Local Traffic Manager还充当所有客户端与后端服务器之间的桥梁或转换设备,将这些功能扩展到整个基础设施。最终,BIG-IP Local Traffic Manager既能提升性能,又能屏蔽网络中的低效问题。这样无需更新和调优每个客户端及服务器,有助于降低成本和复杂性。

F5对TCP/IP RFC的改进

F5对TCP/IP的一些重要改进包括:

  • 客户端加速和错误规避
  • 链路利用率提升
  • 可自定义的TCP控制

这些改进基于行业标准RFC。以下各节重点介绍TCP Express采用的一些关键RFC。

客户端加速和错误规避RFC

  • 延迟确认、Nagle算法(RFC 896、1122)通过减少必须传输的数据包数量,使BIG-IP Local Traffic Manager能够加快数据交付。延迟确认提供了一种标准机制,用于确定何时需要发送确认包,从而帮助减少冗余确认包。此外,Nagle算法提供了一种标准方法,可将多个较小的数据包合并为数量更少、体积更大的数据包。
  • 选择性确认 (RFC 2018、RFC 2883)使BIG-IP Local Traffic Manager能够更高效、更快速地处理广域网和有损网络中丢失及乱序的数据包。Windows XP及更高版本在进行互联网通信时默认启用此功能,其他所有现代TCP协议栈也默认启用此功能。扩展功能支持指定使用SACK选项或确认重复数据包。
  • 显式拥塞通知 ECN(RFC 3168、2481)使BIG-IP Local Traffic Manager能够主动向对等端发出中间路由器过载的信号,以便对等端降低发送速率,避免丢包。TCP标头中的保留标志(ECE和CWR)可用于向对等端反馈拥塞情况。
  • 有限重传和快速重传 (RFC 3042、RFC 2582)支持高效重传丢失的数据,从而可消除数据包丢失导致的超时影响。
  • 自适应初始拥塞窗口 (RFC 3390)可降低TCP慢启动拥塞避免的开销。对较大初始拥塞窗口的研究表明,通过卫星链路进行HTTP传输时,性能可提升30%;对于速率为28.8 bps的拨号用户,性能可提升10%,且丢包率并未随之上升。当TCP连接共享同一路径时(向100台互联网主机传输16 KB数据),与使用单个报文段的初始窗口相比,将窗口增至4个报文段(MSS为512字节)可使传输性能提升约25%。

链路利用率改进相关RFC

  • 采用拥塞避免机制的TCP慢启动(RFC 3390、2581)此方法可逐步确定链路上的适当数据传输量,避免链路拥塞和数据包丢失。此功能有助于组织提高带宽利用率,从而提升现有公共互联网连接和租用线路的吞吐率。
  • 带宽时延控制 (RFC 793、RFC 2914、RFC 1257)F5改进并扩展了带宽时延计算功能,可更准确地估算网络在不超出承载能力的情况下所能承受的适宜负载。

TCP扩展RFC

  • 时间戳 (RFC 1323)BIG-IP Local Traffic Manager支持选择性使用时间戳,在TCP段中添加数据,以协助实现其他优化。时间戳在现代网络中优势显著,但某些旧式路由器和NAT设备会将时间戳清零或不予更新,导致其无法发挥作用。因此,可以按配置文件调整这些功能及其他功能。
  • 降低TCP TIME-WAIT终止风险(RFC 1337)优化TIME-WAIT行为可以避免一些潜在的通信错误,尤其是在TIME-WAIT状态下收到重置报文段时不执行任何操作。
  • 防御序列号攻击 (RFC1948)TCP Express使用安全的ISN生成机制,可阻止大多数序列号猜测攻击。
  • 改进TCP拥塞管理(RFC 3168)TCP Express采用当前互联网上可用的各种最新TCP拥塞避免和拥塞恢复方法,以提高可用带宽,并在发生拥塞时加快恢复速度。
  • 改进大拥塞窗口TCP的慢启动机制(RFC 3742)采用更保守的慢启动行为,避免连接使用超大TCP窗口时出现大量丢包。
  • 适当字节计数(RFC 3465)根据每个ACK所确认的此前未确认字节数,更智能地调整窗口大小,从而提升TCP性能。
  • 改进TCP快速恢复算法(NewReno) (RFC 3782)NewReno对TCP快速恢复算法做了小幅修改,使TCP发送方能够利用部分确认进行推断,从而在SACK有助于传输但不可用的情况下,确定接下来要发送的报文段。

整体性能提升

由于TCP Express实施了数百项经过实际应用验证的TCP互操作性改进,并针对市售产品的协议栈(Windows 7及更高版本、IBM AIX、Sun Solaris等)提供修复或解决方法,因此大部分性能提升并非源自某一种优化技术。这些优化取决于具体的客户端和服务器类型以及流量特征。例如:

  • 对于带宽更充裕的宽带连接,大多数TCP本身无法高效利用全部链路容量,因此BIG-IP提供了额外的优化功能。
  • 当客户端使用拨号连接时,TCP Express的主要优势在于,BIG-IP可以减少给定事务传输的数据包总数,并加快重传速度。

与拨号连接一样,BIG-IP仍可减少数据包往返次数并加快重传,但连接速度更快。BIG-IP Local Traffic Manager和TCP Express还可优化拥塞控制和窗口缩放,从而提高峰值带宽。虽然拨号用户可能最容易感受到性能提升,但从统计数据来看,宽带用户的提升最为明显,因为某些增强功能可显著改善高速链路的峰值性能。

一般而言,交换的数据越多,带宽优化的作用就越明显;交换的数据越少,往返时延(RTT)优化的作用就越明显。因此,对于拨号连接等数据交换量较小的流量配置文件,优化效果会比宽带连接更明显。对于数据交换量较大的流量配置文件,宽带连接的优化效果更为显著。无论哪种情况,使用TCP Express都能显著提升性能。

可自定义的TCP控制

TCP Express可自动运行,无需修改,而BIG-IP Local Traffic Manager则让用户能够对TCP协议栈进行高级控制,以根据特定业务需求调优TCP通信。用户可以在虚拟服务器级别,针对由该设备代理的每个应用选择优化选项和设置。管理员可以使用TCP配置文件调优以下各项TCP变量:

  • TIME-WAIT 状态回收
  • 延迟确认
  • 代理MSS
  • 代理选项
  • 延迟接受
  • 选择性确认
  • ECN
  • 受限传输
  • rfc1323
  • 慢启动
  • 带宽时延
  • Nagle
  • 代理缓冲区

管理员还可以使用这些控制项,根据特定的网络条件或应用要求调整TCP通信。移动行业和服务提供商行业的客户可以利用这种灵活性,针对已知设备(如移动终端)和网络条件定制通信,从而进一步提升性能、可靠性和带宽利用率。

为应用调优协议栈设置

TCP Express提供灵活的协议栈设置,可用于优化自定义服务。例如,可以调整这些设置,以优化面向移动用户交付的ASP应用。下表介绍了BIG-IP Local Traffic Manager中可修改的协议栈设置。

优化局域网上的高交互性流量

如果LAN上的流量具有高度交互性,F5建议采用另一组TCP设置,以实现出色性能。F5发现,Nagle算法非常适合在WAN上减少数据包数量,以及进行常规压缩和RAM缓存。此外,调整各种缓冲区大小可以改善低延迟LAN上的高度交互式通信,唯一可能的代价是增加BIG-IP Local Traffic Manager的内存使用量。

下表介绍了可修改的TCP配置文件设置。

其他F5加速技术

其他F5加速功能和产品可与TCP Express配合使用,进一步缩短用户下载时间并优化基础设施资源。

与BIG-IP Local Traffic Manager集成的其他加速功能包括:

  • HTTP压缩利用高度可配置的GZIP压缩功能,减少通过线路传输的数据量。
  • Fast Cache 通过缓存优先级较高的应用,并增强对共享系统上托管多个应用的控制,减轻服务器负载并节省服务器CPU资源。缓存压缩数据可进一步加快内容交付,并提升BIG-IP的可扩展性。
  • OneConnect通过从服务器卸载TCP连接,可将服务器容量提升多达60%。
  • Content Spooling通过减少服务器必须执行的TCP分段处理量,降低服务器的TCP开销,从而将服务器容量提高多达15%。

结论

对于希望提升基础设施容量和性能的组织,BIG-IP Local Traffic Manager提供了一种独特的解决方案,可在不影响现有连接方式的情况下,提高每个连接客户端和服务器的工作效率。F5独有的TCP Express可显著提升实际网络和应用性能,并为组织提供更强的控制能力,以优化关键任务应用的TCP通信。

发布于2017年10月27日