Citrix ADC

TCP 最適化

TCP は、次の最適化手法と輻輳制御戦略(またはアルゴリズム)を使用して、データ伝送におけるネットワークの輻輳を回避します。

輻輳制御方針

Transmission Control Protocol (TCP)は、インターネット接続の確立と管理、送信エラーの処理、およびクライアントデバイスとのWebアプリケーションのスムーズな接続のために長い間使用されてきました。しかし、パケット損失はネットワークの輻輳だけに依存せず、輻輳が必ずしもパケット損失を引き起こすわけではないため、ネットワークトラフィックの制御が困難になっています。したがって、輻輳を測定するには、TCP アルゴリズムはパケット損失と帯域幅の両方に焦点を当てる必要があります。

比例レート回復(PRR)アルゴリズム

TCP 高速回復メカニズムは、パケット損失に起因する Web 遅延を低減します。新しい比例速度回復(PRR)アルゴリズムは、損失回復中に TCP データを評価する高速回復アルゴリズムです。輻輳制御アルゴリズムによって選択されたターゲットウィンドウに適した分数を使用して、Rate-Halving の後にパターン化されます。これにより、ウィンドウの調整が最小限に抑えられ、リカバリ終了時の実際のウィンドウ・サイズはSlow-Startしきい値(ssthresh)に近い値になります。

TCPファスト・オープン(TFO)

TCP ファストオープン (TFO) は、TCP の最初のハンドシェイク中に、クライアントとサーバー間で迅速かつ安全なデータ交換を可能にする TCP メカニズムです。この機能は、Citrix ADCアプライアンスの仮想サーバーにバインドされたTCPプロファイルでTCPオプションとして使用できます。TFOは、Citrix ADCアプライアンスが生成するTCP高速オープンクッキー(セキュリティクッキー)を使用して、仮想サーバーへのTFO接続を開始するクライアントを検証および認証します。この TFO メカニズムを使用すると、1 回のフルラウンドトリップに必要な時間だけアプリケーションのネットワーク遅延を減らすことができます。これにより、短い TCP 転送で発生する遅延が大幅に削減されます。

TFOの仕組み

クライアントが TFO 接続を確立しようとすると、それ自体を認証する最初の SYN セグメントで TCP ファストオープン Cookie が含まれます。認証が成功すると、Citrix ADCアプライアンスの仮想サーバーがスリーウェイハンドシェイクの最終ACKセグメントを受信していなくても、SYN-ACKセグメントにデータを含めることができます。これにより、通常の TCP 接続と比較して最大 1 回のラウンドトリップが節約されます。この場合、データを交換する前に 3 ウェイハンドシェイクが必要になります。

クライアントとバックエンドサーバーは、次の手順を実行して TFO 接続を確立し、初期 TCP ハンドシェイク中にデータを安全に交換します。

  1. クライアントが自身を認証するためのTCPファスト・オープンCookieを持っていない場合、SYNパケット内のファスト・オープンCookie要求をCitrix ADCアプライアンス上の仮想サーバーに送信します。
  2. 仮想サーバーにバインドされたTCPプロファイルでTFOオプションが有効になっている場合、アプライアンスはクッキーを生成し(シークレットキーでクライアントのIPアドレスを暗号化して)、生成された高速オープンCookieをTCPオプションフィールドに含むSYN-ACKでクライアントに応答します。
  3. クライアントは、アプライアンス上の同じ仮想サーバーへの将来の TFO 接続用に Cookie をキャッシュします。
  4. クライアントは、同じ仮想サーバーへの TFO 接続を確立しようとすると、HTTP データと共に (TCP オプションとして) キャッシュされた高速オープン Cookie を含む SYN を送信します。
  5. Citrix ADCアプライアンスはクッキーを検証し、認証に成功すると、サーバーはSYNパケット内のデータを受け入れ、SYN-ACK、TFOクッキー、HTTPレスポンスでイベントを確認します。

注:

