スライディングウィンドウ:窓を滑らせ再送

送信ウィンドウがパケット列の上を滑り、ACK で前進する。パケットを落として Go-Back-N選択再送(SR) の再送量の差を体感します。

4
12
5

下のパケット列のマスをクリックすると、その送信を1回だけ「ロス(消失)」させます(赤い✕)。窓の中なら再送の様子が見えます。

方式
窓 [base, base+W)
確認済み (base)
送信総数
うち再送
パケット列とスライディングウィンドウ(緑=確認済 / 紫枠=送信窓 / 青=送信中 / 赤✕=ロス)
ACK 確認済み 送信済み・ACK 待ち 再送された 未送信 ロス予約 / ロス発生
送信側は 連続した W 個(ウィンドウサイズ)まで、ACK を待たずにまとめて送れます。これがスライディングウィンドウです。
一番古い未確認パケットの番号を base と呼び、窓は [base, base+W) の範囲。base のパケットが ACK されると窓は右へ滑り(スライド)、次のパケットを送れるようになります。
途中のパケットが消失(ロス)すると、Go-Back-N は「ロスした番号以降をまとめて送り直し」、選択再送(SR) は「ロストした番号だけ送り直し」ます。クリックでロスを起こし、再送量の差を見比べてみましょう。

いま何が起きている?

ここがポイント