Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

CoSの明示的な輻輳通知を理解する

ECN(Explicit Congestion Notification)により、TCP/IP ベースのネットワーク上の 2 つのエンドポイント間でエンドツーエンドの輻輳通知が可能になります。2 つのエンドポイントは、ECN 対応送信者と ECN 対応受信者です。ECN が正しく動作するためには、両方のエンドポイントとエンドポイント間のすべての中間デバイスで ECN を有効にする必要があります。ECN をサポートしていない伝送パス内のデバイスは、エンドツーエンドの ECN 機能を中断します。

ECN は、パケットをドロップすることなく、送信デバイスが輻輳が解消されるまで伝送速度を下げることで、パケットの損失と遅延を減らすことを目的として、ネットワークに輻輳を通知します。RFC 3168、 IPへの明示的輻輳通知(ECN)の追加は、ECNを定義します。

ECN はデフォルトで無効になっています。通常、ベストエフォート型のトラフィックを処理するキューでのみ ECN を有効にします。他のトラフィック タイプは異なる輻輳通知方法を使用するため、ロスレス トラフィックは PFC(優先ベースのフロー制御)を使用し、厳格な優先度の高いトラフィックは、設定された最大レートのポイントまで必要なすべてのポート帯域幅を受信します。

キュースケジューラ設定でECNを有効にし、スケジューラを転送クラス(キュー)にマッピングし、スケジューラをインターフェイスに適用することで、個々の出力キュー(転送クラスで表されます)でECNを有効にします。

メモ:

ECN がキューで動作するためには、WRED(Weighted Random Early Detection)パケット ドロップ プロファイルもキューに適用する必要があります。

ECN の仕組み

ECN がなければ、スイッチは TCP/IP パケットをドロップしてネットワーク輻輳に応答します。ドロップしたパケットは、輻輳が発生していることをネットワークに知らせます。IPネットワーク上のデバイスは、パケット伝送速度を下げることでTCPパケットに応答し、輻輳を解消することができます。しかし、パケット ドロップによる輻輳の通知と管理には、いくつかのデメリットがあります。例えば、パケットはドロップされ、再送される必要があります。また、バースト性トラフィックによってネットワークの伝送速度があまりに低下し、帯域幅の利用率が非効率的となる可能性があります。

ECN は、パケットをドロップしてネットワーク輻輳を通知する代わりに、パケットをドロップせずに、ネットワーク輻輳を通知するパケットをマークします。ECN を機能させるには、2 つの ECN 対応エンドポイント間のパス内のすべてのスイッチで ECN が有効になっている必要があります。ECN は、エンドポイント間の TCP 接続の確立中にネゴシエートされます。

ECN 対応スイッチは、キューに適用される WRED パケット ドロップ プロファイル設定に基づいてキュー輻輳状態を決定するため、ECN 対応の各キューにも WRED ドロップ プロファイルが必要です。キューが WRED ドロップ プロファイルのパケット ドロップ確率が 0(0)を超えるレベルに満たされた場合、スイッチはパケットに輻輳が発生しているとマークする可能性があります。スイッチがパケットに輻輳の発生を示すかどうかは、そのフィル レベルでのキューのドロップ確率と同じ確率です。

ECNは、IPヘッダーの差別化サービス(DiffServ)フィールドの2つの最も重要なビットをマークすることで、輻輳が発生したかどうかを通信します。DiffServ フィールドの最上位の 6 ビットには、DSCP(差別化サービス コード ポイント)ビットが含まれています。2つのECNビットの状態は、パケットがECN対応パケットであるか否か、輻輳が発生したか否かを示します。

ECN 対応送信者は、パケットを ECN 対応としてマークします。送信者が ECN 対応でない場合、パケットは ECN 対応でないとマークされます。ECN 対応パケットがスイッチのエグレス キューで輻輳を経験した場合、スイッチはパケットに輻輳が発生しているとマークします。パケットがECN対応レシーバー(宛先エンドポイント)に到達すると、レシーバーは輻輳を示すマークが付いたパケットを送信することで、送信者(送信元エンドポイント)に輻輳インジケータをエコーします。