クライアント認証が失敗した場合、サーバーはデータをドロップし、セッションのタイムアウトを示す SYN のみでイベントを確認応答します。

  1. サーバー側では、サービスにバインドされたTCPプロファイルでTFOオプションが有効になっている場合、Citrix ADCアプライアンスは、接続しようとしているサービスにTCP高速オープンCookieが存在するかどうかを決定します。
  2. TCPファスト・オープン・クッキーが存在しない場合、アプライアンスはSYNパケットでクッキー要求を送信します。
  3. バックエンドサーバーがCookieを送信すると、アプライアンスはCookieをサーバー情報キャッシュに保存します。
  4. アプライアンスが所定の宛先 IP ペアのクッキーをすでに持っている場合、古いクッキーを新しいものと置き換えます。
  5. 仮想サーバが同じ SNIP アドレスを使用して同じバックエンドサーバに再接続しようとしたときに、サーバ情報キャッシュで cookie が使用可能な場合、アプライアンスは SYN パケット内のデータを cookie と結合し、バックエンドサーバに送信します。
  6. バックエンドサーバーは、データと SYN の両方でイベントを確認します。

注: サーバーがSYNセグメントのみでイベントを確認した場合、Citrix ADCアプライアンスは、元のパケットからSYNセグメントとTCPオプションを削除した後、直ちにデータパケットを再送信します。

TCP ファーストオープーの設定

TCP ファストオープン(TFO)機能を使用するには、関連する TCP プロファイルで TCP ファストオープンオプションを有効にし、TFO Cookie タイムアウトパラメータにそのプロファイルのセキュリティ要件に適した値を設定します。

CLI を使用して TFO を有効または無効にする

コマンドプロンプトで、次のコマンドのいずれかを入力して、新規または既存のプロファイルで TFO を有効または無効にします。

注: デフォルト値は DABLED です。

    add tcpprofile <TCP Profile Name> - tcpFastOpen ENABLED | DISABLED
    set tcpprofile <TCP Profile Name> - tcpFastOpen ENABLED | DISABLED
    unset tcpprofile <TCP Profile Name> - tcpFastOpen
    Examples
    add tcpprofile Profile1 – tcpFastOpen
    Set tcpprofile Profile1 – tcpFastOpen Enabled
    unset tcpprofile Profile1 – tcpFastOpen

コマンドプロンプトで、次のように入力します。

    set tcpparam –tcpfastOpenCookieTimeout <Timeout Value>
    Example
    set tcpprofile –tcpfastOpenCookieTimeout 30secs

GUI を使用して TCP ファストオープンを構成するには

  1. [設定] > [システム] > [プロファイル] に移動し、[編集] をクリックして TCP プロファイルを変更します。
  2. [TCP プロファイルの設定] ページで、[TCP 高速オープン] チェックボックスを選択します。
  3. [OK] をクリックし、[完了] をクリックします。

GUI を使用して TCP ファストクッキーのタイムアウト値を設定するには

[設定] > [システム**] > [設定] > [TCP パラメータの変更] に移動し、 [TCP パラメータの構成] ページに移動して、TCP ファストオープン Cookie タイムアウト値を設定します。**

TCP Hystart

新しい TCP プロファイルパラメータ hystart を使用すると、ハイスタートアルゴリズムが有効になります。ハイスタートアルゴリズムは、終了するセーフポイント(ssthresh)を動的に決定するスロースタートアルゴリズムです。これにより、大量のパケット損失を伴わずに、輻輳回避への移行が可能になります。この新しいパラメータは、デフォルトでは無効になっています。

輻輳が検出されると、Hystart は輻輳回避フェーズに入ります。これを有効にすると、パケット損失が大きい高速ネットワークのスループットが向上します。このアルゴリズムは、トランザクションの処理中に最大帯域幅に近い状態を維持するのに役立ちます。したがって、スループットを向上させることができます。

TCP ハイスタートの設定

ハイスタート機能を使用するには、関連する TCP プロファイルで [キュービックハイスタート] オプションを有効にします。

コマンドラインインターフェイス(CLI)を使用して Hystart を構成するには

コマンドプロンプトで、次のコマンドのいずれかを入力して、新規または既存の TCP プロファイルで Hystart を有効または無効にします。

add tcpprofile <profileName> -hystart ENABLED
set tcpprofile <profileName> -hystart ENABLED
unset tcprofile <profileName> -hystart

