Transmission Control ProtocolにおけるTCPの3ウェイハンドシェイク(TCP-handshake; three message handshake and/or SYN-SYN-ACKとも呼ばれる)は、TCPがインターネットプロトコルベースのネットワーク上でTCP/IP接続を設定する際に使用される方法です。 TCPの3つのハンドシェイク技術は、2台のコンピュータ間でTCPセッションをネゴシエートして開始するためにTCPが送信する3つのメッセージがあることから、しばしば「SYN-SYN-ACK」(正確にはSYN、SYN-ACK、ACK)と呼ばれます。 TCPのハンドシェイク機構は、通信を試みる2台のコンピュータが、SSHやHTTP Webブラウザのリクエストなどのデータを送信する前に、ネットワークのTCPソケット接続のパラメータをネゴシエートできるように設計されています。
この3ウェイハンドシェイクプロセスは、両端が同時に別々のTCPソケット接続を開始し、ネゴシエートできるようにも設計されています。
この3ウェイハンドシェイクプロセスは、双方が同時に別々のTCPソケット接続を開始してネゴシエートできるように設計されています。
TCP 3ウェイハンドシェイクの図
以下は、TCP 3ウェイハンドシェイクプロセスの(非常に)簡略化された図です。 左側のイベントのリストを見ながら、右側の図を見てみてください。
イベント | ダイアグラム |
ホストAはホストBにTCP SYNchronizeパケットを送信します
ホストBはAのSYNを受信します ホストBはSYNchronize-ACKnowledgementを送信します。ACKnowledgement ホストAがBのSYN-ACKを受信 ホストAがACKnowledgeを送信 ホストBがACKを受信しました。 |
TCP Three Way Handshake (SYN,SYN-ACK,ACK) |
SYNchronizeおよびACKnowledgeメッセージは、TCPのSYNビットまたはACKビットのいずれかで示されます。
SYNchronizeおよびACKnowledgeメッセージは、TCPヘッダ内のSYNビット、またはACKビットのいずれかで示され、SYN-ACKメッセージは、TCPヘッダ内のSYNビットとACKビットの両方がオン(1に設定)になっています。
TCPは、ネットワークTCPソケット接続を確立する際に、SYNchronizeメッセージとACKnowledgeメッセージを使用することで、ネットワークTCPソケット接続が開いているか、同期しているか、確立しているかを知ることができます。
2台のコンピュータ間の通信が終了すると、TCPソケット接続を破棄するために、再度3ウェイ通信が行われます。 このようなTCPソケット接続のセットアップとティアダウンは、TCPが信頼性の高いプロトコルであることを証明する一部です。 また、TCPは、データの受信に成功したことを確認し、データが正しい順序で再構成されることを保証します。
UDPはコネクションレスであることに注意してください。 つまり、UDPはTCPのようにコネクションを確立しないので、UDPはこの3ウェイハンドシェイクを行わず、このために信頼性のないプロトコルと呼ばれています。 これは、UDPがデータを転送できないという意味ではなく、接続がどのように機能するかをネゴシエートしないだけであり、UDPはただ送信して最善を期待するだけです。
TCPでカプセル化されたプロトコル
FTP、Telnet、HTTP、HTTPS、SMTP、POP3、IMAP、SSHなど、TCPを経由するプロトコルは、接続を開く際に3者間ハンドシェイクが行われることに注意してください。 HTTPのウェブリクエスト、SMTPの電子メール、FTPのファイル転送などは、それぞれが送信するメッセージを管理しています。
TCPはプロトコルスタックの中でIP(Internet Protocol)の上に乗っているため、インターネットプロトコルの組み合わせをTCP/IP(TCP over IP)と呼んでいます。 TCPのセグメントは、IPパケットのペイロードセクションの中に渡されます。 IPは、IPアドレスとルーティングを処理し、パケットをある場所から別の場所に送りますが、TCPは、エンドポイント(ネットワークやインターネット接続の両端にあるコンピュータ)間の実際の通信ソケットを管理します。
RELATED TUTORIALS
- More Tutorials about Transmission Control Protocol (TCP)
- TCP Sockets (virtual ports)
- TCP Header
- TCP Flow Control
- More
- More Tutorials about Internet Protocol (IP)
- More Tutorials about User Datagram Protocol (UDP)
TCP Tutorials
- Introduction to Transmission Control Protocol (TCP)
- TCP: 信頼性の高いプロトコル
- TCPヘッダー
- TCP 3-ウェイハンドシェイク
- TCPコネクション
- TCPソケット
- TCPデータ転送
- TCPセグメンテーションと再アセンブリ
- TCPフローコントロールli
- TCP多重化
- TCP優先順位
- TCPトランスポートストリームプッシュ(TCPプッシュ)