通过 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 错误(主要是 TCP 超时)平均减少 56%
  • 提高现有互联网服务供应商的带宽效率
    • 线路上的数据增加 224%(提升 3.2 倍)
    • 线路上的数据包减少 50%(提升 2 倍)
    • 消除 63% 的“空”TCP 数据包(提升 2.7 倍)

下面的章节将介绍 TMOS 支持架构,以及标准 TCP RFC 子集和 TCP Express 的流量优化。鉴于任何解决方案都无法做到放之四海而皆准,因此本文还介绍了如何定制 TCP 配置文件和处理与传统系统的通信。

TMOS 架构和 TCP/IP 协议栈代理服务

大多数组织不经常更新服务器操作系统,一些应用继续在非常老旧的系统上运行。这类传统的基础设施可能会导致应用在 WAN 上传输时出现重大延迟。BIG-IP Local Traffic Manager with TCP Express 可以屏蔽和以透明方式优化可能在企业数据中心内的服务器上运行的老旧或不兼容的 TCP 协议栈。为实现这一点,需要保持与这些设备的兼容性,同时在连接的客户端独立利用 F5 的 TCP/IP 协议栈优化,为每个连接的设备和网络条件提供完全独立和优化的 TCP 行为。

作为一个连接各种 TCP/IP 协议栈的全代理,TMOS 是 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、RFC 1122)使 BIG-IP Local Traffic Manager 能够通过减少必须传输的数据包数量来加速数据传输。延迟确认提供了一个标准机制,用于决定何时需要发送确认数据包,以帮助减少冗余的确认数据包。此外,Nagle 算法提供了一个标准程序,用于将许多较小的数据包合并成较少的大数据包。
  • 选择性确认(RFC 2018、RFC 2883)使 BIG-IP Local Traffic Manager 能够更有效、更快速地处理 WAN 和有损网络上丢失和重新排序的数据包。这在 Windows XP 和更高版本的互联网通信以及所有其他现代 TCP 协议栈上默认启用。扩展使指定使用 SACK 选项或确认重复数据包成为可能。
  • 显式拥塞通知 ECN(RFC 3168、RFC 2481)使 BIG-IP Local Traffic Manager 能够主动向对等机发出信号,说明中间路由器正处于过载状态,以便它们能够后退和避免数据包丢失。TCP 头中保留的标志(ECE 和 CWR)可用于将拥塞情况反馈给对等机。
  • 有限重传和快速重传(RFC 3042、RFC2582)实现对丢失数据的高效重传,可以消除数据包丢失带来的超时影响。
  • 自适应初始拥塞窗口 (RFC 3390) 降低了 TCP 慢速启动避免拥塞的成本。对较大的初始拥塞窗口的研究表明,卫星链路的 HTTP 传输有 30% 的增益,28.8 bps 的拨号用户有 10% 的改善,而掉线率没有随之增加。对于共享一条路径的 TCP 连接(16 KB 传输到 100 个互联网主机),与一个段的初始窗口相比,增加窗口段使得使用四段(512 字节 MSS)初始窗口的传输率大约提高了 25%。