例:

    add tcpprofile profile1 -hystart ENABLED
    set tcpprofile profile1 -hystart ENABLED
    unset tcprofile profile1 -hystart

GUI を使用して Hystart サポートを構成するには

  1. [設定] > [システム] > [プロファイル] に移動し、[編集] をクリックして TCP プロファイルを変更します。
  2. [TCP プロファイルの設定] ページで、[キュービックハイスタート] チェックボックスをオンにします。
  3. [OK] をクリックし、[完了] をクリックします。

TCP バーストレート制御

TCP 制御メカニズムは、高速モバイルネットワーク上でバーストなトラフィックフローにつながり、ネットワーク全体の効率に悪影響を及ぼす可能性があります。データの輻輳やレイヤ 2 再送信などのモバイルネットワークの状態により、TCP 確認応答が送信側に集まって到着し、送信バーストがトリガーされます。短いパケット間ギャップで送信された連続したパケットのこれらのグループは、TCPパケットバーストと呼ばれています。トラフィックバーストを克服するために、Citrix ADCアプライアンスはTCPバーストレート制御技術を使用します。この方法では、データがバーストに送信されないように、ラウンドトリップ時間全体にわたってデータをネットワークに均等に配置します。このバーストレート制御技術を使用すると、スループットが向上し、パケットドロップレートが低下します。

TCP バーストレート制御の仕組み

Citrix ADCアプライアンスでは、この手法により、ラウンドトリップ時間(RTT)の全期間にわたってパケットの送信が均等に分散されます。これは、バーストを減らすために進行中の TCP セッションのパケットを出力するさまざまなネットワーク条件を識別する TCP スタックとネットワークパケットスケジューラを使用することによって実現されます。

送信側では、確認応答を受信した直後にパケットを送信する代わりに、送信側はスケジューラ(動的設定)または TCP プロファイル(固定設定)によって定義されたレートでパケットを拡散するようにパケットの送信を遅らせることができます。

TCP バーストレート制御の設定

関連する TCP プロファイルで TCP バーストレート制御オプションを使用し、バーストレート制御パラメータを設定します。

コマンドラインを使用して TCP バーストレート制御を設定するには

コマンドプロンプトで、新しい、または既存のプロファイルで、次の TCP バーストレート制御コマンドのいずれかを設定します。

: デフォルト値は DABLED です。

add tcpprofile <TCP Profile Name> -burstRateControl Disabled | Dynamic | Fixed

set tcpprofile <TCP Profile Name> -burstRateControl Disabled | Dynamic | Fixed

unset tcpprofile <TCP Profile Name> -burstRateControl Disabled | Dynamic | Fixed

ここで、

無効 — バーストレート制御が無効になっている場合、Citrix ADCアプライアンスはmaxBurst設定以外のバースト管理を実行しません。

固定 — TCPバーストレート制御が「固定」の場合、アプライアンスは、TCPプロファイルに記載されているTCP接続ペイロード送信レート値を使用します。

Dynamic:バーストレート制御が「Dynamic」の場合、接続はさまざまなネットワーク条件に基づいて規制され、TCP バーストが減少します。このモードは、TCP 接続が ENDPOINT モードの場合にのみ機能します。ダイナミックバーストレート制御が有効の場合、TCP プロファイルの maxBurst パラメータは有効になりません。

add tcpProfile  profile1 -burstRateControl Disabled

set tcpProfile profile1 -burstRateControl Dynamic

unset tcpProfile profile1 -burstRateControl Fixed

コマンドラインインターフェイスを使用して TCP バーストレート制御パラメータを設定するには

