TCPヘッダの構造

先頭より順番に、次の情報が格納される。
- Source Port (送信元ポート番号) (16ビット)
- Destination Port (宛先ポート番号) (16ビット)
- Sequence Number (シーケンス番号) (32ビット)
- Acknowledgment Number (応答確認番号) (32ビット)
- Data Offset (データオフセット) (4ビット)
- Reserved (予約) (3ビット) 常に0とする
- Control Bits (制御ビット) (9ビット)
- 7 NS (Nonce Sum) (RFC 3540)
- 8 CWR (輻輳ウィンドウ減少) 輻輳ウィンドウ減少の通知 (RFC 3168)
- 9 ECE (ECN-Echo) 輻輳の発生を相手に通知 (RFC 3168)
- 10 URG (緊急フラグ) 緊急ポインタフィールドを使うよう指示
- 11 ACK (応答確認フラグ) セグメントが応答確認を持っている
- 12 PSH (転送強制フラグ) 受信可能になったらすぐ送信
- 13 RST (リセットフラグ) 正しくないパケットを受け取ったときの通信リセットの指示
- 14 SYN (同期フラグ) 先頭シーケンス番号の転送
- 15 FIN (転送終了フラグ) 送信終了。受信は可能
- Window (ウィンドウサイズ) (16ビット)
- Checksum (チェックサム) (16ビット)
- Urgent Pointer (緊急ポインタ) (16ビット)
- Options (オプション) (可変長)
- Padding (パディング) (32ビット単位にアラインメントする領域)
TCPヘッダの制御フラグは、RFC 793
によるもの6ビットが一般的である。
ここに、標準化過程プロトコルRFC 3168
で2ビット(ECE、CWR)が追加され、更に実験プロトコルRFC 3540
で1ビット(NS)が追加されている。