3ウェイ・ハンドシェイク
表示
(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)
- ウィンドウサイズ - スライディングウィンドウ - フロー制御