コマンドプロンプトで、次のように入力します。

    set ns tcpprofile nstcp_default_profile –burstRateControl <type of burst rate control> –tcprate <TCP rate> -rateqmax <maximum bytes in queue>

    T1300-10-2> show ns tcpprofile nstcp_default_profile
            Name: nstcp_default_profile
            Window Scaling status:  ENABLED
            Window Scaling factor: 8
            SACK status: ENABLED
            MSS: 1460
            MaxBurst setting: 30 MSS
            Initial cwnd setting: 16 MSS
            TCP Delayed-ACK Timer: 100 millisec
            Nagle's Algorithm: DISABLED
            Maximum out-of-order packets to queue: 15000
            Immediate ACK on PUSH packet: ENABLED
            Maximum packets per MSS: 0
            Maximum packets per retransmission: 1
            TCP minimum RTO in millisec: 1000
            TCP Slow start increment: 1
            TCP Buffer Size: 8000000 bytes
            TCP Send Buffer Size: 8000000 bytes
            TCP Syncookie: ENABLED
            Update Last activity on KA Probes: ENABLED
            TCP flavor: BIC
            TCP Dynamic Receive Buffering: DISABLED
            Keep-alive probes: ENABLED
            Connection idle time before starting keep-alive probes: 900 seconds
            Keep-alive probe interval: 75 seconds
            Maximum keep-alive probes to be missed before dropping connection: 3
            Establishing Client Connection: AUTOMATIC
            TCP Segmentation Offload: AUTOMATIC
            TCP Timestamp Option: DISABLED
            RST window attenuation (spoof protection): ENABLED
            Accept RST with last acknowledged sequence number: ENABLED
            SYN spoof protection: ENABLED
            TCP Explicit Congestion Notification: DISABLED
            Multipath TCP: DISABLED
            Multipath TCP drop data on pre-established subflow: DISABLED
            Multipath TCP fastopen: DISABLED
            Multipath TCP session timeout: 0 seconds
            DSACK: ENABLED
            ACK Aggregation: DISABLED
            FRTO: ENABLED
            TCP Max CWND : 4000000 bytes
            FACK: ENABLED
            TCP Optimization mode: ENDPOINT
            TCP Fastopen: DISABLED
            HYSTART: DISABLED
            TCP dupack threshold: 3
            Burst Rate Control: Dynamic
            TCP Rate: 0
            TCP Rate Maximum Queue: 0

GUI を使用して TCP バーストレート制御を設定するには

  1. [設定] > [システム] > [プロファイル] に移動し、[編集] をクリックして TCP プロファイルを変更します。
  2. [TCP プロファイルの設定] ページで、ドロップダウンリストから [TCP バースト制御] オプションを選択します。
    1. BurstRateCntrl
    2. CreditBytePrms
    3. RateBytePerms
    4. RateSchedulerQ
  3. [OK] をクリックし、[完了] をクリックします。

ラップされたシーケンス(PAWS)アルゴリズムに対する保護

デフォルトのTCPプロファイルでTCPタイムスタンプオプションを有効にすると、Citrix ADCアプライアンスはラップされたシーケンス(PAWS)に対する保護アルゴリズムを使用して、シーケンス番号が現在のTCP接続の受信ウィンドウ内にある古いパケットを特定して拒否します(が最大値に達し、0から再起動しました)。

ネットワークの輻輳によって SYN 以外のデータパケットが遅延し、パケットが到着する前に新しい接続を開くと、シーケンス番号の折り返しにより、新しい接続がパケットを有効として受け入れ、データが破損する可能性があります。ただし、TCP タイムスタンプオプションが有効の場合、パケットは破棄されます。

デフォルトでは、TCP タイムスタンプオプションは無効です。これを有効にすると、アプライアンスはパケットのヘッダーにあるTCPタイムスタンプ(SEG.TSval)と最近のタイムスタンプ(Ts.recent)の値を比較します。SEG.TSval が Ts.recent 以上の場合は、パケットが処理されます。それ以外の場合、アプライアンスはパケットをドロップし、修正確認を送信します。

PAWS のしくみ

