使用 TCP Express 优化 WAN 和 LANapplication性能

概述

对于提供互联网和外联网applications的企业来说,TCP/IP 效率低下,加上 WAN 延迟和数据包丢失的影响,共同对应用程序性能产生不利影响。 结果如何? applications的响应时间增加,并且带宽利用效率(“填充管道”的能力)显著降低。

F5 的 BIG-IP 本地流量管理器提供了最先进的 TCP/IP 堆栈,可为您的实际网络提供显著的 WAN 和 LAN应用性能改进,而不是不能准确模拟实际客户端和互联网条件的数据包爆破测试工具。

这个高度优化的 TCP/IP 堆栈称为 TCP Express,它结合了几种尖端的 TCP/IP 技术和最新 RFC 中的改进。 F5 开发的众多改进和扩展最大限度地减少了拥塞和数据包丢失和恢复的影响。 独立测试工具和客户体验表明,TCP Express 可以为最终用户带来高达 2 倍的性能提升,并将带宽效率提高 4 倍,而无需改变服务器、applications或客户端桌面。

解决方案
TCP Express: F5 优化的 TCP 堆栈

F5 的 TCP Express 是一种基于标准的、先进的 TCP/IP 堆栈,它利用各种客户端和服务器操作系统原生支持的优化以及非操作系统特定的优化。 F5 的 TCP/IP 堆栈包含数百项影响 WAN 和 LAN 效率的改进,其中包括:

  • 对于高速局域网: F5 的 TCP 堆栈可快速扩展缓冲区大小并检测低延迟以管理拥塞。
  • 对于低速 WAN : F5 的 TCP 堆栈可检测客户端速度并估计带宽以限制数据包丢失,并在丢包的情况下进行恢复。

BIG-IP 本地流量管理器的核心是 TMOS 架构,它为所有 BIG-IP 平台和软件附加模块提供 F5 优化的 TCP/IP 堆栈。 这些独特的优化可扩展至 LAN 和 WAN 通信中的客户端和服务器,使 F5 的解决方案领先于无法提供类似功能的逐包系统,也无法达到这些级别的优化、数据包丢失恢复或次优客户端和服务器之间的中介。

F5 的 TMOS 全代理架构与 TCP Express 的结合显著提高了所有基于 TCP 的applications的性能。 通过使用这些技术,BIG-IP 已被证明能够:

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

以下部分介绍了 TMOS 支持架构,以及 TCP Express 用于优化流量流的标准 TCP RFC 和优化的子集。 由于没有一刀切的解决方案,本文还介绍了如何定制 TCP 配置文件并处理与遗留系统的通信。

TMOS 架构和 TCP/IP 堆栈代理

大多数组织不会经常更新服务器操作系统,并且某些applications仍在非常旧的系统上继续运行。 这种传统的基础设施可能是导致通过广域网传输applications时出现严重延迟的原因。 带有 TCP Express 的 BIG-IP 本地流量管理器可以屏蔽并透明地优化可能在公司数据中心内的服务器上运行的较旧或不兼容的 TCP 堆栈。 这是通过保持与这些设备的兼容性来实现的,同时在连接的客户端独立利用 F5 的 TCP/IP 堆栈优化 - 为每个连接的设备和网络条件提供完全独立和优化的 TCP 行为。

作为连接各种 TCP/IP 堆栈的完整代理,TMOS 是 F5 独特的 TCP Express 功能集中许多 WAN 优化的关键推动因素。 客户端和服务器连接是隔离的、受控的和独立优化的,以便为每个连接设备提供最佳性能。

BIG-IP 本地流量管理器消除了客户端和服务器协商通信最低公分母的需要。 它代表客户端进行中介(称为 Stack Brokering),并使用 TCP Express 来优化客户端交付,同时在网络内部维护服务器优化的连接,如下图所示。