受信側から輻輳インジケータを受信した後、送信元エンドポイントは伝送速度を低下させ、輻輳を緩和します。これは、TCP輻輳通知と管理の結果と似ていますが、ネットワーク輻輳を通知するためにパケットをドロップする代わりに、ECNはパケットをマークし、受信者は送信者に輻輳通知をエコーします。パケットは破棄されないため、パケットを再送信する必要はありません。

DiffServ フィールドの ECN ビット

DiffServフィールドの2つのECNビットは、パケットがECN対応トランスポート(ECT)パケットとしてマークされているかどうかを決定する4つのコードを提供します。 これは、表1に示すように、トランスポートプロトコルの両方のエンドポイントがECN対応であり、輻輳が発生した場合(CE)があることを意味します。

表 1:ECN ビット コード

ECN ビット(コード)

意味

00

非 ECT - パケットが ECN 対応でないとマークされる

01

ECT(1)—トランスポート プロトコルのエンドポイントは ECN 対応です。

10

ECT(0)—トランスポート プロトコルのエンドポイントは ECN 対応です。

11

CE-発生した輻輳

コード01とコード10は、同じ意味を持ちます。トランスポートプロトコルのエンドポイントの送受信はECN対応です。これらのコードに違いはありません。

エンドツーエンドの ECN 動作

送受信エンドポイントが ECN をネゴシエートした後、送信エンドポイントは DiffServ ECN フィールドを ECT(1) (01) または ECT(0) (10) に設定することで、パケットを ECN 対応としてマークします。エンドポイント間の中間スイッチはすべて ECN が有効になっているか、機能しない必要があります。

パケットがスイッチを通過し、WREDパケットドロップメカニズムを使用する出力キューで輻輳が発生すると、スイッチは、DiffServ ECNフィールドをCE(11)に設定することで、パケットに輻輳が発生していることをマークします。スイッチは(TCP輻輳通知と同様に)パケットをドロップする代わりに、パケットを転送します。

メモ:

エグレス キューでは、WRED アルゴリズムによって、キューのフィル レベル(キューのフル数)に基づいて、パケットがドロップするかどうかを判断します。パケットがドロップすると、適格で、ECN 対応とマークされた場合、そのパケットは CE とマークされて転送できます。パケットがドロップすると、適格で、ECN 対応とマークされていない場合、破棄される可能性があります。WRED アルゴリズムの詳細については、 ECN しきい値の WRED ドロップ プロファイル制御 を参照してください。

パケットがレシーバーエンドポイントに到達すると、CEマークがネットワーク輻輳があることを受信者に伝えます。次に、受信者はネットワークに輻輳があることを示すメッセージを送信者に送信(エコー)します。送信者は輻輳通知メッセージを確認し、送信レートを削減します。 図 1 は、ECN がネットワーク輻輳を緩和するためにどのように機能するかをまとめたものです。

図 1:明示的な輻輳通知 Explicit Congestion Notification

