3ウェイハンドシェイクとは?すりーうぇいはんどしぇいく
3ウェイハンドシェイクとは、TCPがコネクションを確立する3段階の手順。クライアントがSYNを、サーバがSYN+ACKを、クライアントがACKを送り、この3つのセグメントで双方向それぞれの初期シーケンス番号を相手に伝え、届いたことを確認し合う。サーバは事前にLISTEN状態でSYNを待ち受けている。
最終更新:2026-10-06
この語が出る過去問を解く →背景
TCPは順序保証と再送を行うため、両方向のバイト列に通し番号が要る。しかも番号は毎回0から始めるのではなく、そのつど別の初期値から始める——古いコネクションの遅れて届いたセグメントを、新しいコネクションのものと取り違えないためである。したがって確立時には、双方が自分の初期値を送り、それが相手に届いたことを確かめるやり取りが必要になる。3つで足りる最小の手順がこれ。
具体例
サーバ側の状態はLISTEN→SYN_RECEIVED→ESTABLISHEDと遷移する。Wiresharkでキャプチャすれば、この3つのセグメントに続いて最初のデータが流れる様子を確認できる。切断側はFINとACKを双方向でやり取りするため、確立より1つ多い4段階になる。
試験での引っ掛け
SYN Flood攻撃は、SYN+ACKに対するACKをわざと返さずに半開きの接続をため込み、サーバのキューを枯渇させる手口で、対策はSYN Cookie。また確立は3つのセグメントで済むが切断は4つ必要で、この数を取り違えさせる出題がある。
関連用語
出た過去問
出典:令和7年度 春期 ネットワークスペシャリスト試験 午前Ⅱ 問11(IPA)
TCPの通信において、サーバがクライアントから要求を受けて3ウェイハンドシェイクを用いたTCPコネクションを確立するとき、サーバがSYNフラグの付いたパケットを…
正解:LISTEN
要点:サーバはLISTEN状態でSYNを受け付けハンドシェイクを始める
サーバは待ち受け用ソケットを開いた時点でLISTEN状態になり、この状態でクライアントからのSYNパケットを受け付ける。SYNを受け取ってSYN+ACKを返すとSYN-RECEIVED状態へ遷移し、最後のACKを受け取ってESTABLISHEDになる。3ウェイハンドシェイクの起点がLISTENである。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。