通常,组织没有资源(或者不需要)删除或替换其旧式服务器和applications。 为了适应这些系统,BIG-IP 本地流量管理器提供了在非优化甚至不兼容的设备之间进行转换的中介,其中包括:

  • 为客户端和服务器维护单独的 MSS,以确保两者都以最佳速率传输数据。 客户端和服务器传达 MSS 来确定可放入 TCP 通信段的最大数据量。 双方协商 MSS,以尝试创建最兼容的通信,但这通常会导致客户端或服务器无法进行优化,因为会迫使他们协商最低的公共 MSS 值。
  • 当客户端连接到不受支持的服务器时,维持诸如 TCP 选择性确认 (SACK) 或 TCP 时间戳 (等等) 之类的优化。
  • 动态自动地优化每个连接设备(每个客户端和每个服务器)的 TCP 窗口大小和 TCP 拥塞信息。
  • 维护诸如 Windows 之类的堆栈与无法与 TCP FIN-PUSH 互操作的旧版 Solaris 系统的互操作性。 这只是各种堆栈互操作性问题的一个例子,这些问题经常挑战试图为广大用户群体提供服务的企业。

除了改善 WAN 通信之外,BIG-IP 本地流量管理器还充当所有客户端和后端服务器之间的桥梁或转换设备,将这些功能转换到整个基础设施中。 最终结果是,BIG-IP 本地流量管理器提高了性能,同时掩盖了网络效率低下的问题。 由于无需更新和调整每个客户端和每个服务器,因此可以降低成本和复杂性。

F5 对 TCP/IP RFC 的改进

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

  • 客户端加速和错误避免
  • 链接利用率改进
  • 可定制的 TCP 控制

这些改进是对行业标准 RFC 进行的。 以下部分重点介绍 TCP Express 中的一些关键 RFC。

客户端加速和错误避免 RFC
  • 延迟确认,Nagle 算法(RFC 896、1122) 使 BIG-IP 本地流量管理器能够通过减少必须传输的数据包数量来加速数据传输。 延迟确认提供了一种标准机制来决定何时需要发送确认数据包,以帮助减少冗余确认数据包。 此外,Nagle 算法提供了一种标准程序,用于将许多较小的数据包合并为更少、更大的数据包。
  • 选择性确认(RFC 2018、RFC 2883) 使 BIG-IP 本地流量管理器能够更有效、更快速地处理 WAN 和有损网络上的丢失和重新排序的数据包。 此功能在 Windows XP 及更高版本上默认启用,用于 Internet 通信以及所有其他现代 TCP 堆栈。 扩展可以指定使用 SACK 选项或确认重复的数据包。
  • 显式拥塞通知ECN (RFC 3168、2481) 使 BIG-IP 本地流量管理器能够主动向对等方发出信号,告知中间路由器正在超载,以便它们可以退出并避免数据包丢失。 TCP 标头中的保留标志(ECE 和 CWR)可用于将拥塞信息传回给对等方。
  • 有限和快速重传(RFC 3042、RFC2582)能够高效地重新传输丢失的数据,从而消除数据包丢失超时的影响。
  • 自适应初始拥塞窗口(RFC 3390) 减轻 TCP 慢启动拥塞避免的成本。 对较大的初始拥塞窗口的研究表明,通过卫星链路的 HTTP 传输增益为 30%,28.8 bps 拨号用户的传输增益为 10%,而掉线率并没有随之增加。 对于共享路径的 TCP 连接(向 100 个 Internet 主机传输 16 KB),与使用一个段的初始窗口相比,窗口段的增加导致使用四个段(512 字节 MSS)初始窗口的传输速度提高了大约 25%。
链接利用率改进 RFC
  • TCP 慢启动和拥塞避免(RFC 3390、2581) 这是一种在不堵塞链路的情况下将适量的数据集中到链路上以防止数据包丢失的方法。 此功能可帮助组织提高带宽利用率,在现有的公共互联网连接和租用线路上实现更高的吞吐率。
  • 带宽延迟控制(RFC 793、RFC 2914、RFC 1257)F5 改进并扩展了带宽延迟计算,以便更准确地估计网络上的最佳负载而不会超出该负载。