エンドツーエンドの ECN 動作には以下が含まれます。

  1. ECN 対応の送信者と受信者は、接続確立中に ECN 機能をネゴシエートします。

  2. ECN 機能のネゴシエーションに成功した後、ECN 対応送信者は ECT フィールドがレシーバに設定された IP パケットを送信します。

    メモ:

    送信者と受信者間のパスの中間デバイスはすべて ECN 対応である必要があります。

  3. スイッチのエグレス キュー上の WRED アルゴリズムが、キューで輻輳が発生しており、パケットがドロップすると適格であると判断した場合、スイッチはパケットを「輻輳が発生した」(CE)としてマークし、ネットワーク上に輻輳があることを受信者に示すことができます。パケットがすでにCEとマークされている場合(輻輳はすでに別のスイッチのエグレスで発生している)、スイッチはマークされたCEでパケットを転送します。

    スイッチのエグレス キューに輻輳がない場合、スイッチはパケットを転送し、ECN ビットの ECT 対応マーキングを変更しないため、パケットは引き続き ECN 対応とマークされますが、輻輳は発生していないとマークされます。

    QFX5210、QFX5200、QFX5100、EX4600、QFX3500、QFX3600スイッチ、およびQFabricシステムでは、ECN対応(ECT、00)とマークされていないパケットは、WREDドロッププロファイル設定に従って処理され、輻輳が発生した間に破棄される可能性があります。

    QFX10000スイッチでは、スイッチはテールドロップアルゴリズムを使用して、輻輳している間にECT(00)とマークされたパケットをドロップします。(キューが最大レベルのフルネスに満たされると、テールドロップは、キュー内により多くのパケットをバッファリングするスペースになるまで、後続に到着するすべてのパケットをドロップするだけです。ECN 対応でないパケットはすべて同じように扱われます。

  4. 受信側は、CE とマークされたパケットを受信し、輻輳パスに沿って輻輳が発生したことを示します。

  5. レシーバーは、TCPヘッダーのフラグフィールドにマークされたECEビット(ビット9)でパケットを送信者にエコー(送信)します。ECEビットはECNエコーフラグビットで、ネットワーク上に輻輳があることを送信者に通知します。

  6. 送信者はデータ転送速度を下げ、TCP ヘッダーのフラグ フィールドにマークされた CWR ビット(ビット 8)を使用してパケットをレシーバーに送信します。CWR ビットは、輻輳ウィンドウ低減フラグ ビットであり、輻輳が発生した通知が受信されたことを受信者に確認します。

  7. 受信側が CWR フラグを受信すると、受信側は送信者に対して ECE ビットの設定を停止します。

表 2 は 、ECN 対応キューでのトラフィックの動作をまとめたものです。

表 2:ECN 対応キューでのトラフィック動作

ECN ビットの受信 IP パケット マーキング

出力キューでの ECN 設定

WRED アルゴリズムによってパケットがドロップすると判断された場合のアクション

ECN ビットの発信パケット マーキング

非 ECT(00)

問題ではない

ドロップ(QFX5210、QFX5200、QFX5100、EX4600、QFX3500、QFX3600、QFabric システム)。

テール ドロップは、WRED ドロップ確率が適用されないためキューが最大フルネスに達した場合に発生します(QFX10000 スイッチ)。

ECN ビットがマークされていない

ECT(10 または 01)

ECN 無効化

ドロップ

パケットドロップ-マークされたECNビットなし

ECT(10 または 01)

ECN 対応

ドロップしないでください。パケットに輻輳(CE、ビット 11)が発生しているとマークします。

ECT(11)とマークされ、輻輳を示すパケット

CE(11)

ECN 無効化

ドロップ

パケットドロップ-マークされたECNビットなし

CE(11)

ECN 対応

ドロップしないでください。パケットはすでに輻輳が発生しているとマークされており、ECN マーキングを変更せずにパケットを転送します。

ECT(11)とマークされ、輻輳を示すパケット

キューにマッピングされた WRED ドロップ プロファイルで定義された出力キューで輻輳が発生していない場合、すべてのパケットが転送され、パケットはドロップされません。

PFC およびイーサネット PAUSE と ECN の比較

ECN は、IP トラフィックに対するエンドツーエンドのネットワーク輻輳通知メカニズムです。プライオリティベースのフロー制御(PFC)(IEEE 802.1Qbb)とイーサネット PAUSE(IEEE 802.3X)は、異なるタイプの輻輳管理メカニズムです。

ECN では、出力キューにも WRED パケット ドロップ プロファイルが関連付けられている必要があります。PFC が有効になっているトラフィックに使用される出力キューは、関連する WRED ドロップ プロファイルを持つべきではありません。イーサネット一時停止が有効になっているインターフェイスには、WRED ドロップ プロファイルが関連付けられていない必要があります。

PFCは、ロスレストラフィックをサポートするピアツーピアフロー制御メカニズムです。PFCは、接続されたピアデバイスが、輻輳状態の間にフロー送信を一時停止することを可能にします。PFC では、リンク上のすべてのトラフィックではなく、リンク上の指定されたタイプのフローでトラフィックを一時停止できます。例えば、転送クラスなどの fcoe ロスレストラフィッククラスでPFCを有効にすることができます(そして、必要があります)。イーサネット PAUSEは、ピアツーピアのフロー制御メカニズムでもありますが、指定されたトラフィックフローのみを一時停止する代わりに、Ethernet PAUSEは物理リンク上のすべてのトラフィックを一時停止します。

PFC およびイーサネット PAUSE を使用すると、フローの送受信エンドポイントは、中間スイッチ間で互いに輻輳情報を通信しません。代わりに、PFC は、データ センター ブリッジング(DCB)規格をサポートする 2 台の PFC 対応ピア デバイス(例えば、スイッチ)間のフローを制御します。PFC は、フロー出力キューが輻輳した場合、接続されたピアに一時停止メッセージを送信することで機能します。イーサネット一時停止は、輻輳中にリンク上のすべてのトラフィックを一時停止するだけで、DCBを必要としません。

PFC はこのように機能します。スイッチ出力キューが特定のしきい値にフィルする場合、スイッチは PFC 一時停止メッセージを、データを送信している接続されたピア デバイスに送信します。一時停止メッセージは、送信スイッチにフローの送信を一時停止するように指示します。輻輳が解消されると、スイッチは別のPFCメッセージを送信し、接続されたピアに送信を再開するよう指示します。(送信スイッチの出力キューも特定のしきい値に達した場合、そのスイッチは、送信している接続されたピアに PFC 一時停止メッセージを送信できます。このように、PFC はネットワークを通じて伝送の一時停止を伝播させることができます)。

詳細については、 CoSフロー制御について(イーサネット PAUSE および PFC) を参照してください。QFX5100およびEX4600スイッチの場合のみ、 レイヤー3インターフェイス全体でPFC機能を理解するを参照することもできます。

WRED ドロップ プロファイル ECN しきい値の制御

WRED ドロップ プロファイルを転送クラス(出力キューにマッピングされている)に適用して、スイッチが ECN 対応パケットをマークする方法を制御します。スケジューラ マップは、ドロップ プロファイルをスケジューラと転送クラスに関連付け、スケジューラ マップをインターフェイスに適用して、それらのインターフェイスに転送クラスのスケジューリング プロパティを実装します。

ドロッププロファイルは、キューの塗りつぶしレベル(キューのフルネスの割合)とドロップ確率(パケットがドロップする確率の割合)のペアを定義します。キューが指定されたレベルにフィルされると、ドロッププロファイルに一致するトラフィックは、そのフィルレベルとドロップ確率と組み合わせています。ドロッププロファイルを設定する場合、一組のフィルレベルとドロップ確率を設定して、パケットが異なるレベルのキューフルネスでどのようにドロップするかを制御します。

最初のフィルレベルとドロップ確率のペアは、ドロップ開始点です。キューが最初のフィル レベルに達するまで、パケットはドロップされません。キューが最初のフィルレベルに達すると、フィルレベルを超えるパケットは、ドロップ確率とフィルレベルの組み合わせのドロップ確率と等しい破棄確率を持つ可能性があります。

最後のフィルレベルとドロップ確率のペアは、ドロップエンドポイントです。キューが最後のフィル レベルに達すると、ECN 用に設定されていない限り、すべてのパケットがドロップされます。

メモ:

ロスレス キュー(パケット ドロップ属性でno-loss設定された転送クラス)と絶対高優先度キューは、ドロップ プロファイルを使用しません。損失のないキューは、PFC を使用してトラフィックフローを制御します。絶対優先キューは、設定された最大帯域幅制限まで必要なポート帯域幅をすべて受信します(QFX10000スイッチ、QFX5210、shaping-rateQFX5200、QFX5100、QFX3500、QFX3600、EX4600スイッチ、QFabricシステムではスケジューラtransmit-rateー)。

異なるスイッチは、ドロッププロファイルで異なる量のフィルレベル/ドロップ確率ペアをサポートしています。例えば、QFX10000スイッチは32個のフィルレベル/ドロップ確率ペアをサポートしているため、ドロップ開始エンドポイントとドロップ確率の間には30組もの中間フィルレベル/ドロップ確率ペアが存在する可能性があります。QFX5210、QFX5200、QFX5100、QFX3500、QFX3600、EX4600 の各スイッチと QFabric システムは、2 つのフィル レベル/ドロップ確率ペアをサポートしています。定義上、これらのスイッチで設定する 2 つのペアは、ドロップスタートとドロップエンド ポイントです。

メモ:

最後のフィルレベルを100%に設定しないでください。

ドロッププロファイル設定は、以下のようにECNパケットに影響を与えます。

  • ドロップ開始点—ECN 対応パケットが、CE(輻輳経験値)としてマークされる場合があります。

  • ドロップエンドポイント-ECN対応パケットは常にCEとマークされます。

キューがドロップ開始点からドロップエンドポイントまで満たされると、ECNパケットがCEとマークされる確率は、ベストエフォート型トラフィックにドロッププロファイルを適用した場合、ECN以外のパケットがドロップする可能性と同じです。キューが満たされると、ベストエフォート型トラフィックにドロップ プロファイルを適用すると、ECN 以外のパケットがドロップする可能性が高くなるのと同様に、ECN パケットが CE とマークされる可能性が高くなります。

ドロップエンドポイントでは、すべての ECN パケットが CE とマークされますが、ECN パケットはドロップされません。キューのフィル レベルがドロップ エンド ポイントを超えると、すべての ECN パケットが CE とマークされます。(この時点で QFX5210、QFX5200、QFX5100、EX4600、QFX3500、QFX3600 スイッチ、QFabric システムでは、すべての非 ECN パケットが破棄されます)。キューが完全に満たされた場合、ECN パケット(およびその他のすべてのパケット)はテールドロップされます。

WREDパケットドロッププロファイルを設定し、それを出力キューに適用するには(ETSをサポートするスイッチで階層型スケジューリングを使用します)。

  1. ステートメントを使用してドロッププロファイルを設定します set class-of-service drop-profiles profile-name interpolate fill-level drop-start-point fill-level drop-end-point drop-probability 0 drop-probability percentage

  2. ステートメントを使用して、ドロッププロファイルをキュースケジューラにマッピングします set class-of-service schedulers scheduler-name drop-profile-map loss-priority (low | medium-high | high) protocol any drop-profile profile-name。ドロップ プロファイルの名前は、ステップ 1 で設定された WRED プロファイルの名前です。

  3. ステップ 2 がドロップ プロファイルに関連付けるスケジューラを、 ステートメントを使用して出力キューにマッピングします set class-of-service scheduler-maps map-name forwarding-class forwarding-class-name scheduler scheduler-name。転送クラスは、出力キューを識別します。転送クラスは、デフォルトで出力キューにマッピングされ、明示的なユーザー設定によって異なるキューに再マッピングできます。スケジューラ名は、ステップ 2 で設定されたスケジューラです。

  4. ステートメント set class-of-service traffic-control-profiles tcp-name scheduler-map map-nameを使用して、スケジューラ マップをトラフィック制御プロファイルに関連付けます。スケジューラ マップ名は、ステップ 3 で設定された名前です。

  5. ステートメント set class-of-service interface interface-name forwarding-class-set forwarding-class-set-name output-traffic-control-profile tcp-nameを使用して、トラフィック制御プロファイルをインターフェイスに関連付けます。出力トラフィック制御プロファイル名は、ステップ 4 で設定されたトラフィック制御プロファイルの名前です。

    インターフェイスは、トラフィック制御プロファイルのスケジューラマップを使用して、ドロッププロファイル(およびECN属性の有効化を含むその他の属性)を、そのインターフェイスの出力キュー(転送クラス)に適用します。異なるトラフィック制御プロファイルを使用して、異なるスケジューラを異なるインターフェイスにマッピングできるため、異なるインターフェイス上の同じキュー番号が異なる方法でトラフィックを処理できます。

リリース 15.1 以降では、WRED パケット ドロップ プロファイルを設定し、ポート スケジューリングをサポートするスイッチの出力キューに適用できます(ETS 階層スケジューリングはサポートされていないか、使用されていません)。WRED パケット ドロップ プロファイルを設定し、ポート スケジューリングをサポートするスイッチの出力キューに適用するには(ETS 階層スケジューリングはサポートされていないか、使用されません)。

  1. ステートメントを使用してドロッププロファイルを設定します set class-of-service drop-profiles profile-name interpolate fill-level level1 level2 ... level32 drop-probability probability1 probability2 ... probability32。わずか2組のフィルレベル/ドロップ確率ペアまたは32ペアを指定できます。

  2. ステートメントを使用して、ドロッププロファイルをキュースケジューラにマッピングします set class-of-service schedulers scheduler-name drop-profile-map loss-priority (low | medium-high | high) drop-profile profile-name。ドロップ プロファイルの名前は、ステップ 1 で設定された WRED プロファイルの名前です。

  3. ステップ 2 がドロップ プロファイルに関連付けるスケジューラを、 ステートメントを使用して出力キューにマッピングします set class-of-service scheduler-maps map-name forwarding-class forwarding-class-name scheduler scheduler-name。転送クラスは、出力キューを識別します。転送クラスは、デフォルトで出力キューにマッピングされ、明示的なユーザー設定によって異なるキューに再マッピングできます。スケジューラ名は、ステップ 2 で設定されたスケジューラです。

  4. スケジューラ マップを ステートメント set class-of-service interfaces interface-name scheduler-map scheduler-map-nameを使用してインターフェイスに関連付けます。

    インターフェイスはスケジューラ マップを使用して、ドロップ プロファイル(およびその他の属性)を、そのインターフェイス上の転送クラスにマッピングされた出力キューに適用します。異なるインターフェイスで異なるスケジューラ マップを使用できるので、異なるインターフェイス上の同じキュー番号が異なる方法でトラフィックを処理できます。

サポート、制限、注意事項

キューにマッピングされた WRED アルゴリズムが対象となるパケット ドロップを見つからなければ、ECN 設定と ECN ビット マーキングは重要ではありません。パケットトランスポートの動作は、ECNが有効になっていない場合と同じです。

ECN はデフォルトで無効になっています。通常、ベストエフォート型トラフィックを処理するキューでのみ ECN を有効にし、ロスレス トラフィックや絶対優先トラフィックを処理するキューでは ECN を有効にしません。

ECN は以下をサポートします。

  • IPv4 および IPv6 パケット

  • タグなし、単一タグ付き、および二重タグ付きパケット

  • IPトンネリングパケットの外側IPヘッダー(内部IPヘッダーではない)

ECNは以下をサポートしていません。

  • MPLS カプセル化された IP パケット

  • IPトンネリングパケットの内部IPヘッダー(ただし、ECNは外部IPヘッダーで動作します)

  • マルチキャスト、ブロードキャスト、および宛先ルックアップ失敗(DLF)トラフィック

  • 非 IP トラフィック

メモ:

QFX10000スイッチでは、ECNのキューを有効にし、WREDドロッププロファイルをキューに適用すると、WREDドロッププロファイルは、ECNトラフィックに輻輳が発生したことを示すしきい値のみを設定します(CE、11)。ECN 対応キューでは、WRED ドロップ プロファイルは、非 ECT(00)トラフィック(ECN 対応ではないトラフィック)のドロップしきい値を設定しません。代わりに、スイッチはトラフィックにテールドロップアルゴリズムを使用します。これは、輻輳状態の間、ECN対応キューでは非 ECT とマークされます。

WRED ドロップ プロファイルを非 ECT トラフィックに適用するには、マルチフィールド(MF)分類子を設定して、非 ECT トラフィックを ECN 対応ではない別の出力キューに割り当て、そのキューに WRED ドロップ プロファイルを適用します。

リリース履歴テーブル
リリース
説明
15.1
リリース 15.1 以降では、WRED パケット ドロップ プロファイルを設定し、ポート スケジューリングをサポートするスイッチの出力キューに適用できます(ETS 階層スケジューリングはサポートされていないか、使用されていません)。