PAWS アルゴリズムは、同期接続のすべての着信 TCP パケットを次のように処理します。

  1. SEG.TSval < Ts.recent の場合:着信パケットは受け入れられません。PAWS は確認応答(RFC-793 で指定)を送信し、パケットをドロップします。注:ハーフオープン接続を検出して回復するためのTCPのメカニズムを保持するには、ACKセグメントを送信する必要があります。
  2. パケットがウィンドウ外にある場合:通常の TCP 処理と同様に、PAWS はパケットを拒否します。
  3. SEG.TSval > Ts.recent の場合:PAWS はパケットを受け入れ、それを処理します。
  4. SEG.TSval <= 最終.ACK.sent(到着するセグメントが満たされる)の場合:PAWS は SEG.TSval 値を Ts.recent にコピーする必要があります(データベースの Ts.Recent フィールドにコピーされますか?)。
  5. パケットが順番にある場合:PAWS はパケットを受け入れます。
  6. パケットが順番にない場合:パケットは、通常のウィンドウ内、アウトオブシーケンス TCP セグメントとして扱われます。たとえば、後で配信するためにキューに入れられる場合があります。
  7. Ts.recent の値が 24 日以上アイドルである場合:PAWS タイムスタンプチェックが失敗した場合、Ts.recent の有効性がチェックされます。Ts.recent 値が無効であることが判明した場合、セグメントは受け入れられ、PAWS ルールは新しいセグメントの TSval 値で Ts.recent を更新します。

コマンドラインインターフェイスを使用して TCP タイムスタンプを有効または無効にするには

コマンドプロンプトで、次のように入力します。

`set nstcpprofile nstcp_default_profile -TimeStamp (ENABLED | DISABLED)`

GUI を使用して TCP タイムスタンプを有効または無効にするには

[システム] > [プロファイル] > [TCP プロファイル] に移動し、デフォルトの TCP プロファイルを選択して [編集] をクリックし、[TCP タイムスタンプ] チェックボックスをオンまたはオフにします。

最適化テクニック

TCP は、フロー制御を最適化するために、次の最適化手法と方法を使用します。

ポリシーベースの TCP プロファイルの選択

今日のネットワークトラフィックは、かつてないほど多様で帯域幅が集中しています。トラフィックが増加すると、サービス品質(QoS)が TCP パフォーマンスに与える影響が大きくなります。QoS を強化するために、ネットワークトラフィックのクラスごとに異なる TCP プロファイルを使用して AppQoE ポリシーを構成できるようになりました。AppQoEポリシーは、仮想サーバーのトラフィックを分類して、3G、4G、LAN、WANなどの特定のタイプのトラフィックに最適化されたTCPプロファイルを関連付けます。

この機能を使用するには、TCP プロファイルごとにポリシーアクションを作成し、AppQoE ポリシーにアクションを関連付け、負荷分散仮想サーバーにポリシーをバインドします。

サブスクライバ属性を使用して TCP 最適化を実行する方法については、ポリシーベースの TCP プロファイルを参照してください。

ポリシーベースの TCP プロファイル選択の設定

ポリシーベースの TCP プロファイル選択の設定は、次の作業で構成されます。

  • AppQoEを有効にします。TCP プロファイル機能を設定する前に、AppQoE 機能を有効にする必要があります。
  • AppQoEアクションを追加しています。AppQoE 機能を有効にした後、TCP プロファイルを使用して AppQoE アクションを設定します。
  • AppQoE ベースの TCP プロファイル選択の設定。異なるクラスのトラフィックに対してTCPプロファイル選択を実装するには、Citrix ADC ADCが接続を識別し、各ポリシーに正しいAppQoEアクションをバインドできるAppQoEポリシーを設定する必要があります。
  • 仮想サーバーへの AppQoE ポリシーのバインド。AppQoEポリシーを構成したら、1つまたは複数の負荷分散、コンテンツスイッチング、またはキャッシュリダイレクト仮想サーバーにポリシーをバインドする必要があります。

コマンドラインインターフェイスを使用した構成

コマンドラインインターフェイスを使用して AppQoE を有効にするには

コマンドプロンプトで次のコマンドを入力して、機能を有効にし、有効になっていることを確認します。

  • enable ns feature appqoe
  • show ns feature

コマンドラインインターフェイスを使用して AppQoE アクションの作成中に TCP プロファイルをバインドするには

コマンドプロンプトで、tcpprofiletobind オプションを指定して、次の AppQoE アクションコマンドを入力します。

add appqoe action <name> [-priority <priority>] [-respondWith ( ACS | NS ) [<CustomFile>] [-altContentSvcName <string>] [-altContentPath <string>] [-maxConn <positive_integer>] [-delay <usecs>]] [-polqDepth <positive_integer>] [-priqDepth <positive_integer>] [-dosTrigExpression <expression>] [-dosAction ( SimpleResponse |HICResponse )] [-tcpprofiletobind <string>] show appqoe action