TCP 扩展 RFC
  • 时间戳(RFC 1323)BIG-IP 本地流量管理器允许选择性地使用时间戳将数据添加到 TCP 段以帮助进行其他优化。 虽然时间戳在现代网络上具有很大的优势,但是一些传统路由器和 NAT 设备会将时间戳清零或者不更新时间戳,从而抵消了它的优势。 因此,可以根据每个配置文件调整这些功能和其他功能。
  • 改善 TCP TIME-WAIT 暗杀危险(RFC 1337) 通过优化 TIME-WAIT 行为可以避免一些可能的通信错误,尤其是在 TIME-WAIT 状态下接收重置段时避免采取行动。
  • 防御序列号攻击(RFC1948) TCP Express 使用安全的 ISN 生成来阻止大多数序列号猜测攻击。
  • 改进 TCP 拥塞管理(RFC 3168) TCP Express 实现了当今互联网上所有最新的 TCP 拥塞避免和拥塞恢复方法,以增加可用带宽并加快拥塞时的恢复速度。
  • 改进具有较大拥塞窗口的 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 本地流量管理器和 TCP Express 还优化了拥塞控制和窗口缩放以提高峰值带宽。 虽然拨号用户的改进可能是最明显的,但宽带用户的改进在统计上是最明显的,因为一些改进显著提高了更快链路上的顶端性能。

一般来说,交换的数据越多,带宽优化就越多。 交换的数据越少,适用的往返延迟时间 (RTT) 优化就越多。 因此,拨号等不交换大量数据的流量配置将比宽带得到更多的优化。 对于确实交换大量数据的流量配置文件,宽带将会得到最多的优化。 在这两种情况下,使用 TCP Express 都可以实现显著的收益。

可自定义的 TCP 控件

虽然 TCP Express 是自动的并且不需要修改,但 BIG-IP 本地流量管理器为用户提供了对 TCP 堆栈的高级控制,以根据特定的业务需求调整 TCP 通信。 这包括在虚拟服务器级别根据设备上的每个应用选择优化和设置的能力。 管理员可以使用 TCP 配置文件来调整以下每个 TCP 变量:

  • 时间等待回收
  • 延迟确认
  • 代理 mss
  • 代理选项
  • 延期接受
  • 选择性应答
  • 电子商务
  • 有限传输
  • rfc1323
  • 缓慢启动
  • 带宽延迟
  • 纳格尔
  • 代理缓冲区

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

调整applications的堆栈设置

TCP Express 提供灵活的堆栈设置来优化自定义服务 - 例如,您可以调整这些设置来优化交付给移动用户的 ASP应用。 下表描述了 BIG-IP 本地流量管理器可修改堆栈设置。

环境

描述

接收窗口 65535

BIG-IP 本地流量管理器的默认接收窗口为 16384。 这可能会导致某些 TCP 堆栈在与 BIG-IP LTM 通信时“节流”(减慢速度)。 将其设置为 65535 会减少到达最后一个字节的时间 (TTLB),但可能会增加内存利用率。

发送缓冲区 65535

如果拥塞窗口允许,将 BIG-IP 本地流量管理器的默认发送缓冲区增加到 64K 可以将更多的数据一次性发送到网络上,但可能会增加内存利用率。

代理缓冲区高低128K

F5 通过经验发现,这些修改后的默认值可以根据平均页面大小为大多数网站提供更好的实际性能。 这些值控制 BIG-IP 本地流量管理器从服务器接收的用于内容假脱机的数据量。 但这可能会增加内存利用率。

优化局域网上高交互流量

如果 LAN 上的流量具有高度交互性,F5 建议采用一组不同的 TCP 设置来实现最佳性能。 F5 发现 Nagle 算法对于 WAN 上的数据包减少和常规压缩/RAM 缓存非常有效。 此外,对各种缓冲区大小的调整可以对低延迟 LAN 上的高度交互通信产生积极影响,唯一可能的成本是增加 BIG-IP 本地流量管理器的内存利用率。

