シーケンス番号 【sequence number】
概要
シーケンス番号(sequence number)とは、TCPで送信されるパケットに付けられる通し番号。受信側ではシーケンス番号を参照することによりパケットの正しい順番や通信途上でのパケットの欠落を知ることができる。TCP(Transmission Control Protocol)はインターネット上で広く用いられるトランスポート層のプロトコル(通信規約)で、長いデータを送信する際には決まった長さごとにデータに分割し、それぞれをパケットとして独立に送受信する。
インターネットなどの広域的で信頼性が必ずしも高くないネットワークではパケットが欠落したり送信順通りに相手方に届くとは限らない。このため、TCPではパケットのヘッダ領域の一部に送信順にシーケンス番号を記録し、本来のデータの並び順を受信側に伝えるとともに、途中経路での喪失を検知して再送依頼できるようにしている。
シーケンス番号は32ビット符号なし整数(0~4,294,967,295)で表され、TCP接続(コネクション)が確立するとランダムな初期値が生成される。送信側は受信側から受信確認を受け取るたびに送信に成功したバイト数だけシーケンス番号を増加させる。最大値の4,294,967,295に達すると0に戻って再び加算していく。
(2020.2.10更新)