div

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ソケットの接続がESTABLISHEDになります。

tcp three-way handshake,SYN,SYN-ACK,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プッシュ)
このページをブックマークしてシェアしましょう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です