TCPヘッダのフォーマットとサイズの基本ーTCP(Transmission Control Protocol)は、ネットワークの通信で利用するOSI参照モデルのレイヤ4に該当するトランスポート層のプロトコルの1つ。ここではTCPヘッダのフォーマットとサイズについて基本を説明しています
TCPの特徴
・通信相手と「3ウェイハンドシェイク」を行うコネクション型
・データを確実に届ける信頼性重視の通信方法
呼び方
TCPヘッダーを付与したデータの通信単位を「セグメント」と呼ぶ。
一般的には「パケット」と呼ばれることも多いのであまり気にせず使いやすい呼び方で大丈夫。
トランスポート層
アプリケーションからトランスポート層に渡されたデータは使用するプロトコルにTCPを選択することでTCPヘッダーを付与します。
TCPヘッダのフォーマット
TCPヘッダの中には以下の情報が含まれています。TCPではUDPと比較して信頼性を確保するために必要な情報がたくさん含まれています。
送信元ポート | 通信相手からの応答を受付するポート番号。 |
宛先ポート | 通信相手のアプリケーションを示すポート番号。 |
シーケンス番号 | データが順番通り届いているか確認するための番号。 抜けがあると再送を依頼する。 |
確認応答番号 | シーケンス番号に受信したデータバイト数を足して 確認応答(ACK)番号として応答する。 |
データオフセット | ヘッダー長とも呼ばれる。 ヘッダの長さを表すことでデータ開始位置も示す。 |
予約 | 将来的な使用のための予約範囲。常に0。 |
フラグ | 6つのフラグ情報がある。 URG,ACK,PSH,RST,SYN,FIN のそれぞれが1ビットで、 0が無効、1が有効を示す。 |
ウィンドウサイズ | 応答確認を待たずにまとめて送ることのできる データ量を示す。 |
チェックサム | TCPヘッダとデータ部分が正しいかチェックするために 使用される。 |
緊急ポインタ | URGフラグが有効になっている場合に、緊急データの 位置を示す。 |
オプション | TCP接続の通信で使われる各種値(MSS値など)を 設定する場合に使用する。 |
パディング | TCPヘッダが32bit単位になるように0で埋める。 |
TCPヘッダのサイズ
・送信元ポート
0~65535までの番号を表すために必要な16bitを使用する。
・宛先ポート
0~65535までの番号を表すために必要な16bitを使用する。
・シーケンス番号
0~4,294,967,295を表すための32bitを使用する。
・確認応答番号
32bit
・データオフセット
4bit。
・予約
6bit。
・フラグ
6bit
・ウィンドウサイズ
16bit
・チェックサム
16bit
・緊急ポインタ
16bit
・オプション
可変長。
・パディング
可変長。TCPヘッダを32bit単位にするために0で埋める。
コメント