広告 ネットワーク

3ウェイハンドシェイク

3ウェイハンドシェイク

3ウェイハンドシェイク(読み:スリーウェイハンドシェイク、英:three-way handshaking) とは、TCPなどで使用されている、接続(コネクション)を確立するための手順のことです。

3ウェイハンドシェイク

3ウェイハンドシェイクは次の3ステップによって構成されています。

ステップ1:要求側がSYNパケットを送信する

ますコネクション確立を要求するSYNパケットを送信します。

  • SYN=1(コネクション確立を要求するので1)
  • ACK=0
  • シーケンス番号=0 ※初回はランダムな値
助手
助手
ステップ1:接続してもいいですか?

ステップ2:通信相手がSYNとACKパケットを送信する

SYNパケットを受けとった通信相手は、その要求者の接続を許可するACKパケットと、通信相手からもコネクション確立を要求するSYNパケットを送信します。

  • SYN=1(コネクション確立を要求するので1)
  • ACK=1(要求側との接続を許可するので1)
  • シーケンス番号=0 ※初回はランダムな値
  • 確認応答番号=1(相手から受信したシーケンス番号 + 1)
ステップ2:いいですよ。こちらからも接続していいですか?
助手
助手

ステップ3:要求側がACKパケットを送信する

SYNパケットを受けとった要求側は、通信相手との接続を許可するACKパケットを送信します。

  • SYN=0
  • ACK=1(通信相手との接続を許可するので1)
  • シーケンス番号=1(相手から受信した確認応答番号)
  • 確認応答番号=1(相手から受信したシーケンス番号 + 1)
助手
助手
ステップ3:いいですよ。

helpful