链路利用率提升 RFC
  • TCP 慢速启动与避免拥塞(RFC 3390、RFC 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 状态下接收复位段时避免动作。
  • 防御序列号攻击 (RFC 1948) TCP Express 使用安全的 ISN 生成来阻止大多数序列号猜测攻击。
  • 改进 TCP 拥塞管理 (RFC 3168) TCP Express 目前掌握了互联网上所有最新的 TCP 拥塞避免和拥塞恢复方法,能够提高可用带宽和拥塞时的恢复速度。
  • 改进大拥堵窗口的 TCP 慢速启动 (RFC 3742) 当连接使用非常大的 TCP 窗口时,使用更保守的慢速启动行为可防止大量丢包。
  • 适当的字节计数 (RFC 3465) 使用每个 ACK 所使用的先前未确认的字节数,以提供更智能的窗口缩放并提高 TCP 性能。
  • 改进 TCP 快速恢复算法 (NewReno) (RFC 3782) 对 TCP 快速恢复算法的 NewReno 修改指定了一个轻微的修改,即 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 持续时间
  • 延迟 acks
  • 代理 mss
  • 代理选项
  • 延迟接受
  • 选择性 acks
  • ecn
  • 有效传输
  • rfc1323
  • 慢启动
  • 带宽时延
  • nagle
  • 代理缓冲

管理员还可以使用这些控制措施来调整 TCP 通信,以适应特定的网络条件或应用需求。移动和服务提供商行业的客户发现,这种灵活性使他们可以通过针对已知设备(如移动手机)和网络条件调整通信,进一步提高其性能、可靠性和带宽利用率。

调整应用堆栈设置

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

设置

说明

接收端窗口 65535

BIG-IP Local Traffic Manager 的默认接收窗口为 16384。这可能会导致某些 TCP 协议栈在与 BIG-IP LTM 通信时“节流”(减速)。将其设置为 65535 会减少最后一个字节 (TTLB) 的时间,但可能会牺牲更多的内存利用率。

发送缓冲区 65535

如果拥塞窗口允许,将 BIG-IP Local Traffic Manager 的默认发送缓冲区增加到 64K 可以一次将更多的数据放到网络上,但可能会以更高的内存利用率为代价。

代理缓冲高低 128K

F5 已经根据经验发现,这些修改后的默认值为大多数基于平均页面大小的网站提供了更好的实际性能。这些值控制着 BIG-IP Local Traffic Manager 从服务器接收内容缓冲的数据量。相对地,这可能会增加内存利用率。

优化 LAN 上的高交互流量

如果局域网上的流量是高度互动的,F5 建议采用不同的 TCP 设置以获得最佳性能。F5 发现,Nagle 算法对于减少数据包和 WAN 上的一般压缩/RAM 缓存非常有效。此外,对各种缓冲区大小的调整可以对低延迟 LAN 上的高交互通信产生积极影响,唯一可能的代价是增加 BIG-IP Local Traffic Manager 的内存利用率。

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

设置

说明

禁用带宽时延

禁用带宽限制。在实际网络中,TCP 协议栈经常会将大量数据推送到网络上,以至于发生掉线。带宽延时产品限制会让 BIG-IP Local Traffic Manager 确定每个 RTT 注入网络的最佳数据量,并且不会超过这个数据量。如果流量配置文件有很多微小的对象,客户端就会出现“拉伸 ACK 违规错误”(例如,旧的 Linux 内核就会这样做),这个参数应该被禁用。

禁用 Nagle

Nagle 算法会一直保持数据,直到对等机 ACK 启动以阻止将微小的数据包放在网络上。启用它可以在 WAN 上获得更好的实际性能,但会使 BIG-IP Local Traffic Manager 看起来像是在 LAN 上施加延迟,因为它会在对等机 ACK 未完成的数据之前,保持小于 TCP MSS 的数据包。

启用 Ack on push

当收到带有 PSH 标志的 TCP 数据包时,BIG-IP Local Traffic Manager 会立即发送 TCP 确认。在 LAN 上向/从 Windows 机器传输大文件时会增加峰值带宽。

BIG-IP 管理员可以灵活地调整入口/出口 TCP ACK 数据包的数量,通过发送更少的 PUSH 标志来减少入口 ACK。该地址的 TCP 协议设计在操作中,即使启用了延迟 ACK 或拉伸 ACK,也能立即向 PUSH 段发送 ACK。所启用的发送 PUSH 标志的模式有四种:默认、无、1 和自动。这种灵活性为管理员提供了对 PUSH 段发送频率的控制。

接收端窗口 65535

BIG-IP Local Traffic Manager 的默认接收窗口为 16384。这可能会导致某些 TCP 协议栈在与 BIG-IP LTM 通信时“节流”(减速)。将其设置为 65535 会减少最后一个字节 (TTLB) 的时间,但可能会牺牲更多的内存利用率。

发送缓冲区 65536

如果拥塞窗口允许,将 BIG-IP Local Traffic Manager 的默认发送缓冲区增加到 64K 可以一次将更多的数据放到网络上,但可能会以更高的内存利用率为代价。

代理缓冲高低分别为 128K 和 96K

F5 发现,这些修改后的默认值为大多数基于平均页面大小的网站提供了更好的实际性能。这些值控制着 BIG-IP Local Traffic Manager 从服务器接收内容缓冲的数据量。相对地,这可能会增加内存利用率。

禁用慢启动

通常不需要,但如果在 LAN 上测量到最后一个字节的时间 (TTLB),禁用慢启动可以对减少延迟产生微小但积极的影响。

其他 F5 加速技术

TCP Express 与其他 F5 加速功能和产品相辅相成,致力于进一步缩短用户下载时间,优化基础设施资源。

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

  • HTTP 压缩使用高度可配置的 GZIP 压缩功能,以减少通过线路传输的字节大小。
  • Fast Cache 通过缓存优先级应用和扩展控制权,在共享系统上托管多个应用,从而卸载服务器和节省服务器 CPU。压缩数据的缓存存储可以产生更快的内容交付,并提高 BIG-IP 的可扩展性。
  • OneConnect 通过卸载服务器的 TCP 连接,将服务器容量提高了 60%。
  • 内容缓冲通过降低必须在服务器上执行的 TCP 分段数量来减少服务器上的 TCP 开销,以提高服务器的容量,最高可达 15%。
结论

对于希望提高基础设施容量和性能的企业来说,BIG-IP Local Traffic Manager 提供了一个独特的解决方案,以透明的方式使每个连接的客户端和服务器更有效率地工作。F5 独特的 TCP Express 提供了无与伦比的实际网络和应用性能改进,并为企业提供了前所未有的控制水平,以优化关键任务应用的 TCP 通信。

Published October 27, 2017
  • Share to Facebook
  • Share to X
  • Share to Linkedin
  • Share to email
  • Share via AddThis

Connect with F5

F5 Labs

The latest in application threat intelligence.

DevCentral

The F5 community for discussion forums and expert articles.

F5 Newsroom

News, F5 blogs, and more.