6.2.2 順序関係の保持

大きなデータを送る場合には、一つのパケットにデータ が収まりきらず、そのための複数のパケットに分けられて送られることに なります。その場合、当然データの前後関係が失われると連続している ことが分からなくなります。ネットワーク上ではパケットが時間順序に 応じて到着することを期待してはいけません。もしかすると、あるパケット だけ遅れて到着することもあるのです。従って、ヘッダにはその順序番号 が入っていなければなりません。TCPでは、これを保証します(つまり、IP の層にはこの機能はありません)。

TCPでは、順序番号はsequence number(シーケンス番号)と呼ばれ、 初期値は乱数で決められ、その後1byteのデータに対して一つづつ番号を割り当てて います。パケットが送られる際に付けられる順序番号は先頭の番号です。 従って、50byte のデータを送り、先頭の順序番号が 1000 番ならば、次に 送るデータの先頭番号は 1049 番になるので、順序番号は 1049 になります。 なお、送信側で独自にこの 番号はつけるので、双方向で通信をしている場合、両方の送信が独自に 番号をつける点に注意して下さい(図参照)。



Noriyo Kanayama