TCP(Transmission Control Protocol)とはTSP/IPにおけるOSI基本参照モデルのトランスポート層に位置する、信頼性のための確認応答や実行制御などの機能を持つプロトコル。
3ウェイハンドシェイクと呼ばれるコネクション型通信を行うために使用される。
TCPのヘッダ構成
送信ポート番号(16) | 宛先ポート番号(16) | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
シーケンス番号(32) | |||||||||||||||||||||||||||||||
確認応答番号(32) | |||||||||||||||||||||||||||||||
データオフセット(4) | 予約(6) | コードビット(6) | ウィンドウサイズ(16) | ||||||||||||||||||||||||||||
チェックサム(16) | 緊急ポインタ(16) | ||||||||||||||||||||||||||||||
オプション | パディング |
※( )内の数字はビット数
上記のうち、コードビットは次の6つから構成される。
URG urgent |
緊急に処理しなければいけないデータが含まれているを表わす |
---|---|
ACK acknowledgement |
確認応答番号が有効であることを表わす。SYNパケット以外では常にONになる |
PSH push |
受診したデータをすぐに上位アプリケーションに引き渡す必要があることを表わす |
RST reset |
TCP接続を強制終了、もしくは接続要求を拒否することを表わす |
SYN synchronize |
TCPの接続開始要求であることを表わす |
FIN finish |
TCP接続を終了することを表わす。通信を終了する場合は双方からFINパケットが送信される |
3ウェイハンドシェイクとは3回のパケット送信でコネクションを確立する方式。
①SYN
接続元がSYNをONにしたパケットを送信。
②SYN/ACK
接続先がSYNとACKをONにしたパケットを送信。
③ACK
接続元がACKをONにしたパケットを送信。