問題
TCPの3ウェイハンドシェイクで送信されるフラグの順序として正しいものはどれか。
選択肢
- 1SYN → SYN/ACK → ACK
- 2ACK → SYN → SYN/ACK
- 3FIN → ACK → FIN/ACK
- 4SYN → ACK → SYN/ACK
正解
1. SYN → SYN/ACK → ACK
詳しい解説を見る解説を閉じる
解説
TCPのコネクション確立は3ウェイハンドシェイクで行われる。①クライアントが接続要求のSYNを送信し、②サーバがその確認応答と自身の接続要求を兼ねたSYN/ACKを返し、③クライアントが最後にACKを返すことで、双方向の通信路が確立する。確認応答(ACK)は相手の要求を受けて初めて返せるものなので、SYNより先にACKが送られる順序はあり得ず、SYN→ACK→SYN/ACKも誤りである。FINを含む選択肢はコネクション切断時のシーケンスであり、確立とは逆の場面で使われる。関連知識として、SYNだけを大量に送り付けてサーバの接続待ちリソースを枯渇させるSYNフラッド攻撃(DoS攻撃の一種)も頻出である。「SYN→SYN/ACK→ACK」と呪文のように覚えてしまうのが早い。
一問一答
全400問を繰り返し学習