web-dev-qa-db-ja.com

TCP-輻輳ウィンドウと受信ウィンドウの違い

輻輳ウィンドウと受信ウィンドウの違いを理解しようとしています。

私が理解しているように、レシーバーウィンドウは、レシーバーがパケットを取得できるバッファーです。同じことは、Receiverの能力の境界を示し、失われたパケットなどに応じて変化する輻輳ウィンドウについても同様です。

では、それらの間の違いは何ですか?

29
Adam Sh

簡単に言えば、受信ウィンドウは受信者によって管理され、受信者はウィンドウサイズを送信者に送信します。ウィンドウサイズは、レシーバーバッファーでまだ空いているバイト数、つまり、レシーバーからの確認を必要とせずに送信者がまだ送信できるバイト数を通知します。

輻輳ウィンドウは、ネットワークパスの途中で一部のルーターのオーバーランを回避するために実装された、送信者が課したウィンドウです。送信者は、各セグメントが送信されると、輻輳ウィンドウをわずかに増やします。つまり、送信者は、未処理の送信データを許可します。ただし、送信側がパケット損失を検出すると、ウィンドウを半分に切断します。これの背後にある理論的根拠は、どこかにバッファオーバーフロー(ほとんどの場合は真)が原因でパケット損失が発生したと送信者が想定しているため、送信者は将来のさらなるパケット損失を回避するために「処理中」のデータを少なくしたいということです。

詳細については、ここから開始してください: http://en.wikipedia.org/wiki/Slow-start

48
cxxl