コマンドラインインターフェイスを使用して AppQoE ポリシーを構成するには

コマンドプロンプトで、次のように入力します。

add appqoe policy <name> -rule <expression> -action <string>

コマンドラインインターフェイスを使用して AppQoE ポリシーを負荷分散、キャッシュリダイレクト、コンテンツスイッチング仮想サーバーにバインドするには

コマンドプロンプトで、次のように入力します。

bind cs vserver cs1 -policyName <appqoe_policy_name> -priority <priority> bind lb vserver <name> - policyName <appqoe_policy_name> -priority <priority> bind cr vserver <name> -policyName <appqoe_policy_name> -priority <priority>

    add ns tcpProfile tcp1 -WS ENABLED -SACK ENABLED -WSVal 8 -nagle ENABLED -maxBurst 30 -initialCwnd 16 -oooQSize 15000 -minRTO 500 -slowStartIncr 1 -bufferSize 4194304 -flavor BIC -KA ENABLED -sendBuffsize 4194304 -rstWindowAttenuate ENABLED -spoofSynDrop ENABLED -dsack enabled -frto ENABLED -maxcwnd 4000000 -fack ENABLED -tcpmode ENDPOINT
    add appqoe action appact1 -priority HIGH -tcpprofile tcp1
    add appqoe policy apppol1 -rule "client.ip.src.eq(10.102.71.31)" -action appact1
    bind lb vserver lb2 -policyName apppol1 -priority 1 -gotoPriorityExpression END -type REQUEST
    bind cs vserver cs1 -policyName apppol1 -priority 1 -gotoPriorityExpression END -type REQUEST

GUI を使用したポリシーベースの TCP プロファイルの設定

GUI を使用して AppQoE を有効にするには

  1. [システム] > [設定]に移動します。
  2. 詳細ウィンドウで、[高度な機能の構成] をクリックします。
  3. [高度な機能の構成] ダイアログボックスで、[AppQoE] チェックボックスをオンにします。
  4. [OK] をクリックします。

GUI を使用して AppQoE ポリシーを構成するには

  1. 「アプリ エキスパート 」>「 AppQoE」>「アクション」 に移動します。
  2. 詳細ウィンドウで、次のいずれかの操作を行います。
  3. 新しいアクションを作成するには、[追加] をクリックします。
  4. 既存のアクションを変更するには、アクションを選択し、[編集] をクリックします。
  5. AppQoE アクションの作成」 または「 AppQoE アクションの設定 」画面で、パラメーターの値を入力または選択します。ダイアログ・ボックスの内容は、「AppQoEアクションを構成するためのパラメータ」で説明されているパラメータに対応しています(アスタリスクは必須パラメータを示します)。
    1. 名前-名前
    2. アクション・タイプ-応答あり
    3. プライオリティ:プライオリティ
    4. ポリシーキューの深さ:polqの深さ
    5. キューの深さ:プライド・デプス
    6. DOS アクション:ドスアクション
  6. [作成] をクリックします。

GUI を使用して AppQoE ポリシーをバインドするには

  1. [トラフィック管理] > [負荷分散] > [仮想サーバー] に移動し、サーバーを選択して [編集] をクリックします。
  2. [ポリシー] セクションで、[+] をクリックして AppQoE ポリシーをバインドします。
  3. [ポリシー] スライダで、次の操作を行います。
    1. ドロップダウンリストから [AppQoE] としてポリシータイプを選択します。
    2. ドロップダウンリストからトラフィックタイプを選択します。
  4. [ポリシーのバインド] セクションで、次の操作を行います。
    1. [新規] をクリックして、新しい AppQoE ポリシーを作成します。
    2. [既存のポリシー] をクリックして、ドロップダウンリストから AppQoE ポリシーを選択します。
  5. バインドの優先順位を設定し、[仮想サーバにポリシーに バインド] をクリックします。
  6. [完了] をクリックします。

SACK ブロック生成

