TCPヘッダ

Source Port [16ビット]
送信元ポート番号です。
Destination Port [16ビット]
宛先ポート番号です。
Sequence Number [32ビット]
TCPセグメントが運んでいる最初の1バイトのシーケンス番号です。
但し、SYNフラグが有効になっている場合には、このフィールドの値はInitial Sequence Number(ISN)になります。 最初に送られるデータのシーケンス番号は(ISN+1)になります。
Acknowledgement Number [32ビット]
受信側が期待する次のシーケンス番号(このフィールドの値+1を受信側は期待)を表します。 ACKフラグが有効になっている場合に利用されます。 一度TCPコネクションが確立されると、全てのTCPセグメントでACKフラグが有効になります。
Data Offset [4ビット]
TCPヘッダの大きさを32ビットワード単位で表します。 TCPヘッダはこのフィールドの値に4を掛けた値になります。
Reserved [6ビット]
利用されていません。
Control Bits [6ビット]
URG Urgent Pointer field significant
ACK Acknowledgment field significant
PSH Push Function
RST Reset the connection
SYN Synchronize sequence numbers
FIN No more data from sender
Window [16ビット]
受信側が一度に受け取れるデータサイズを表します。 単位は8ビット(バイト、オクテット)です。 この値を制御することにより、輻輳制御(congestion control)が行われます。
Checksum [16ビット]
チェックサムです。 チェックサムの計算は、TCPチェックサム計算用に作成されるpseudoヘッダ、TCPヘッダ、TCPペイロード(データ部分)から計算されます。 チェックサムの計算対象のデータ長が2で割り切れない値の場合には、パディングが行われます。
Urgent Pointer [16ビット]
URGフラグが有効になっている場合にのみ利用されます。 Urgent dataの位置を表します。
Options And Padding [可変長]
TCPヘッダの最後に、オプションを付加することができます。 オプションは、8ビットの整数倍の長さになります。
パディングは、TCPヘッダが32ビットワード境界で終了するように行われます。