このページで
CoS仮想出力キュー(VOQ)について
スイッチを介してトラフィックを転送する従来の方法は、イングレスインターフェイス上の入力キューでイングレストラフィックをバッファリングし、スイッチファブリックを介してエグレスインターフェイス上の出力キューにトラフィックを転送し、次に出力キュー上のトラフィックをバッファリングしてからネクストホップにトラフィックを送信することです。イングレスポートのパケットをキューイングする従来の方法は、同じ入力キュー(バッファ)内の異なるエグレスポート宛てのトラフィックを格納することです。
輻輳が発生している間、スイッチはエグレス ポートでパケットをドロップする可能性があるため、スイッチはリソースをスイッチ ファブリックからエグレス ポートに転送するためにリソースを費やし、トラフィックを転送するのではなく、そのトラフィックをドロップするだけです。また、入力キューは異なるエグレス ポートを宛先とするトラフィックを格納するため、1 つのエグレス ポートの輻輳が異なるエグレス ポートのトラフィックに影響を与える可能性があります。この状態は HOLB(ヘッドオブライン ブロッキング)と呼ばれます。
仮想出力キュー(VOQ) アーキテクチャは、次のように異なるアプローチを採用しています。
スイッチは、入出力キューに物理バッファーを分離する代わりに、各パケット転送エンジン(PFE)チップのイングレス パイプライン上の物理バッファーを使用して、すべてのエグレス ポートのトラフィックを保存します。エグレスポート上のすべての出力キューには、スイッチ上のすべてのPFEチップ上のすべてのイングレスパイプラインにバッファストレージスペースがあります。イングレスパイプラインのストレージ領域を出力キューにマッピングするのは1から1であるため、各出力キューは各イングレスパイプラインでバッファスペースを受信します。
複数の異なる出力キュー(1 対多マッピング)宛てのトラフィックを含む入力キュー 1 つではなく、各出力キューには、その出力キュー専用の各パケット転送チップ(1 対 1 マッピング)上の入力バッファーで構成された専用の VOQ があります。このアーキテクチャでは、任意の 2 つのポート間の通信が別のポートに影響を与えるのを防ぎます。
VOQは、転送可能になるまで物理出力キューにトラフィックを格納する代わりに、エグレスポートにトラフィックを転送するリソースが含まれるまで、ファブリック全体のイングレスポートからエグレスポートにトラフィックを送信しません。
VOQ とは、1 つのエグレス ポート上の 1 つの出力キュー宛てのトラフィックを受信および保存する入力キュー(バッファー)の集合体です。各エグレス ポートの各出力キューには専用の VOQ があり、この VOQ は、その出力キューにトラフィックを送信しているすべての入力キューで構成されています。
VOQ アーキテクチャ
VOQ は、特定の出力キューのイングレス バッファリングを表します。固有のバッファー ID は、PFE チップ上の各出力キューを識別します。6 個の PFE チップはそれぞれ、特定の出力キューに同じ固有のバッファー ID を使用します。6 つの PFE チップ上の特定のバッファー ID を使用して格納されるトラフィックは、1 つのポートの特定の出力キュー宛てのトラフィックで、その出力キューの VOQ です。
72 個のエグレス ポートがあり、各ポートに出力キューが 8 個あり、各 PFE チップに 576 個の VOQ (72 x 8 = 576)がある。このスイッチには 6 個の PFE チップがあるため、合計で 3,456 個の VOQ (576 x 6 = 3,456)を備えています。
VOQ は、アクティブにその出力キューにトラフィックを送信しているすべての PFE チップに分散されます。各出力キューは、すべての PFE チップに対してその出力キューに割り当てられたバッファーの合計(固有のバッファー ID によって)です。したがって、出力キュー自体は物理ではなく仮想ですが、出力キューは物理入力キューで構成されています。
ラウンドトリップタイムバッファリング
輻輳時(長期ストレージなし)の出力キューバッファリングはありませんが、エグレスラインカードには小さな物理出力キューバッファがあり、トラフィックがイングレスからエグレスまでスイッチファブリックを通過する往復時間に対応します。往復時間は、イングレスポートがエグレスポートリソースを要求し、リソースのエグレスポートから付与を受け取り、スイッチファブリックを介してデータを送信する時間で構成されています。
つまり、パケットがスイッチのイングレスでドロップされず、スイッチがファブリックを介してエグレス ポートにパケットを転送すると、パケットはドロップされず、ネクストホップに転送されます。すべてのパケットドロップはイングレスパイプラインで行われます。
このスイッチは、遅延帯域幅バッファ(DBB)として使用する4 GBの外部DRAMを備えています。DBB は、ポートがエグレス ポートにトラフィックを転送できるまで、イングレス ポートのストレージを提供します。
エグレスポート帯域幅の要求と付与
パケットがイングレスポートに到着すると、イングレスパイプラインは、宛先出力キューの固有のバッファIDを使用して、パケットをイングレスキューに格納します。スイッチは、パケット ルックアップの実行後にバッファリングを決定します。最大トラフィックしきい値を超えたクラスにパケットが属している場合、パケットがバッファリングされず、ドロップされる可能性があります。スイッチ ファブリックからエグレス ポートにパケットを転送するには、次の手順にしたがっています。
イングレスラインカードPFEリクエストスケジューラは、リクエストをエグレスラインカードPFEに送信し、データが送信可能であることをエグレスPFEに通知します。
利用可能なエグレス帯域幅がある場合、エグレスラインカード付与スケジューラは、イングレスラインカードPFEに帯域幅付与を送信することで応答します。
イングレスラインカードPFEは、エグレスラインカードPFEから付与を受信し、データをエグレスラインカードに送信します。
イングレスパケットは、出力キューがより多くのトラフィックを受け入れて転送する準備が整うまで、イングレスポート入力キューのVOQに残ります。
ほとんどの場合、スイッチファブリックは、エグレスサービスクラス(CoS)ポリシーに対して透過的であるほど高速であるため、イングレスパイプラインからスイッチファブリックを越えて、エグレスポートにトラフィックを転送するプロセスは、トラフィックに設定されたCoSポリシーに影響を与えることはありません。ファブリックは、ファブリック障害が発生した場合、またはポートフェアネスの問題がある場合にのみCoSポリシーに影響します。
パケットが同じ PFE チップ(ローカル スイッチング)を受信してエグレスすると、パケットはスイッチ ファブリックを通過しません。ただし、スイッチは、ファブリックを通過するパケットと同じリクエストと付与メカニズムを使用してエグレス帯域幅を受信するため、ローカルでスイッチされたパケットと、スイッチ ファブリックを超えた後に PFE チップに到着するパケットは、同じ出力キューでトラフィックが競合している場合に公正に扱われます。
VOQ のメリット
VOQ アーキテクチャには、次の 2 つの大きなメリットがあります。
ヘッドオブラインブロッキングの排除
VOQ アーキテクチャにより、HOLB(ヘッドオブライン ブロッキング)の問題が解消されます。非VOQスイッチでは、HOLBは、エグレスポートでの輻輳が輻輳していない別のエグレスポートに影響を与えた場合に発生します。HOLB は、輻輳したポートと輻輳していないポートがイングレス インターフェイスで同じ入力キューを共有している場合に発生します。
HOLB シナリオの例は、1 つのイングレス ポート(IP-1)に入るトラフィックのストリームを持ち、2 つの異なるエグレス ポート(EP-2 および EP-3)に向かうスイッチです。
輻輳はエグレス ポート EP-2 で発生します。 図1に示すように、エグレスポートEP-3には輻輳はありません。
図 1:EP-2 で輻輳が発生する図2に示すように、エグレスポートEP-2は、イングレスポートIP-1にバックプレッシャー信号を送信します。
図 2:EP-2 バックプレッシャー IP-1バックプレッシャー信号により、イングレスポートIP-1は、送信を再開する信号を受信するまでトラフィックの送信を停止し、トラフィックをバッファリングします( 図3を参照)。イングレスポートIP-1に到着するトラフィックは、輻輳したポートEP-2を宛先とするトラフィックとともに、混雑していないエグレスポートEP-3に転送されるのではなく、バッファされます。
図 3:EP-2 のバックプレッシャーにより、トラフィックを送信する代わりに IP-1 でトラフィックをバッファし、EP-3 に影響を与えるイングレスポートIP-1は、エグレスポートEP-2がイングレスポートIP-1が送信トラフィックを再開するのに十分な量をクリアした場合にのみ、混雑していないエグレスポートEP-3にトラフィックを送信します( 図4)。
図 4:EP-2 の輻輳が解消し、IP-1 が両方のエグレス ポート へのトラフィック送信を再開できるようにする
このように、輻輳したエグレス ポート EP-2 は、両方のエグレス ポートがイングレス ポート IP-1 で同じ入力キューを共有するため、輻輳していないエグレス ポート EP-3 に悪影響を与えます。
VOQ アーキテクチャは、 図 5 に示すように、各出力キューに対して異なる専用仮想キューを作成することで HOLB を回避します。
異なるエグレス キューは同じ入力キューを共有しないため、 図 6 に示すように、1 つのポート上の輻輳したエグレス キューは、異なるポートのエグレス キューに影響を与えることはできません。(同じ理由で、1つのポートで輻輳したエグレスキューは、同じポート上の別のエグレスキューに影響を与えることはできません。各出力キューには、イングレスインターフェイス入力キューで構成される独自の専用仮想出力キューがあります)。
イングレスインターフェイスでキューバッファリングを実行することで、そのエグレスキューがそのトラフィックを受信する準備ができている場合にのみ、スイッチはファブリックを介してエグレスキューにトラフィックを送信します。エグレスキューがトラフィックを受信する準備が整っていない場合、トラフィックはイングレスインターフェイスでバッファリングされたままになります。
ファブリックの効率性と利用率の向上
従来の出力キュー アーキテクチャには、VOQ アーキテクチャが対処する固有の非効率性があります。
パケットバッファリング:従来のキューイングアーキテクチャは、各パケットを長期的なDRAMストレージに2回、イングレスインターフェイスで1回、エグレスインターフェイスで1回ずつバッファリングします。VOQ アーキテクチャは、各パケットをイングレス インターフェイスの長期 DRAM ストレージに 1 回だけバッファリングします。スイッチファブリックは、エグレスCoSポリシーに対して透過的な速度で十分であるため、エグレスインターフェイスでパケットを2回目にバッファリングする代わりに、設定されたエグレスCoSポリシー(スケジューリング)に影響を与えることなく、ディープエグレスバッファを必要としない速度でトラフィックを転送できます。
リソースの消費—従来のキューイングアーキテクチャは、イングレスインターフェイス入力キュー(バッファ)からスイッチファブリックを介して、エグレスインターフェイス出力キュー(バッファ)にパケットを送信します。スイッチがファブリックを介してパケットを転送し、エグレスキューに保存するリソースを費やしているにもかかわらず、エグレスインターフェイスでは、パケットがドロップされることがあります。VOQアーキテクチャは、エグレスインターフェイスがトラフィックを送信する準備が整うまで、ファブリックを介してエグレスインターフェイスにパケットを送信しません。これにより、リソースが無駄に転送したり、後でドロップされたパケットを保存したりしないため、システム使用率が向上します。
VOQ アーキテクチャに依存しないジュニパーネットワークスのスイッチング アーキテクチャは、パケットをセルに変換するため、ファブリックの利用率も向上します。セルのサイズは予測可能であるため、スイッチはファブリック リンク全体にセルを均等に噴霧し、ファブリック リンクをより完全に利用できます。パケットのサイズは大きく異なり、パケット サイズは予測できません。パケットベースのファブリックは、パケット サイズの変動や予測不能性により、65~70% 以上の使用率を実現できます。ジュニパーネットワークスのセルベースファブリックは、セルサイズの予測と制御が可能なため、ファブリック使用率はほぼ95%です。