3ウェイ・ハンドシェイク

3ウェイ・ハンドシェイク (スリーウェイハンドシェイク, three-way handshaking) とは、TCP などにおいて使用されている、接続（コネクション）を確立するための手順。

 概要 
次の 3 ステップによって構成される。
 通信の要求者が相手に対して SYN パケットを送信する。送信するシーケンス番号（順序番号）はランダムな値。
 SYN パケットを受けとった通信相手は、その要求者の接続を許可する SYN ACK パケットを送信する。同時に通信相手は接続を準備するために、その要求者との 接続用の情報を記憶する領域を割り当てる。要求者へ回答する際の確認応答番号（ACK番号）は、受信したシーケンス番号（順序番号）に1を加えた値になる。通信相手側が送信するシーケンス番号（順序番号）はランダムな値。
 SYN ACK パケットを受けとった要求者は、接続開始をあらわす ACK パケットを送信し、通信相手との通信を開始する。通信相手に送信する確認応答番号（ACK番号）は受信したシーケンス番号（順序番号）に1を加えた値になる。

TCP が 3 ウェイ・ハンドシェイクを行うので TCP を使用する通信においては 3 ウェイ・ハンドシェイクを行う必要はない。
しかし、UDP においては 3 ウェイ・ハンドシェイクがおこなわれないため、UDP を使用する上位のプロトコルである SIP などにおいても 3 ウェイ・ハンドシェイクが行われる。
SIP において上記の SYN、SYN ACK、ACK に対応するメッセージが INVITE、200 OK、ACK である。
SYNはSynchronizeの略であり、ACKはAcknowledgeの略である。

 関連項目 
 TCP (Transmission Control Protocol)
 SIP (Session Initiation Protocol)
 SYN flood - SYNパケットを利用したDoS攻撃
 ハンドシェイク
 ラウンドトリップタイム
 肯定応答 (ACK)
 ウィンドウサイズ - スライディングウィンドウ - フロー制御

3うえいはんとしえいく
うえいはんとしえいく