TCP/IPのウィンドウ制御
修士2
森田 亙昭
TCPの欠点
信頼性:、転送速度:
ホストA
ホストB
時間
データ
確認応答
パケットの往復時間が長いほど
スループットが悪くなる
ウィンドウ制御で速度向上
ウィンドウ制御
より大きな単位で確認応答
ホストA
ホストB
時間
データ
確認応答
ウィンドウ
パケットの往復時間が長くても
スループットを大きく出来る
スライディング・ウィンドウ方式
ウィンドウサイズで送信データの量を決定
12345678910
ウィンドウサイズ4の場合
受取り手
送り手
12345678910
送り手
12345678910
送り手
12345678910
送り手
12345678910
送り手
確認応答
パケットロスへの対処
信頼性が低下?
確認応答が失われた場合
ホストA
ホストB
データ
確認応答
1234 567
×
×
8 9 10 11
後に送った方の確認応答で
前に送った分もOKとする
再送制御1
一定時間に受信側から確認応答が帰ってこない場合は
、タイムアウトとして同じデータの再送を行う
ホストA
ホストB
データ
確認応答
134 5
2
×
672
タイムアウトによる再送制御
8
ACK=2 ACK=5
ACK=3がこないままタイムアウト
タイムアウトの場合は、ひどい輻輳と判断
タイムアウトのパケット以降を全て再送
34
再送制御2
ホストA
ホストB
データ
確認応答
134 5262
×
ACK=2 ACK=5
(4まで受取済)
78
同じ確認応答を3回受信すると、送信失敗と判断し再送
重複ACKによる再送制御
落ちたパケットのみを再送
軽度のパケットロス(1,2個程度)に有効
これ以上のロスが生じると、ACKが重複せず、タイムアウトにな
再送制御の比較
タイムアウト
タイムアウト値(RTO)は、
往復遅延時間(RTT)により決定
RTORTTの平均値+kRTTの分散
重複ACK
タイムアウトより高速
ウィンドウサイズが十分に大きい
パケットロスは1~2
条件:
ホストA
ホストB
データ
確認応答
134 5262
×
2を要求 5を要求
78
ホストA
ホストB
データ
確認応答
1 34 562
×
782
3回待っても、タイムアウトによる再送制御より速い
34