ホワイト ペーパー

TCP ExpressによりWANおよびLANアプリケーションのパフォーマンスを最適化

Updated October 27, 2017
  • Share via AddThis

概要

インターネットやエクストラネットのアプリケーションを提供する企業にとって、TCP/IPの非効率性は、WANのレイテンシやパケット ロスの影響と相まって、アプリケーションのパフォーマンスを悪化させます。その結果、アプリケーションの応答時間が増大し、帯域幅の利用効率(「パイプに送り込む」能力)が大幅に低下することになります。

F5® BIG-IP® Local Traffic Manager™(LTM)は、最先端のTCP/IPスタックを提供します。これは、実際のクライアントやインターネットの状態を正確にモデル化していないパケットブラスト テスト ハーネスとは異なり、実際のネットワークにおけるWANおよびLANアプリケーションのパフォーマンスを劇的に向上させます。

高度に最適化されたTCP/IPスタック(F5® 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 LTMの中核をなすTMOSアーキテクチャは、F5の最適化されたTCP/IPスタックをすべてのBIG-IPプラットフォームとソフトウェア アドオン モジュールに提供します。これらの独自の最適化はLAN通信とWAN通信の両方でクライアントとサーバーに適用されるため、同等の機能を提供できず、このようなレベルの最適化やパケット ロスの復元に対応できず、次善のクライアントとサーバーの間を仲介することもできないパケット単位のシステムと比べて、F5のソリューションは大きく優位に立っています。

F5のTMOSフル プロキシ アーキテクチャとTCP Expressを組み合わせることで、すべてのTCPベースのアプリケーションのパフォーマンスが大幅に向上します。これらの技術を使用することで、BIG-IPは以下のことを実現しています。

  • すべての接続クライアント タイプの転送速度が向上
    • ブロードバンド ユーザーのパフォーマンスが平均で79%向上
    • ダイヤルアップ クライアントのパフォーマンスが平均で35%向上
  • ダイヤルアップ クライアントの接続信頼性が向上
    • TCP/IPエラー(主にTCPタイムアウト)が平均で56%削減
  • 既存のISPプロバイダの帯域幅効率が向上
    • 回線上のデータが224%増加(3.2倍の改善)
    • 回線上のパケットが50%減少(2倍の改善)
    • 「空の」TCPパケットが63%減少(2.7倍の改善)

続くセクションでは、TMOS対応アーキテクチャ、標準TCP RFCのサブセット、さらにTCP Expressがトラフィック フローを最適化するために使用する最適化手法について説明します。万能なソリューションというものは存在しないため、このホワイト ペーパーでは、TCPプロファイルをカスタマイズして従来のシステムとの通信を処理する方法についても説明します。

TMOSアーキテクチャとTCP/IPスタック ブローカリング

サーバーのオペレーティング システムを頻繁に更新する組織はほとんどなく、一部のアプリケーションは非常に古いシステムで実行され続けています。このような従来のインフラストラクチャは、アプリケーションがWAN経由で提供される際に大幅な遅延を引き起こしかねません。BIG-IP Local Traffic Manager with TCP Expressは、企業のデータ センタ内のサーバーで実行されている古いTCPスタックや非準拠のTCPスタックを保護し、透過的に最適化することができます。これは、これらのデバイスとの互換性を維持しながら、接続のクライアント側でF5のTCP/IPスタック最適化を独立して活用し、それぞれの接続先のデバイスとネットワークの状態に応じて完全に独立して最適化されたTCP動作を提供することで実現されます。

さまざまなTCP/IPスタックを橋渡しするフル プロキシであるTMOSは、F5独自のTCP Expressの機能セットに含まれる多くのWAN最適化を可能にする重要な機能です。接続元のデバイスごとに最高のパフォーマンスを提供するために、クライアントとサーバーの接続が分離され、制御され、個別に最適化されます。

BIG-IP LTMを使用すると、クライアントとサーバーが通信の最小公分母をネゴシエートする必要がなくなります。次の図に示すように、クライアントに代わって仲介し(スタック ブローカリングと呼ばれる)、TCP Expressを使用してクライアント側での提供を最適化しながら、ネットワーク内部でサーバーに合わせて最適化された接続を維持します。

多くの組織は、従来のサーバーやアプリケーションを排除したり、交換したりするためのリソースがないか、またはその必要がありません。このようなシステムに対応するために、BIG-IP LTMは、最適化されていないデバイスや互換性のないデバイスとの変換を仲介します。これには以下のような機能が含まれます。

  • クライアントとサーバーが最適な速度でデータを送信できるように、個別にMSSを維持する。クライアントとサーバーは、TCP通信のセグメントに配置できるデータの最大量を決定するためにMSSをやり取りします。両者は、最も互換性の高い通信の確立を試みてMSSをネゴシエートしますが、この場合、多くは、クライアントまたはサーバーのどちらかがMSSの最小公倍数をネゴシエートすることになり、最適化されません。
  • サポートされていないサーバーに接続する際に、TCPの選択的確認応答(SACK)、TCPタイムスタンプなどの最適化をクライアントに対して維持する。
  • 接続先の各デバイス(すべてのクライアントとサーバー)のTCPウィンドウ サイズとTCP輻輳情報を動的かつ自動的に最適化する。
  • TCP FIN-PUSHsと相互運用できない旧式のSolarisシステムに対するWindowsなどのスタックの相互運用性を維持する。これは、幅広いユーザー層にサービスを提供しようとする多くの企業が直面するさまざまなスタックの相互運用性の問題の一例に過ぎません。

WAN通信の改善に加えて、BIG-IP LTMは、すべてのクライアントとバックエンド サーバーとの間のブリッジ デバイスまたは変換デバイスとして機能することで、インフラストラクチャ全体でこれらの機能を変換します。その結果、BIG-IP LTMは、ネットワークの非効率性を覆い隠しながらパフォーマンスを向上させます。これにより、すべてのクライアントとサーバーを更新して調整する必要がなくなるため、コストと複雑さが軽減されます。

F5によるTCP/IPのRFCの改善

F5が行ったTCP/IPの最も重要な改善として、以下があります。

  • クライアントの高速化とエラーの回避
  • リンク利用率の向上
  • カスタマイズ可能なTCP制御

業界標準のRFCに対してこれらの改善を行いました。続くセクションでは、TCP Expressの主要なRFCのいくつかを取り上げます。

クライアントの高速化とエラーの回避に関するRFC

  • 遅延確認応答、Nagleアルゴリズム(RFC 896、1122)BIG-IP LTMにより、送信するパケット数を減らすことでデータ配信を高速化します。遅延確認応答は、冗長な確認応答パケットを削減するために確認応答パケットを送信する必要があるかどうかを決定するための標準的なメカニズムを提供します。さらに、Nagleアルゴリズムは、多くの小さなパケットを少ない大きなパケットにまとめるための標準的な手順を提供します。
  • 選択的確認応答(RFC 2018、RFC 2883)BIG-IP LTMにより、WANや損失の多いネットワーク上でのパケットのロスや順序変更に、より効果的かつ迅速に対処します。これは、Windows XP以降のインターネット通信や他のすべての最新型のTCPスタックに対してデフォルトで有効になります。拡張機能では、SACKオプションの使用を指定したり、重複パケットを確認することができます。
  • 明示的輻輳通知(ECN)(RFC 3168、2481)BIG-IP LTMにより、中間ルーターが過負荷になっていることをプロアクティブにピアに通知することで、ピアをオフにしてパケット ロスを回避できるようにします。TCPヘッダー内の予約フラグ(ECEおよびCWR)を使用して、ピアに輻輳を戻すことができます。
  • 限定再送と高速再送(RFC 3042、RFC2582)欠落したデータを効率よく再送することで、パケット ロスによるタイムアウトの影響を排除します。
  • 適応型の初期輻輳ウィンドウ(RFC 3390)TCPスロー スタート輻輳回避のコストを軽減します。より大きな初期輻輳ウィンドウに関する研究では、サテライト リンクを介したHTTP転送で30%の改善が見られ、28.8 bpsのダイヤルアップ ユーザーでは10%改善しましたが、それに伴う速度低下の増大は見られませんでした。パスを共有しているTCP接続(100台のインターネット ホストへの16 KBの転送速度)では、ウィンドウのセグメントを増やすと、4セグメント(512バイトのMSS)の初期ウィンドウを使用した転送速度は、1セグメントの初期ウィンドウを使用した場合と比較して約25%の改善が見られました。

リンク利用率向上に関するRFC

  • TCPスロー スタートと輻輳回避(RFC 3390、2581)これは、パケットが欠落しないように、リンクを詰まらせることなく、リンク上に配置するデータ量を適切に収束させる方法です。この機能により、組織は、既存の公共インターネット接続や専用線で、帯域幅の利用率を高め、より高いスループットを実現することができます。
  • 帯域幅の遅延制御(RFC 793、RFC 2914、RFC 1257)F5は、帯域幅の遅延計算を改良し、それを超えることなくネットワークにかける最適な負荷をより正確に推定できるように拡張しました。

TCP拡張に関するRFC

  • タイムスタンプ(RFC 1323)BIG-IP LTMでは、他の最適化を支援するため、TCPセグメントにデータを追加するタイムスタンプを選択的に使用できます。タイムスタンプは、最新のネットワークではその効力を発揮しますが、従来のルーターやNATingデバイスではタイムスタンプをゼロで埋めたり、更新しないことがあり、そのメリットはありません。このように、他の機能も含め、これらの機能をプロファイルごとに調整することができます。
  • TCPのTIME-WAIT Assassination Hazardの改善(RFC 1337)TIME-WAITの動作の最適化、特にTIME-WAIT状態でリセット セグメントを受信したときのアクションの回避により、一部の通信エラーを回避できる可能性があります。
  • シーケンス番号攻撃を防ぐ(RFC1948)TCP Expressは、安全なISN生成を使用して、ほとんどのシーケンス番号予測攻撃をブロックします。
  • TCPの輻輳制御の改善(RFC 3168)TCP Expressは、現在、インターネットで利用可能な最新のTCPの輻輳回避および輻輳回復方法をすべて実装し、輻輳時に使用可能な帯域幅と速度の回復を改善します。
  • 大きな輻輳ウィンドウを持つTCPのスロースタートの改善(RFC 3742)より保守的なスロースタート動作を使用することで、接続で非常に大きなTCPウィンドウを使用している場合の大量の損失を防ぎます。
  • Appropriate Byte Counting(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 LTMとTCP Expressは、輻輳制御とウィンドウ スケーリングを最適化してピーク帯域幅を改善します。ダイヤルアップ ユーザーに対する改善点が最も顕著ですが、いくつかの機能強化により高速リンクのパフォーマンスの上限が大幅に改善されていることを考えると、ブロードバンド ユーザー向けの改善点もほぼ統計的に明らかです。

一般に、やり取りするデータが多いほど、帯域幅の多くの最適化が適用され、やり取りするデータが少ないほど、ラウンド トリップ遅延時間(RTT)の最適化が適用されます。したがって、ダイヤルアップのようにデータのやり取りが少ないトラフィック プロファイルでは、ブロードバンドよりも多くの最適化が適用され、ブロードバンドのように多くのデータをやり取りするトラフィック プロファイルでは、最大限の最適化が適用されます。どちらの場合も、TCP Expressを使用することで大きな改善を実現できます。

カスタマイズ可能なTCP制御

TCP Expressは自動であり、変更を必要としませんが、BIG-IP LTMでは、TCPスタックを高度に制御して、特定のビジネス ニーズに応じてTCP通信を調整することができます。これには、デバイス上でフロント処理されているアプリケーションごとに、仮想サーバー レベルで最適化や設定を選択する機能があります。管理者は、TCPプロファイルを使用して、以下のTCP変数をそれぞれ調整できます。

  • time wait recycle
  • delayed acks
  • proxy mss
  • proxy options
  • deferred accept
  • selective acks
  • ecn
  • limited transmit
  • rfc1323
  • slow start
  • bandwidth delay
  • nagle
  • proxy buffer

また、管理者は、これらの制御を利用して、特殊なネットワーク条件やアプリケーション要件に合わせてTCP通信を調整することもできます。モバイル業界やサービス プロバイダ業界のお客様は、この柔軟性により、既知のデバイス(携帯電話など)やネットワーク条件に合わせて通信を調整することで、パフォーマンス、信頼性、帯域幅利用率をさらに向上させることができることを実感しています。

アプリケーション向けのスタック設定の調整

TCP Express は、カスタム サービスを最適化するための柔軟なスタック設定を備えています。例えば、これらの設定を調整して、モバイル ユーザーに提供されるASPアプリケーションを最適化できます。次の表に、BIG-IP LTMで変更可能なスタック設定を示します。

設定

説明

Recv window 65535

BIG-IP LTMのデフォルトの受信ウィンドウは16384です。このため、BIG-IP LTMとの通信時に特定のTCPスタックが「スロットル」(速度低下)する場合があります。65535に設定すると、最後のバイトが返されるまでの時間(TTLB)が短縮されますが、メモリ使用率が増加する可能性があります。

Send buffer 65535

BIG-IP LTMのデフォルトの送信バッファを64Kに増やすと、輻輳ウィンドウで可能な限り一度にネットワークに送信されるデータ量が増えるため、メモリ使用率が増加する可能性があります。

Proxy buffer high and low 128K

F5は、これらのデフォルトを変更することで、平均ページ サイズに基づいて、ほとんどのサイトで実際のパフォーマンスが向上することを経験的に確認しています。これらの値は、BIG-IP LTMが、コンテンツ スプーリングのためにサーバーから受信するデータの量を制御します。ただし、これによりメモリ使用率が増加する可能性があります。

LAN上の非常にインタラクティブなトラフィックの最適化

F5では、LAN上のトラフィックが非常にインタラクティブな場合にパフォーマンスを最大限に高めるための一連のTCP設定として別の設定を推奨しています。F5は、NagleのアルゴリズムがWAN上のパケットの削減と一般的な圧縮/RAMキャッシングに非常によく機能することを明らかにしました。さらに、さまざまなバッファ サイズを微調整することで、低レイテンシのLANでの非常にインタラクティブな通信を改善できる可能性があります。その代償として唯一考えられるのは、BIG-IP LTMでのメモリ使用率の増加です。

次の表で、変更可能なTCPプロファイルの設定を説明します。

設定

説明

bandwidth delay disable

帯域幅の制限を無効にします。実際のネットワークでは、TCPスタックが大量のデータをネットワークに送信することでデータの欠落が発生することがよくあります。帯域幅遅延積を制限することで、BIG-IP LTMは、RTTごとにネットワークに送り込むデータの最適な量を決定し、これを超えないようにします。トラフィック プロファイルに小さなオブジェクトが多数ある場合は、クライアントは「ストレッチACK違反のバグ」(旧式のLinuxカーネルなどで発生)を示すため、このパラメータは無効にする必要があります。

Nagle disable

Nagleのアルゴリズムは、ネットワーク上に極小パッケットを配置することを回避するために、ピアがACKを返すまでデータを保持します。この設定を有効にすると、WAN上の実際のパフォーマンスは向上しますが、ピアが未処理データのACKを返すまでTCP MSSに満たないパケットを保持するため、BIG-IP LTMがLAN上でレイテンシを発生させているように見えるかもしれません。

Ack on push enable

PSHフラグの付いたTCPパケットを受信すると、BIG-IP LTMは直ちにTCP確認応答を送信します。LAN上のWindowsマシンとの間で大容量ファイルを転送する際のピーク帯域幅が増加します。

BIG-IP管理者は、イングレス/イグレスのTCP ACKパケットの数を柔軟に調整し、PUSHフラグの送信数を減らすことでイングレスACKを減らすことができます。これはTCPプロトコルで設計されている動作に対応していて、遅延ACKやストレッチACKが有効になっている場合でも、PUSHセグメントに即時ACKを送信します。PUSHフラグの送信を指定する4つのモード、すなわちDefault、None、One、Autoが有効になっています。この柔軟性により、管理者はPUSHセグメントの送信頻度を制御することができます。

Recv window 65535

BIG-IP LTMのデフォルトの受信ウィンドウは16384です。このため、BIG-IP LTMとの通信時に特定のTCPスタックが「スロットル」(速度低下)する場合があります。65535に設定すると、最後のバイトが返されるまでの時間(TTLB)が短縮されますが、メモリ使用率が増加する可能性があります。

Send buffer 65536

BIG-IP LTMのデフォルトの送信バッファを64Kに増やします。輻輳ウィンドウで可能な限り一度にネットワークに送信されるデータ量が増えるため、メモリ使用率が増加する可能性があります。

Proxy buffer high and low 128K and 96K respectively

F5は、これらのデフォルトを変更することで、平均ページ サイズに基づいて、ほとんどのサイトで実際のパフォーマンスが向上することを確認しています。これらの値は、BIG-IP LTMが、コンテンツ スプーリングのためにサーバーから受信するデータの量を制御します。ただし、これによりメモリ使用率が増加する可能性があります。

Slow start disable

通常は必須ではありませんが、LAN上で最後のバイトが返されるまでの時間(TTLB)を計測する場合、スロー スタートを無効にすることで、わずかですが、レイテンシが低減される可能性があります。

その他のF5アクセラレーション技術

TCP Expressは、ユーザーのダウンロード時間をさらに短縮し、インフラストラクチャ リソースを最適化する、その他のF5アクセラレーションの機能と製品によって補完されます。

BIG-IP LTMに統合されているその他のアクセラレーション機能には、次のようなものがあります。

  • HTTP圧縮機能は、高度に設定可能なGZIP圧縮機能を使用して、1つのラインで転送されるバイトのサイズを減らすことができます。
  • 高速キャッシュ機能は、優先アプリケーションをキャッシュし、1台の共有システムで複数のアプリケーションをホストするための制御機能を拡張することで、サーバーの負荷を軽減し、サーバーのCPUを節約します。圧縮データをキャッシュに保存することで、さらに高速なコンテンツ配信を実現し、BIG-IPの拡張性を向上させます。
  • OneConnect機能は、サーバーからTCP接続の負荷を軽減することで、サーバーの容量を最大で60%増加させます。
  • コンテンツ スプーリング機能は、サーバー上のTCPオーバーヘッドを削減し、サーバー上で実行されるTCPセグメンテーションの量を減らすことで、サーバーの容量を最大で15%増加させます。

まとめ

BIG-IP LTMは、インフラストラクチャの容量とパフォーマンスを向上させたいと考えている組織に、接続するすべてのクライアントとサーバーを透過的かつ効率的に動作させる独自のソリューションを提供します。F5独自のTCP Expressは、実際のネットワークとアプリケーションのパフォーマンスを驚くほど高め、かつてないほど詳細な制御機能でミッションクリティカルなアプリケーションのTCP通信を最適化します。