web-dev-qa-db-ja.com

レイヤー2と3でのフロー制御と輻輳制御の違いは何ですか?

次の層でフロー制御と輻輳制御に違いはありますか?

  1. レイヤー2(データリンク層)
  2. レイヤー3(ネットワークレイヤー)

それらが同じでない場合、それぞれが次のレイヤーでどのように処理されますか?

  1. レイヤー2(データリンク層)
  2. レイヤー3(ネットワークレイヤー)
1
gsinha

一般的な意味でのフロー制御とは、受信機からキャプチャされたある種の信号(暗黙的または明示的)に基づいて、送信機による特定のデータリンク全体のトラフィックの増加または減少を可能にするメカニズムを指します。

シリアル通信がより一般的だった時代には、ハードウェアフロー制御(RTS/CTS)を使用して、シリアルリンク上のエンドポイントがデータを受信できるかどうかを通知できるようにしました。 DCE(モデムなど)には、送信ステーションによってオーバーランされる可能性のあるバッファが含まれている場合があります。このデバイスがバッファリングの特定のしきい値を超えると、適切な信号ラインが低下し、送信ステーションは、DCEが即時の輻輳の問題が解消されたことを示すまで、データ転送を一時停止することで応答します。 XON/XOFFとして知られる同様のメカニズムが帯域内で(つまり、送信されるデータの一部として)実装されました-RTS/CTSと同じアイデアですが、専用のハードウェアラインではなく特別な制御文字として実装されました。

最近(〜15年ほど前)、同様のメカニズムがIEEE802.3x標準のイーサネットに導入されました。これにより、いわゆる「一時停止」フレームが導入されました。シリアルの場合と同様に、特定の受信者は、それ以上のトラフィックを受け入れることができない場合に、そのようなフレームを送信できます。これはMAC層メカニズム(つまり、層2)であり、かなりの数のデバイスに実装されていますが、実際の使用法と展開はかなり制限されています。 802.3xの問題は、PAUSEフレームが発行されると、トラフィックの重要性に関係なく、allトラフィックが保持されることです。最近では、よりきめ細かい制御(つまり、CoSごとにトラフィックを一時停止する)と、さまざまなクラスのトラフィックとそれらをこれらのCoS値にマッピングする方法を定義する無料の機能を可能にする新しい標準(まとめてDCBと呼ばれる)があります。 。アクティブフロー制御のためのL2ネットワーキングの拡張の他の例には、ファイバチャネルのバッファクレジットやATMABRにあるフィードバックメカニズムが含まれます。

真のフロー制御は、到達可能性とアドレス指定に大きく関係するレイヤー3では実際には適用できません。レイヤー4にはメカニズムがありますが、特にTCPウィンドウ処理)により、送信者はネットワークの状態に基づいて送信を抑制できます。TCPウィンドウ処理の操作と警告このテーマに関する文献は大量にあるため、独自の質問/投稿に値します。TCPに指定されているが、広範囲に実装/使用されていない別のメカニズムは、ECN(明示的な輻輳通知)です。送信機の帯域幅を制限するためのよりプロアクティブなアプローチ(vs TCPウィンドウ処理)のパケットドロップに依存する)。

厳密なフロー制御に加えて、送信者ごとにトラフィックを形成、選択的にドロップ、ポリシングするメカニズム(つまり、L2/L3および一部のL4QoSメカニズム)もありますが、少なくとも通常の定義では、これらは正確なフロー制御ではありません。用語の。

5
rnxrx