下表描述了可修改的 TCP 配置文件设置。

环境

描述

带宽延迟禁用

禁用带宽限制。 在实际网络中,TCP 堆栈通常会向网络推送大量数据,从而导致出现丢包。 带宽延迟积限制导致 BIG-IP 本地流量管理器确定每个 RTT 注入网络的最佳数据量,并且不会超过此量。 如果流量配置文件中包含大量微小对象,则客户端会出现“拉伸 ACK 违规错误”(例如,较旧的 Linux 内核就会出现这种情况),应禁用此参数。

禁用Nagle

Nagle 算法会保留数据直到对等方确认为止,以防止将小数据包放入网络。 启用该功能可在 WAN 上实现更好的实际性能,但会使其看起来好像 BIG-IP 本地流量管理器在 LAN 上造成了延迟,因为在对等端确认未完成数据之前,它会保留小于 TCP MSS 的数据包。

启用推送确认

导致 BIG-IP 本地流量管理器在收到带有 PSH 标志的 TCP 数据包时立即发送 TCP 确认。 在 LAN 上与 Windows 计算机之间传输大文件时增加峰值带宽。

BIG-IP 管理员可以灵活调整入口/出口 TCP ACK 数据包的数量,通过发送更少的 PUSH 标志来减少入口 ACK。 此地址 TCP 协议设计操作即使启用了延迟 ACK 或延长 ACK 也会向 PUSH 段发送立即 ACK。 启用了四种不同的发送 PUSH 标志的模式: 默认、无、一和自动。 这种灵活性使管理员能够控制发送 PUSH 段的频率

接收窗口 65535

BIG-IP 本地流量管理器的默认接收窗口为 16384。 这可能会导致某些 TCP 堆栈在与 BIG-IP LTM 通信时“节流”(减慢速度)。 将其设置为 65535 会减少到达最后一个字节的时间 (TTLB),但可能会增加内存利用率。

发送缓冲区 65536

将 BIG-IP 本地流量管理器的默认发送缓冲区增加到 64K,这样如果拥塞窗口允许的话,可以一次将更多的数据放入网络,但可能会增加内存利用率。

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

F5 发现,这些修改后的默认值可根据平均页面大小为大多数网站提供更好的实际性能。 这些值控制 BIG-IP 本地流量管理器从服务器接收的用于内容假脱机的数据量。 但这可能会增加内存利用率。

慢启动禁用

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

其他 F5 加速技术

TCP Express 与其他 F5 加速功能和产品相辅相成,旨在进一步减少用户下载时间并优化基础设施资源。

与 BIG-IP 本地流量管理器集成的其他加速功能包括:

  • HTTP 压缩使用高度可配置的 GZIP 压缩功能来减少通过线路传输的字节大小。
  • 快速缓存通过缓存优先applications并扩展对在共享系统上托管多个applications的控制来减轻服务器负载并节省服务器 CPU。 压缩数据的缓存存储可以实现更快的内容传送并提高 BIG-IP 的可扩展性。
  • OneConnect 通过卸载服务器的 TCP 连接将服务器容量提高多达 60%。
  • 内容假脱机 通过降低必须在服务器上执行的 TCP 分段量来减少服务器上的 TCP 开销,从而将服务器容量提高多达 15%。
结论

对于希望提高其基础设施容量和性能的组织,BIG-IP 本地流量管理器提供了一种独特的解决方案,可以透明地使每个连接的客户端和服务器更高效地工作。 F5 独特的 TCP Express 可提供无与伦比的实际网络和应用性能改进,并为组织提供前所未有的控制级别,以优化关键任务应用s的 TCP 通信。

2017 年 10 月 27 日发布
  • 分享至 Facebook
  • 分享到X
  • 分享至 Linkedin
  • 分享至电子邮件
  • 通过 AddThis 分享

通过 F5 进行连接

F5 实验室

最新的应用威胁情报。

DevCentral

F5 社区,提供讨论论坛和专家文章。

F5 新闻中心

新闻、F5 博客等等。