- 通常のデータフロー
srv4 → bsdi へ8192バイトの転送 (Fig.20.1, Fig.20.2)
- 高速な送り手、低速な受け手
sun → bsdiへ 8192バイトの転送 (Fig.20.3)
セグメント9, セグメント15 はウィンドウサイズの変更を知らせるACK
(ウィンドウ更新)
- スライディング・ウィンドウ
- クローズ --- ウィンドウの左端が右方向に移動。(確認応答が行われたとき)
- オープン --- ウィンドウの右端が右方向に移動。(確認応答済みのデータをプロセスが読み込んだとき)
- シュリンク --- ウィンドウの右端が左方向に移動。
- ウィンドウ・サイズ
ウィンドウ・サイズによってデータ転送の効率が変わってくる。
多くのマシンでは 4096 だが、 8192 や 16384 などの大きなウィンドウサイズ
を持つマシン(SPARC, Alpha)もある。
Ethernetでは 4096 は最適な値ではなく、16384 にすると 40% も効率が
向上するという報告もある。
sun4→bsdi(ウィンドウサイズ=6144バイト)へ8192バイトの転送 (Fig.20.7)
- スロー・スタート
WANを経由する通信では途中のルータがボトルネックになる場合がある。
送り手が「輻輳ウィンドウ (cwnd)」 を使って、送り出すデータを制御する。
min(cwnd * セグメントサイズ, window size)までのデータを同時に(ACKなしに)
送り出すことができる。
cwnd の初期値は1
ackを受け取るたびに cwndは1増える。
輻輳が起きたらcwndを減らす(→輻輳制御)
- バルク・データ・スループット
バルク・データが送られる例 (Fig.20.9, Fig.20.10)
ウィンドウ・サイズ、ウィンドウによるフロー制御、スロースタートが使われている
帯域幅遅延積
キャパシティ(ビット) = 帯域幅 (ビット/秒) × 往復時間 (秒)
- 輻輳 →輻輳制御とまとめて説明します(おそらく来週)