TCPスリーハンドシェイク

TCPスリーハンドシェイクとは

TCPスリーハンドシェイクとは、TCP通信が開始される前の通信の信頼を担保するための仕組みです。

通信相手への要求をTCPパケットにはフラグで示します。フラグにはいくつかあります。SYN、ACK、RST、FINなどです。

TCPスリーハンドシェイクは、SYN、SYN-ACK、ACKの3つのステップで実行されます。

  1. クライアントがランダムに決めたシーケンス番号を付与したSYN(同期したい)パケットを送ります。
  2. これに対してサーバは受け取ったシーケンス番号と1を加えたACK(確認しました)番号を付与したSYN+ACK(同期したいし、確認もしている)パケットを返信します。
  3. クライアントが受け取ったシーケンス番号に1を加えたものとACK番号を付与したACK(確認しました)パケットを送信することで接続の確立されます。

確立された接続は、最終的にRST(接続をリセット)またはFIN(接続を正常に終了)で終了します。

three-handshake