TCPスロースタート、混雑制御、ECNノート
7428 ワード
TCPスロースタート、混雑制御、ECNノート
1,TCPスロースタート
TCPは接続プロセスの3回の握手が完了した後、データの転送を開始し、最初はネットワークチャネルに大量のパケットを送信するのではなく、ネットワーク内のルータキャッシュ空間が消耗しやすく、混雑が発生する.初期のcwndサイズに基づいて送信データ量を徐々に増加させ、cwndは最大メッセージセグメント(MSS)サイズに初期化される(この値は必ずしも1つのMSSとは限らない).メッセージセグメントが確認されるたびにcwndサイズ指数が増加する.開始->cwnd=1 RTT後->cwnd=2*1=2 RTT後->cwnd=2*2=4 3 RTT後->cwnd=4*2=8
2、混雑回避
cwndはこのように無限に成長することはできません.必ず制限が必要です.TCPは、cwnd>=ssthresh(ほとんどのTCPの実装では、通常65536の大きさ)になると、遅い起動プロセスが終了し、混雑回避フェーズが開始する.混雑回避:cwndの値は指数的に上昇せず、加算が増加し始める.このとき、ウィンドウ内のすべてのメッセージセグメントが確認されると、cwndのサイズが1になり、cwndの値はRTTが開始するにつれて線形に増加し、成長が速すぎるとネットワークが混雑し、徐々に増加してネットワークの最適値に調整されることを回避することができる.非ECN環境での混雑判定では,送信側RTOがタイムアウトし,メッセージセグメントが再送された.
3、クイック再送
高速再送では、TCPは、重複した3回のACKを受信すると、再送キューの最初のメッセージセグメントがネットワークによって破棄されたとみなされるが、受信した重複した3回のACKのため、そのメッセージセグメントの後の3つのメッセージが受信側に受信されたとみなされ、再送タイマのタイムアウトを待たずに、再送キューの最初のメッセージセグメントを直接再送する.
4、迅速なリカバリ
高速リカバリのパケット保存の原則は、同じ時点でネットワーク内のパケット数が一定であり、「古い」パケットが離れてから、ネットワークに「新しい」パケットを送信することができます.送信側が反復ACKを受信すると、TCPのACKメカニズムは、パケットが離れていることを示し、cwndは1を加算する.
5,ECN(Explicit Congestion Notification)、WWDC 2017は再び
5.1、既存TCPの混雑時に発生する問題
非ECN環境では,ネットワーク中間ルータがパケットを失った場合,TCPプロトコルはRTOタイムアウトにより失われたパケットを再送し,データ信頼性を保証する.ネットワークリンク内のルータでは、中間ルータキューの過負荷によりパケットが失われると、各ホスト間のTCP接続は、中間ルータの転送キューのビジー状態を感知しない.RTOタイマがタイムアウトした後、ACKが受信されなかったため、メッセージの再送が開始される.このタイマーの時間は比較的長く、通常は数秒から数十秒まで異なる.メッセージ破棄は多重TCPが送信速度を低下させ始め,1つのウィンドウの送信が完了した後もTCPの再送タイマがタイムアウトしない前に,送信プロセス全体がたまに停滞する.すべてのTCPが性能を下げた後、ルータの転送キューの混雑は緩和され、メッセージを捨てなくなり、すべてのTCPは同時に送信速度を高め、ある程度に達した後、ルータはまたメッセージを捨て始め、さっきのTCPの再送過程を繰り返します.この現象の問題は次のとおりです.
5.2,中間ルータ混雑制御キュー
ルータの転送キューは、通常、RED機能を実現します.すなわち、ルータは、現在のキューの平均長さに基づいてパケット損失決定を行い、キューが満載になるまで待つのではなく、TCPメッセージセグメントをランダムに破棄し、すべてのTCPが同時にタイムアウトする問題を回避します.
5.3,ECN設計
TCPとIPヘッダの修正により、以下の問題を解決できる.
5.4、IPとTCPの首部に対する修正
IPヘッダの修正
0 1 2 3 4 5 6 7
+-----+-----+-----+-----+-----+-----+-----+-----+
| DS FIELD, DSCP | ECN FIELD |
+-----+-----+-----+-----+-----+-----+-----+-----+
DSCP: differentiated services codepoint
ECN: Explicit Congestion Notification
The Differentiated Services and ECN Fields in IP.
+-----+-----+
| ECN FIELD |
+-----+-----+
ECT CE [Obsolete] RFC 2481 names for the ECN bits.
0 0 Not-ECT
0 1 ECT(1)
1 0 ECT(0)
1 1 CE
The ECN Field in IP.
IPヘッダのTOSフィールドの7および8 bitのresフィールドは、4つの値をとるECNフィールドとして再定義され、RFC 3168において、00は、このメッセージがECNをサポートしていないことを示すので、ルータのこのメッセージは、元の非ECNメッセージ処理、すなわち、過負荷パケット損失である.01と10の2つの値はルータにとって同じであり、いずれもこのメッセージがECN機能をサポートしていることを示しており、混雑が発生すると、ECNフィールドの2つは11に変更され、メッセージが混雑を経てルータに転送され続けることを示す.01と10の具体的な違いについてはRFC 3168を参照してください.ルータ転送側がECNをサポートするには、以下の新機能が必要です.
TCPヘッダの修正
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| | | C | E | U | A | P | R | S | F |
| Header Length | Reserved | W | C | R | C | S | S | Y | I |
| | | R | E | G | K | H | T | N | N |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
CWR: Congestion Window Reduce
ECE: ECN-Echo
The new definition of bytes 13 and 14 of the TCP Header.
ホスト側の変更に対して、ヘッダはbit 8とbit 9のresフィールドをCWRとECEに変更する.RFC 3168における設計は以下の通りである.
まとめ
他人のブログを記録し転載し、記憶を深める.
リファレンス
転載先:https://www.cnblogs.com/edisongz/p/6986527.html