ネットワークスペシャリスト 2024年 午前2 問09
問題文
ホストAからホストBにTCPを用いてデータを送信するとき、TCPセグメントのシーケンス番号と受信確認番号(肯定応答番号)に関する記述のうち、適切なものはどれか。
選択肢
ア:AがBからの応答を待たずに、続けて送信する場合のシーケンス番号は、直前に送信したTCPセグメントのシーケンス番号と送信データのオクテット数の和である。(正解)
イ:Aは、送信するTCPセグメントのシーケンス番号と受信確認番号を0から1ずつ増加させ、最大値65,535に達すると0に戻す。
ウ:Bが受信したTCPセグメントにおいて、受信確認番号がシーケンス番号より小さい場合は、そのTCPセグメントはエラー後に再送されたものである。
エ:Bは、受け取ったTCPセグメントのシーケンス番号を受信確認番号として応答する。
TCPのシーケンス番号と受信確認番号の理解【午前2 解説】
要点まとめ
- 結論:TCPのシーケンス番号は送信データのバイト数に基づき連続的に増加し、応答を待たずに送信可能な次のシーケンス番号は直前の番号に送信済みデータ長を加えた値です。
- 根拠:TCPは信頼性の高い通信を実現するため、シーケンス番号でデータの順序と重複を管理し、受信確認番号は次に期待するバイト番号を示します。
- 差がつくポイント:シーケンス番号は「バイト単位」で管理され、単純に1ずつ増えるわけではなく、送信したデータ量に応じて増加する点を正確に理解することが重要です。
正解の理由
アは、TCPのシーケンス番号の基本的な動作を正しく説明しています。TCPはバイトストリームを扱うため、次に送信するセグメントのシーケンス番号は、直前のセグメントのシーケンス番号に送信済みのデータバイト数を加えた値になります。これにより、受信側はデータの順序を正確に把握し、欠落や重複を検出できます。
よくある誤解
- シーケンス番号が単純に1ずつ増えると思い込む誤解がありますが、実際は送信したバイト数分だけ増加します。
- 受信確認番号は受け取ったシーケンス番号そのものではなく、「次に期待するシーケンス番号」を示します。
解法ステップ
- TCPのシーケンス番号は「バイト単位」で管理されることを確認する。
- 送信済みデータのバイト数を加算して次のシーケンス番号を決定する。
- 受信確認番号は受信側が次に期待するシーケンス番号であることを理解する。
- 選択肢の記述がこれらの原則に合致しているかを検証する。
- それぞれの選択肢の誤りや正しさを比較し、最も正確なものを選ぶ。
選択肢別の誤答解説
- イ:TCPのシーケンス番号は16ビットの範囲(0〜65,535)で循環するわけではなく、32ビットの範囲(0〜4,294,967,295)で管理されます。
- ウ:受信確認番号がシーケンス番号より小さい場合は必ずしも再送とは限らず、ウィンドウ制御や遅延ACKなど他の要因もあります。
- エ:受信確認番号は受け取ったシーケンス番号ではなく、「次に期待するシーケンス番号」を返すため、単純にシーケンス番号を返すのは誤りです。
補足コラム
TCPのシーケンス番号は32ビット長で、送信データのバイト単位で管理されます。これにより、TCPは信頼性の高いデータ転送を実現し、データの順序制御や再送制御を行います。受信確認番号は、受信側が次に受け取りたいシーケンス番号を示し、これにより送信側はどこまでデータが正常に届いたかを把握します。
FAQ
Q: TCPのシーケンス番号はどのように決まるのですか?
A: 初期シーケンス番号はランダムに決まり、その後は送信したデータのバイト数分だけ増加します。
A: 初期シーケンス番号はランダムに決まり、その後は送信したデータのバイト数分だけ増加します。
Q: 受信確認番号は何を示していますか?
A: 受信確認番号は、受信側が次に期待するシーケンス番号を示し、これにより送信側はどこまでデータが正常に届いたかを知ります。
A: 受信確認番号は、受信側が次に期待するシーケンス番号を示し、これにより送信側はどこまでデータが正常に届いたかを知ります。
関連キーワード: TCP, シーケンス番号、受信確認番号、信頼性通信、バイトストリーム、再送制御

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

