TCPセグメントフォーマット

TCPセグメントフォーマット

 TCP(Transmission Control Protocol)は、インターネット上の通信に広く使われるプロトコルであり、信頼性の高いデータ転送を提供します。TCPのデータ転送は、データをパケットに分割し、パケットを転送するセグメント単位で行われます。以下では、TCPセグメントのフォーマットについて詳しく説明します。

TCPセグメントは、次のようなヘッダとデータから構成されます。

TCPヘッダは、TCPセグメントに付加されるヘッダであり、TCPプロトコルでの通信の制御に必要な情報が含まれます。TCPヘッダの各フィールドについて説明します。

  1. ソースポート番号(Source Port Number):送信元のポート番号を示します。
  2. 宛先ポート番号(Destination Port Number):宛先のポート番号を示します。
  3. シーケンス番号(Sequence Number):データストリームのバイト番号を示します。最初のセグメントの場合は、ランダムなシーケンス番号が使用されます。
  4. 確認応答番号(Acknowledgement Number):データストリームの次の受信を待っているバイト番号を示します。
  5. データオフセット(Data Offset):TCPヘッダの長さを、ワード(4バイト)単位で示します。
  6. 予約ビット(Reserved):将来の使用のために予約されています。
  7. コントロールビット(Flags):TCPヘッダには、URG、ACK、PSH、RST、SYN、FINの6つの制御フラグがあります。
    • URG:緊急データが含まれていることを示します。
    • ACK:確認応答番号が有効であることを示します。
    • PSH:受信側にデータをすぐに渡すことを示します。
    • RST:接続をリセットすることを示します。
    • SYN:接続の確立を要求することを示します。
    • FIN:送信が完了したことを示します。
  8. ウィンドウサイズ(Window Size):受信側がバッファリングすることができる最大バイト数を示します。
  9. チェックサム(Checksum):TCPヘッダとデータの誤り検出を行うためのチェックサムです。
  10. 緊急ポインタ(Urgent Pointer):緊急データがある場合、その位置を示します。
  11. オプション(Options):TCPオプションの情報を含みます。主なオプションは、MSS、ウィンドウスケール、タイムスタンプなどがあります。