Linuxカーネルに関する技術情報を集めていくプロジェクトです。現在、Linuxカーネル2.6解読室の第2章までを公開中。
送信側が、受信側からの応答速度から判断して、フロー制御を行う。二つのホスト間の距離が遠い場合、その経路(ネットワーク)が上記ウィンドウメカニズムで指定された転送量を捌き切れず、パケットをロストすることが発生する。
コネクション確立直後および、送信パケットに対するACKパケットの重複が多発するなら、転送量を少なく絞りこむ。その後、ウィンドウサイズを越えない範囲で少しづつ転送量を増加させていく。送信パケットの数に対し、どこまでACK応答が付いてこれるかどうかで判断している。
(詳細アルゴリズムは別途追加予定)
こちらからパケットの転送を続けているのに、相手から同じACKシーケンス番号のパケットが到着したする場合は、経路の途中でパケットをロストしている可能性が高い。この場合、高速再送(tcp_fast_retrans関数)処理を起動し、ロストしたと思われるパケットを一つだけ再送する。この機能が無くともタイマによる再送処理(tcp_retransmit_timer関す)により、パケットの再送が 行われるが、失われたパケット以降の全てのパケットを再送対象としてしまうため、非常に効率が悪い。1パケットのロストだけであればこの機能で回復することができる。
(NIS)HirokazuTakahashi
2000年12月09日 (土) 23時55分06秒 JST1
[ページ情報]
更新日時: 2008-08-27 14:19:02, 更新者: hiromichi-m
[権限]
表示:無制限, 編集:ログインユーザ, 削除/設定:メンバー