TCPのフロー制御と輻輳制御の違いは何ですか?
この質問は2つの部分に分けることができます:
- フローと輻輳制御の全体的な目的は何ですか?
- タスクはどのように達成されますか?
ウィキペディアによると、TCPフロー制御はACKメッセージで報告されたウィンドウサイズに依存しています。輻輳制御も確認メッセージに依存しています。2つの目標の違いと、それらがどのように機能するかを知りたいと思います。
回答:
パート1に関しては、超一般的な概要:
フロー制御は受信側で制御します。これにより、送信者は受信者が処理できるものだけを送信するようになります。高速ファイバー接続を使用している人がダイヤルアップなどで誰かに送信している可能性がある状況を考えてみてください。送信者はパケットを非常に迅速に送信することができますが、それはダイヤルアップの受信者には役に立たないため、送信側が送信できるものを抑制する方法が必要になります。フロー制御は、この通信がスムーズに行われるようにするために利用可能なメカニズムを扱います。
輻輳制御は、ネットワーク全体のすべての人がいつでもネットワークリソースに「公平な」量でアクセスできるようにする方法です。混合ネットワーク環境では、誰もが同じ一般的なレベルのパフォーマンスを想定できる必要があります。これを理解するのに役立つ一般的なシナリオは、オフィスLANです。オフィスには多数のLANセグメントがあり、すべてLAN内ですべての処理を行っていますが、構成するLANセグメントよりも遅いWANリンクを介してすべてのセグメントを送信する必要がある場合があります。最終的に5MBのWANリンクを介して送信されるLAN内に100MBの接続がある画像。より大きなネットワーク全体で問題が発生しないようにするには、何らかの輻輳制御をそこに配置する必要があります。
パート2について:
あなたが上で言ったように、これが面接準備の質問であるならば、私は一般的にTCP / IPについて読むのに少し時間をかけることを検討するでしょう。ウィキペディアは使用しないでください。RTFM!これはあなたの時間の価値が非常に高いです。これは、現代のインターネットのほとんどを支えている最も重要なプロトコルであると言えます。
フロー制御について読むべきこと:停止と待機、スライディングウィンドウ、PAUSEフレーム。
輻輳制御について読むべきこと:QoS(Quality-of-Service)、再送信ポリシー、ウィンドウポリシー。
それ以外にも、特定のベンダーの実装(Ciscoなど)を検索できます。
フロー制御はレシーバー側で行われます。送信者が受信者のバッファサイズより大きいパケットを送信すると、受信者のバッファでオーバーフローが発生します。受信側でこのオーバーフローを回避するために、送信側で使用されるウィンドウ処理手法があります。輻輳制御は送信側で行われます。これは世界的な現象です。これはルーターで発生します。多くの送信者が同じリンクを介してより多くのパケットをプッシュしようとすると、ルーターのバッファーがオーバーフローします。
フロー制御:
輻輳制御
ソースからデータの送信を開始すると、ネットワークの助けを借りて宛先に到達します。ネットワーク内のルーターによってデータがドロップされないように、ソースを防止する輻輳制御。
この問題は、ルーターのキューに関連しています
ルーターは、ネットワークに接続されているさまざまなソースからさまざまなパケットを取得するため、達成するのはより複雑です。