TCPヘッダのフォーマットとサイズの基本

ネットワーク技術解説

TCPヘッダのフォーマットとサイズの基本ーTCP(Transmission Control Protocol)は、ネットワークの通信で利用するOSI参照モデルのレイヤ4に該当するトランスポート層のプロトコルの1つ。ここではTCPヘッダのフォーマットとサイズについて基本を説明しています

TCPの特徴

・通信相手と「3ウェイハンドシェイク」を行うコネクション型
・データを確実に届ける信頼性重視の通信方法

呼び方

TCPヘッダーを付与したデータの通信単位を「セグメント」と呼ぶ。

一般的には「パケット」と呼ばれることも多いのであまり気にせず使いやすい呼び方で大丈夫。

トランスポート層

アプリケーションからトランスポート層に渡されたデータは使用するプロトコルにTCPを選択することでTCPヘッダーを付与します。

TCPヘッダのフォーマット

TCPヘッダの中には以下の情報が含まれています。TCPではUDPと比較して信頼性を確保するために必要な情報がたくさん含まれています。

TCPヘッダ
送信元ポート通信相手からの応答を受付するポート番号。
宛先ポート通信相手のアプリケーションを示すポート番号。
シーケンス番号データが順番通り届いているか確認するための番号。
抜けがあると再送を依頼する。
確認応答番号シーケンス番号に受信したデータバイト数を足して
確認応答(ACK)番号として応答する。
データオフセットヘッダー長とも呼ばれる。
ヘッダの長さを表すことでデータ開始位置も示す。
予約将来的な使用のための予約範囲。常に0。
フラグ6つのフラグ情報がある。
URG,ACK,PSH,RST,SYN,FIN のそれぞれが1ビットで、
0が無効、1が有効を示す。
ウィンドウサイズ応答確認を待たずにまとめて送ることのできる
データ量を示す。
チェックサムTCPヘッダとデータ部分が正しいかチェックするために
使用される。
緊急ポインタURGフラグが有効になっている場合に、緊急データの
位置を示す。
オプションTCP接続の通信で使われる各種値(MSS値など)を
設定する場合に使用する。
パディングTCPヘッダが32bit単位になるように0で埋める。
TCPに含まれる情報

TCPヘッダのサイズ

・送信元ポート
0~65535までの番号を表すために必要な16bitを使用する。

・宛先ポート
0~65535までの番号を表すために必要な16bitを使用する。

・シーケンス番号
0~4,294,967,295を表すための32bitを使用する。

・確認応答番号
32bit

・データオフセット
4bit。

・予約
6bit。

・フラグ
6bit

・ウィンドウサイズ
16bit

・チェックサム
16bit

・緊急ポインタ
16bit

・オプション
可変長。

・パディング
可変長。TCPヘッダを32bit単位にするために0で埋める。

参考リンク

イーサネットフレームヘッダのフォーマットとサイズの基本

IPヘッダのフォーマットとサイズの基本

ICMPヘッダのフォーマットとサイズの基本

UDPヘッダのフォーマットとサイズの基本


コメント