TCPヘッダ

TCPヘッダ

 TCPヘッダとは、TCPプロトコルを使用して通信する際に送受信されるデータパケットの先頭に付加される情報のことです。以下に、TCPヘッダの各フィールドについて説明します。

  1. 送信元ポート番号(Source Port) 送信元のアプリケーションが使用しているポート番号を示します。このフィールドは16ビットで、0~65535の範囲で指定されます。
  2. 宛先ポート番号(Destination Port) 受信先のアプリケーションが使用しているポート番号を示します。このフィールドも16ビットで、0~65535の範囲で指定されます。
  3. シーケンス番号(Sequence Number) データの送信順序を管理するために使用されます。送信元が最初のデータパケットを送信する際には、ランダムなシーケンス番号が割り当てられます。その後のデータパケットでは、前回送信したデータのシーケンス番号に、そのデータのバイト数を加算した値が割り当てられます。このフィールドは32ビットで、最大で4294967295までの数値を表現できます。
  4. 確認応答番号(Acknowledgment Number) 相手側が受信したデータのうち、次に受信するべきシーケンス番号を示します。このフィールドも32ビットで、最大で4294967295までの数値を表現できます。
  5. ヘッダ長(Header Length) TCPヘッダの長さを示します。このフィールドは4ビットで、ヘッダ長は最大で60バイトまでです。ただし、オプションを含む場合はこれ以上長くなることがあります。
  6. フラグ(Flags) TCPパケットの制御情報を示します。具体的には、以下のフラグが定義されています。
    URG(緊急フラグ):データが緊急データであることを示します。
    ACK(確認応答フラグ):確認応答番号が有効であることを示します。
    PSH(プッシュフラグ):バッファリングを抑制するために、送信側から受信側にデータを直ちに送信することを示します。
    RST(リセットフラグ):通信のリセットを要求することを示します。
    SYN(同期フラグ):通信の開始を要求することを示します。 
  7. ウィンドウサイズ(Window Size):受信側がバッファリングすることができる最大バイト数を示します。
  8. チェックサム(Checksum):TCPヘッダとデータの誤り検出を行うためのチェックサムです。
  9. 緊急ポインタ(Urgent Pointer):緊急データがある場合、その位置を示します。
  10. オプション(Options):TCPオプションの情報を含みます。主なオプションは、MSS、ウィンドウスケール、タイムスタンプなどがあります。