Linuxカーネルに関する技術情報を集めていくプロジェクトです。現在、Linuxカーネル2.6解読室の第2章までを公開中。
送信データはパケットに分割されて送出される。各パケットにはシーケンス番号と呼ばれるユニークな番号が割り当てられる。シーケンス番号はコネクション確立時にあるISN(シーケンス番号の初期値)が割り当てられ、コネクション確立中は送信ごとにこの値を更新しパケットに割りふる(パケットのseqフィールド)。毎回送信したbyte数をシーケンス番号に足し込むことにより、データストリームのどこまでを送受信したかを一意に判断することができる。*1
シーケンス番号123の送信パケットA(サイズは100byte)を送った後、次のパケットBを送る場合そのパケットB(サイズ20byte)のシーケンス番号は223(123+100)となる。更にその後のパケットC(サイズ50byte)のシーケンス番号は243(223+20)となる。
受信側でパケットAを受け取ったとき、受信側ではパケットAに対する応答(ACK)を返信し、確実に受け取ったことを保証する。
通常は、送信するパケットのACKフラグは常にONにし、そのパケット送出時点で最も最新のACK情報を送り返し続ける。
(NIS)HirokazuTakahashi
2000年12月09日 (土) 23時55分06秒 JST1
[ページ情報]
更新日時: 2008-08-27 14:18:09, 更新者: hiromichi-m
[権限]
表示:無制限, 編集:ログインユーザ, 削除/設定:メンバー