●TCP/UDPの役割
ネットワーク層(L3)とセッション層(L5)以上で動作するプロトコルとの橋渡しを行う
●TCPヘッダの構成
・基本20byte(160bit)
・TCPヘッダ+ペイロードの部分をTCPセグメントと呼ぶ
フィールド |
説明 |
送信元ポートポート番号 (16bit) |
送信元ポート番号の値 1~65565まで利用可能。0は使用できない ※1 |
宛先ポート番号 (16bit) |
宛先ポート番号の値 1~65565まで利用可能。0は予約済み ※1 |
シーケンス番号 (32bit) |
送信したデータの順番を表す値 |
確認応答番号 (32bit) |
確認応答番号の値 |
ヘッダ長 (4bit) |
TCPヘッダの全体の長さを表す値 |
予約フラグ (3bit) |
将来の拡張のために用意されている。 ※特に使用がなければ全ビット0 |
コントロールフラグ (9bit) |
更に9つ(1bit*9)に分かれる 各bitが1の場合に意味をなす ※2 |
ウィンドウズサイズ (16bit) |
一度に受け取れる最大データを受け取る側が送る側に通知する |
チェックサム (16bit) |
TCPヘッダとデータ部分のエラーチェックを行う |
緊急ポインタ (16bit) |
コントロールフラグ内にある「URG」の値が1の場合に使用される。この場合、緊急に処理すべきデータを意味する |
オプション (可変長) |
TCPの通信の性能を向上させるために利用する |
パディング (可変長) |
TCPヘッダの長さを32bit整数にするために使用される
|
※1: ポート番号の詳細 (0~65535)
ポート番号のタイプ |
ポート番号の範囲 |
説明 |
ウェルノウンポート |
0~1023 |
サーバのアプリケーションに割り当てられるポート |
登録済みポート |
1024~49151 |
独自に作成したアプリケーションに割り当てられるポート |
ダイナミックポート |
49152~65535 |
クライアント側のアプリケーションに自動的に割り当てられるポート |
※2: 以下、コントロールフラグの中身(9つ)
ビット |
各bitが「1」の時の意味 |
NS |
輻輳保護を表す |
CWR |
輻輳制御ウィンドウ縮小を表す |
ECE |
下記SYNフラグがセットされている場合、ECNが利用されていることを表す |
URG |
緊急に処理すべきデータを表す ※この値により、緊急ポインタとの関連があり |
ACK |
確認応答番号のフィールド(32bit)が有効な事を表す |
PSH |
受信したデータを即座にアプリケーションに渡す事を表す |
RST |
コネクションが強制的に切断されことを表す |
SYN |
コネクションの確立を要求することを表す |
FIN |
コネクションの正常な終了を要求することを表す |