演習第6回 情報通信技術論 インターネット工学 様々なTCP1-Tahoe 演習第6回 情報通信技術論 インターネット工学
ウインドウ制御 ウインドウサイズを変化させてレート調節を行う ウインドウサイズ = 1セグメント の場合 ウインドウサイズ = 4セグメント の場合 シーケンス番号 シーケンス番号 1 2 3 1 2 3 4 5 6 7 8 9 10 11 12 送信側 送信側 データ パケット データ パケット ACK ACK 受信側 受信側 次 は 2 次 は 3 次 は 4 次 は 2 次 は 3 次 は 4 次 は 5 次 は 6 次 は 7 次 は 8 次 は 9 次 は 10 ACK番号 ACK番号
ウインドウサイズ制御 ルール1 送信側で算出したウインドウサイズ(輻輳ウインドウサイズ)と 受信側のバッファサイズ(最大ウインドウサイズ)を比較して、 小さい値を送信ウインドウサイズとして通信する 送信ウインドウサイズ = min(輻輳ウインドウサイズ, 最大ウインドウサイズ) ルール2 ネットワークが混雑(輻輳)するまでは、輻輳ウインドウサイズを 増加させる。 通信開始時はネットワークの状態がわからないため、 小さい輻輳ウインドウサイズで送信し、以降どんどん大きくしていく。 ある程度の輻輳ウインドウサイズになったら、少しずつ大きくしていく。 混雑し始めたら、すぐに輻輳ウインドウサイズを減少させる。
TCP ― ウインドウサイズの変化 最大ウインドウサイズ(rwnd) = 8セグメント の場合 理想的な場合 現実 RTT 送信側 理論的 ウインドウサイズを変化させて送信レートを調節 スロースタート段階 輻輳回避段階 RTT: Round Trip Time RTT 送信側 理論的 最大スループット [Mbps] データ パケット ACK rwnd [bytes] RTT [s] 受信側 ※ byte = 8 bits
スロースタート段階 –Slow Start Phase– 最初から大量にデータ送信ネットワークが急激に混雑 ウインドウサイズ 1 2 4 8 16 送信側 データ パケット ACK 受信側 しかし、このまま続けるとウインドウサイズが指数的に増加 どうする?
輻輳回避段階 –Congestion Avoidance Phase– 輻輳ウインドウサイズがある閾値を超えたら… スロースタート閾値 (ssthresh: slow start threshold) ウインドウサイズ 1 2 4 8 9 10 11 送信側 データ パケット ACK 受信側 この場合、ssthresh = 8 ウインドウサイズを線形的に増加
ルール1: 送信ウインドウサイズ = min(輻輳ウインドウサイズ, 最大ウインドウサイズ) ウインドウサイズの変化 送信側で算出した 輻輳ウインドウサイズ ウインドウサイズ ssthresh (閾値) 指数的増加 線形的増加 最大ウインドウサイズ 送信ウインドウサイズ 時刻 スロースタート 輻輳回避 ルール1: 送信ウインドウサイズ = min(輻輳ウインドウサイズ, 最大ウインドウサイズ)
ルール1: 送信ウインドウサイズ = min(輻輳ウインドウサイズ, 最大ウインドウサイズ) ウインドウサイズの変化 送信側で算出した 輻輳ウインドウサイズ ウインドウサイズ 最大ウインドウサイズ ssthresh (閾値) 指数的増加 線形的増加 送信ウインドウサイズ 時刻 スロースタート 輻輳回避 ルール1: 送信ウインドウサイズ = min(輻輳ウインドウサイズ, 最大ウインドウサイズ)
ネットワークが混雑している場合 重複ACKを3つ受信 タイムアウト パケットが廃棄された (と判断) ネットワークが混雑(輻輳)? 輻輳ウインドウサイズを1に減少スロースタート段階 ssthreshを(元の)送信ウインドウサイズの半分に ssthresh (old) = ssthresh ssthresh (old) ウインドウサイズ ウインドウサイズ = ssthresh 時刻 時刻
TCPウインドウ制御のまとめ (Tahoe) ウインドウサイズ 最大ウインドウサイズ パケットロス パケットロス パケットロス ssthresh (閾値) 時刻 (再送) (再送) (再送)
実験2-1 4 FTP/TCP 2 3 1 5 25Mbps 5ms 25Mbps 5ms FTP ダウンロード TCP Agent 4 FTP/TCP 25Mbps 5ms 25Mbps 5ms 2 3 帯域: Bw 遅延: d 1 5 FTP ダウンロード TCP Agent TCPSink Agent ネットワーク ルータ ネットワーク