TCPのフロー制御と輻輳制御の違いは何ですか?


81

TCPのフロー制御と輻輳制御の違いは何ですか?

この質問は2つの部分に分けることができます:

  1. フローと輻輳制御の全体的な目的は何ですか?
  2. タスクはどのように達成されますか?

ウィキペディアによると、TCPフロー制御はACKメッセージで報告されたウィンドウサイズに依存しています。輻輳制御も確認メッセージに依存しています。2つの目標の違いと、それらがどのように機能するかを知りたいと思います。


46
宿題の質問ではありません。面接準備の質問の詳細。それについての「オフトピック」とは何ですか?@EJP
GM Lucid

回答:


124

パート1に関しては、超一般的な概要:

フロー制御は受信側で制御します。これにより、送信者は受信者が処理できるものだけを送信するようになります。高速ファイバー接続を使用している人がダイヤルアップなどで誰かに送信している可能性がある状況を考えてみてください。送信者はパケットを非常に迅速に送信することができますが、それはダイヤルアップの受信者には役に立たないため、送信側が送信できるものを抑制する方法が必要になります。フロー制御は、この通信がスムーズに行われるようにするために利用可能なメカニズムを扱います。

輻輳制御は、ネットワーク全体のすべての人がいつでもネットワークリソースに「公平な」量でアクセスできるようにする方法です。混合ネットワーク環境では、誰もが同じ一般的なレベルのパフォーマンスを想定できる必要があります。これを理解するのに役立つ一般的なシナリオは、オフィスLANです。オフィスには多数のLANセグメントがあり、すべてLAN内ですべての処理を行っていますが、構成するLANセグメントよりも遅いWANリンクを介してすべてのセグメントを送信する必要がある場合があります。最終的に5MBのWANリンクを介して送信されるLAN内に100MBの接続がある画像。より大きなネットワーク全体で問題が発生しないようにするには、何らかの輻輳制御をそこに配置する必要があります。

パート2について:

あなたが上で言ったように、これが面接準備の質問であるならば、私は一般的にTCP / IPについて読むのに少し時間をかけることを検討するでしょう。ウィキペディアは使用しないでください。RTFM!これはあなたの時間の価値が非常に高いです。これは、現代のインターネットのほとんどを支えている最も重要なプロトコルであると言えます。

フロー制御について読むべきこと:停止と待機、スライディングウィンドウ、PAUSEフレーム。

輻輳制御について読むべきこと:QoS(Quality-of-Service)、再送信ポリシー、ウィンドウポリシー。

それ以外にも、特定のベンダーの実装(Ciscoなど)を検索できます。


2
良い答えですが、少なくとも1つの間違いがあります。「PAUSEフレーム」は輻輳制御で使用されません。これらはフロー制御のメカニズムです。
エンジェル

1
あなたは絶対に正しいです。間違った段落に追加され、今すぐ編集しています。
JP Doherty

24

フロー制御:送信者は、受信者側で収容できる十分なデータを送信します。

輻輳制御:送信者は、ルーターのバッファー(キュー)のオーバーフローを回避するために、送信されるパケットの量を減らします。


22

フロー制御:

  • 送信者が受信者に過負荷をかけないようにします。
  • 輻輳制御とは異なり、これは局所的な現象です。
  • 通常、送信者によって開始されます。

輻輳制御:

  • これにより、ネットワークがパケットの負荷を処理できるようになります。
  • これはグローバルな現象であり、そのネットワークに接続されているすべてのホストに影響します。
  • これはルーターによって開始されます。

4

フロー制御は主に受信側で行われ、送信者がネットワークに注入するデータの量を調整します。輻輳制御は主に送信側で行われ、ACKパケットのタイミングでネットワークの輻輳を検知し、対応する状況に送信されるデータの量を調整しようとします。


4

輻輳制御はグローバルな問題です–サブネット内のすべてのルーターとホストが関係します

ポイントツーポイントの範囲であるフロー制御には、送信者と受信者だけが含まれます。


2

輻輳制御:ルーターのバッファーがオーバーフローするのを防ぐことに加えて、他の2つの重要な要素にも対処します

  • 公平性:ネットワークに接続されているホストで飢餓が発生することはありません。ただし、用語ははるかに複雑です。
  • 効率:リンクは、輻輳を引き起こさないように最大容量まで利用する必要があります。

2

フロー制御はレシーバー側で行われます。送信者が受信者のバッファサイズより大きいパケットを送信すると、受信者のバッファでオーバーフローが発生します。受信側でこのオーバーフローを回避するために、送信側で使用されるウィンドウ処理手法があります。輻輳制御は送信側で行われます。これは世界的な現象です。これはルーターで発生します。多くの送信者が同じリンクを介してより多くのパケットをプッシュしようとすると、ルーターのバッファーがオーバーフローします。


これは質問に答える正直な試みのように見えますが、今のところ、あなたの答えは少し混乱しています。また、かなり短いです。フロー制御に1つまたは2つの完全な段落を費やし、輻輳制御に1つまたは2つの完全な段落を費やして、コンマを増やし、単語の省略を減らすことを検討してください。
ジュリアン

0

フロー制御:

  1. 送信側バッファがいっぱいになると、ソースがデータを送信しないようにして、データがドロップされないようにします。
  2. この場合、レシーバーバッファがいっぱいです。
  3. これは、スライディングウィンドウプロトコルによって簡単に実現できます。

輻輳制御

  1. ソースからデータの送信を開始すると、ネットワークの助けを借りて宛先に到達します。ネットワーク内のルーターによってデータがドロップされないように、ソースを防止する輻輳制御。

  2. この問題は、ルーターのキューに関連しています

  3. ルーターは、ネットワークに接続されているさまざまなソースからさまざまなパケットを取得するため、達成するのはより複雑です。


-4

フロー制御:ネットワークが吸収できる量、輻輳ウィンドウを示します。輻輳制御:受信機がどれだけの量のアドバタイズされたウィンドウを吸収できるかを示します。送信者のmax_window = min(アドバタイズされたウィンドウ、輻輳ウィンドウ);

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.