TCPハンドシェイク

TCP (トランスミッションコントロールプロトコル) (en-US)は、IP ネットワーク上の 2 台のコンピューター間でコネクション型通信を行うためのトランスポート層におけるホスト間プロトコルです。 TCP は、IP ネットワーク上で TCP/IP 接続を設定するために、3 ウェイ・ハンドシェイク(別名 TCP ハンドシェイク、3 メッセージハンドシェイク、および、もしくはまたは SYN-SYN-ACK)を使用します。TCP セッションをネゴシエートして TCP セッションを開始するために TCP によって送信される 3 つのメッセージは、それぞれ SYN、SYN-ACK / SYNchronize のための ACK、SYNchronize-ACKnowledgement / ACKnowledge という愛称で呼ばれています。HTTP ブラウザーのリクエストなどのデータを送信する前に互いに情報を双方向に渡したい 2 台のコンピューターが、接続のパラメータをネゴシエートすることができるように、3つのメッセージの仕組みが設計されています。

ホスト(一般的にはブラウザー)は、TCP SYNchronize パケットをサーバーに送信します。サーバーは SYN を受信し、SYNchronize-ACKnowledgement を返送します。ホストはサーバーの SYN-ACK を受信し、ACKnowledge を送信します。サーバーは ACK を受信し、TCP ソケット接続が確立されます。

このハンドシェイクステップは、安全な接続を作成する際に、DNS ルックアップの後、およびTLS ハンドシェイクの前に実行されます。接続は 4度目のハンドシェイクを通じて、接続の各終端で独立して終了させることができます。

関連情報