1 つのデータウィンドウで複数のパケットが失われると、TCP のパフォーマンスが低下します。このようなシナリオでは、選択的確認応答(SACK)メカニズムと選択的繰り返し再送信ポリシーを組み合わせると、この制限が克服されます。着信順不同パケットごとに、SACK ブロックを生成する必要があります。

順序外パケットが再構成キューブロックに収まる場合は、ブロックにパケット情報を挿入し、完全なブロック情報を SACK-0 に設定します。順序外パケットが再構成ブロックに収まらない場合は、パケットを SACK-0 として送信し、以前の SACK ブロックを繰り返します。順序外パケットが重複していて、パケット情報が SACK-0 に設定されている場合は、ブロックを D-SACK します。

注: パケットは、受信確認されたパケット、またはすでに受信された順序どおりのパケットである場合、D-SACK と見なされます。

クライアントのリネージング

Citrix ADCアプライアンスは、SACKベースのリカバリ中にクライアントの再接続を処理できます。

PCB上のエンドポイントをマーキングするためのメモリチェックは、使用可能な合計メモリを考慮していません

Citrix ADCアプライアンスでは、メモリ使用量のしきい値が、使用可能なメモリの合計を使用する代わりに 75% に設定されている場合、新しいTCP接続はTCP最適化をバイパスします。

SACKブロックが欠落しているため、不必要な再送信

非エンドポイントモードでは、DUPACKS を送信するときに、順序どおりのパケットが少ない場合に SACK ブロックが欠落すると、サーバからの追加の再送信がトリガーされます。

過負荷のために最適化をバイパスした接続数の SNMP

過負荷が原因でTCP最適化をバイパスした接続数を追跡するために、Citrix ADCアプライアンスに次のSNMP IDが追加されました。

  1. 1.3.6.1.4.1.5951.4.1.1.46.131 (tcpOptimizationEnabled). TCP 最適化で有効にされた接続の合計数を追跡します。
  2. 1.3.6.1.4.1.5951.4.1.1.46.132 (tcpOptimizationBypassed). 接続の総数を追跡するには、TCP 最適化をバイパスします。

動的受信バッファ

TCPパフォーマンスを最大化するために、Citrix ADCアプライアンスはTCP受信バッファサイズを動的に調整できるようになりました。

テールロスプローブアルゴリズム

再送信タイムアウト(RTO)は、トランザクションの末尾でのセグメントの損失です。RTO は、特に短い Web トランザクションで、アプリケーションの待ち時間の問題がある場合に発生します。トランザクションの終了時にセグメントの損失を回復するために、TCP は Tail Loss Probe (TLP) アルゴリズムを使用します。 TLP は送信者専用アルゴリズムです。TCP 接続が一定期間受信確認を受信していない場合、TLP は最後の未確認パケット(損失プローブ)を送信します。元の送信でテール損失が発生した場合、損失プローブからの確認応答によって SACK または FACK 回復がトリガーされます。

テールロスプローブの設定

Tail Loss Probe(TLP)アルゴリズムを使用するには、TCP プロファイルで TLP オプションを有効にし、パラメータにそのプロファイルのセキュリティ要件に適合する値を設定する必要があります。

コマンドラインを使用して TLP を有効にする

コマンドプロンプトで、次のコマンドのいずれかを入力して、新規または既存のプロファイルで TLP を有効または無効にします。

デフォルト値は DISABLED です。

add tcpprofile <TCP Profile Name> - taillossprobe ENABLED | DISABLED

set tcpprofile <TCP Profile Name> - taillossprobe ENABLED | DISABLED

unset tcpprofile <TCP Profile Name> - taillossprobe

例:

add tcpprofile nstcp_default_profile – taillossprobe

set tcpprofile nstcp_default_profile –taillossprobe Enabled

unset tcpprofile nstcp_default_profile –taillossprobe

Citrix ADC GUIを使用して テール・ロス・プローブ・アルゴリズムを構成する

  1. [設定] > [システム] > [プロファイル] に移動し、[編集] をクリックして TCP プロファイルを変更します。
  2. [TCP プロファイルの設定] ページで、[テールロスプローブ] チェックボックスを選択します。
  3. [OK] をクリックし、[完了] をクリックします。