__TCP__のデータの伝送単位をTCPパケットと呼ぶが、その先頭にある制御情報の部分のことを表す。
先頭の20バイトは以下の表の上から順に内容が固定されている。
| フィールド名 | ビット長 | 内容 |
|---|---|---|
| 送信元ポート番号 | 16 | 送信側のプログラムポート番号 |
| 宛先ポート番号 | 16 | 受信側のプログラムポート番号 |
| シーケンス番号 | 32 | 先頭位置のデータが送信データの何バイト目かを受信側へ伝える番号 |
| ACK番号 | 32 | 何バイト目までのデータが届いたかを伝える番号 |
| データ・オフセット | 4 | データ部分の開始箇所を表す |
| 未使用 | 6 | 特になし |
| コントロール・ビット | 6 | ビットの内容によって通信制御のいみが変わる(こちらを参照) |
| ウインドウ | 16 | 受信側から送信側に受信確認を待たずに 送信可能なデータ量(ウインドウ・サイズ)を通知するための番号 |
| チェックサム | 16 | 誤りの有無を表す |
| 緊急ポインタ | 16 | 緊急処理が必要なデータ位置を表す |
| オプション | 可変長 | 上記以外のヘッダー・フィールドを記載するオプション追加が可能 |