ネットワークスペシャリスト 2011年 午前2 問12
問題文
クライアントとサーバ間で3ウェイハンドシェイクを使用し、次の順序でTCPセッションを確立するとき、サーバから送信されたSYN/ACKパケットのシーケンス番号Aと確認応答番号Bの正しい組合せはどれか。


選択肢
ア:
イ:
ウ:(正解)
エ:
TCPセッション確立における3ウェイハンドシェイクのシーケンス番号【午前2 解説】
要点まとめ
- 結論:サーバから送信されるSYN/ACKパケットのシーケンス番号はサーバ側の初期番号、確認応答番号はクライアントのSYN番号+1である。
- 根拠:TCPの3ウェイハンドシェイクでは、SYNパケットのシーケンス番号に対し、応答側はそれを確認応答番号に設定し、自身の初期シーケンス番号をシーケンス番号に使う。
- 差がつくポイント:クライアントとサーバのシーケンス番号の役割と確認応答番号の計算方法を正確に理解しているかが鍵となる。
正解の理由
選択肢ウは、サーバのSYN/ACKパケットのシーケンス番号を「22222」(サーバの初期シーケンス番号)、確認応答番号を「11112」(クライアントのSYN番号11111+1)としており、TCPの仕様に完全に合致しています。
これにより、サーバはクライアントの送信したSYNを正しく受信したことを示し、自身の接続開始番号を通知しています。
これにより、サーバはクライアントの送信したSYNを正しく受信したことを示し、自身の接続開始番号を通知しています。
よくある誤解
- クライアントのシーケンス番号をそのままサーバの確認応答番号にしない。必ず「+1」する必要がある。
- サーバのシーケンス番号はクライアントの番号に依存せず、独自の初期番号を使う。
解法ステップ
- クライアントのSYNパケットのシーケンス番号を確認(11111)。
- サーバはこの番号に「+1」した値を確認応答番号に設定する(11112)。
- サーバは自身の初期シーケンス番号を決める(22222)。
- サーバのSYN/ACKパケットはシーケンス番号にサーバの初期番号、確認応答番号にクライアントの番号+1を入れる。
- 選択肢の中からこの組み合わせを選ぶ。
選択肢別の誤答解説
- ア:シーケンス番号がクライアントの番号(11111)であり、サーバの初期番号として不適切。
- イ:シーケンス番号がクライアントの番号+1(11112)であり、サーバの初期番号として誤り。
- ウ:正解。サーバの初期番号(22222)とクライアント番号+1(11112)を正しく設定。
- エ:確認応答番号がクライアントの初期番号(11111)であり、+1されていないため誤り。
補足コラム
TCPの3ウェイハンドシェイクは、信頼性のある接続確立の基盤です。
シーケンス番号はデータの順序制御と重複検出に使われ、初期番号はランダムに設定されることが多いです。
確認応答番号は受信したデータの次に期待する番号を示し、通信の同期を保ちます。
シーケンス番号はデータの順序制御と重複検出に使われ、初期番号はランダムに設定されることが多いです。
確認応答番号は受信したデータの次に期待する番号を示し、通信の同期を保ちます。
FAQ
Q: なぜ確認応答番号は「+1」するのですか?
A: SYNフラグも1バイトのデータとして扱われるため、次に受信すべきシーケンス番号を示すために「+1」します。
A: SYNフラグも1バイトのデータとして扱われるため、次に受信すべきシーケンス番号を示すために「+1」します。
Q: サーバの初期シーケンス番号は固定ですか?
A: いいえ、通常はランダムに設定され、セキュリティ向上や衝突回避に役立ちます。
A: いいえ、通常はランダムに設定され、セキュリティ向上や衝突回避に役立ちます。
関連キーワード: TCP, 3ウェイハンドシェイク、シーケンス番号、確認応答番号、ネットワーク通信、セッション確立

\ せっかくなら /
ネットワークスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

