シーケンス番号

シーケンス番号

 ネットワークにおいて、シーケンス番号(Sequence Number)は、TCP(Transmission Control Protocol)において通信相手との通信において、送信されるデータの識別を行うための番号です。

 TCPでは、通信が開始される前に、両者の通信相手はお互いの初期シーケンス番号をやりとりして確認します。その後、通信が行われるたびにシーケンス番号がインクリメントされます。

 シーケンス番号は、データを分割して送信する際にも使用されます。例えば、10MBのデータを3つに分割して送信する場合、それぞれのデータには、それぞれ異なるシーケンス番号が割り振られます。

 また、TCPでは、シーケンス番号に加え、ACK(Acknowledgment Number)という番号も使用されます。ACK番号は、通信相手から受信したデータの最後まで受信したことを通知するために使用されます。送信側は、ACK番号を受信することで、次に送信するべきデータを判断することができます。

 シーケンス番号は、TCPのセキュリティにも重要な役割を果たしています。攻撃者がTCP接続を傍受し、データを盗聴・改ざんすることを防ぐために、シーケンス番号はランダムな値で生成されます。これにより、攻撃者がシーケンス番号を予測して不正なデータ送信を行うことを防ぐことができます。