ネットワークの基礎
TCPでコネクションを確立する3ウェイハンドシェイクで、やり取りされるパケットの順序として正しいものはどれか。
- ASYN → ACK → FIN
- BACK → SYN → SYN+ACK
- CSYN → SYN+ACK → ACK
答えと解説を見る
正解:C. SYN → SYN+ACK → ACK
3ウェイハンドシェイクでは、まずクライアントがSYNで接続を求め、自分が送るデータの最初の番号(初期シーケンス番号)を伝えます。サーバはSYN+ACKで、それを受け取ったことを確認(ACK)すると同時に、自分の初期シーケンス番号を伝えます。最後にクライアントがACKを返すと、両方向の通信の準備が整います。3回のやり取りで両方の向きの番号を確かめ合うことで、遅れて届いた古いパケットによる誤った接続などを防ぎます。このため、TCPではデータを送り始めるまでに少なくとも1往復の時間(RTT)がかかります。FINはコネクションを終了するときに使います。
- A. FINはコネクションを終了するときのフラグです。
- B. 最初は接続を求めるSYNで、確認のACKはその後に返します。
- C. 正しい。SYN、SYN+ACK、ACKの3回で確立します。