シーケンス番号によるパケット順序確認に関するネットワークスペシャリスト試験午後Ⅰ形式問題
平成22年度 午後Ⅰ 問3 設問Ⅰ(シーケンス番号によるパケット順序確認) を参考に、
穴埋め形式のオリジナル10問+解答+解説 を作成します。
---
シーケンス番号によるパケット到着順の確認(午後Ⅰ穴埋め形式10問)
---
問題1
TCPのシーケンス番号は、送信データの ________ を表す値である。
→ 先頭バイト位置
解説:
TCPでは送信する全バイトに通し番号を付け、その先頭バイト番号をシーケンス番号として格納することで、受信側が順序を判断できる。
---
問題2
受信側はシーケンス番号と受信バイト数から、次に受け取るべきデータの ________ を算出できる。
→ 期待シーケンス番号
解説:
ACKで通知される番号は「次に受け取りたい先頭バイト番号」であり、連続受信の判定に使う。
---
問題3
シーケンス番号が期待値より大きい場合、そのパケットは ________ と判断される。
→ 先行到着(順序飛び)
解説:
まだ到着していないパケットの前に届くため、バッファに一時保存される。
---
問題4
シーケンス番号が期待値より小さい場合、そのパケットは ________ と判断される。
→ 重複受信(再送)
解説:
すでに受信済みのデータ範囲に含まれるため、再送パケットとみなされる。
---
問題5
受信側がACK番号として返すのは、連続して正しく受信した最後のバイトの ________ を1増やした値である。
→ シーケンス番号
解説:
この仕組みにより、送信側は次に送信すべきデータ位置を判断できる。
---
問題6
複数のパケットが異なる経路を通ると、シーケンス番号の大小に関わらず ________ が発生する可能性がある。
→ パケット順序の入れ替わり(乱れ)
解説:
ルーティングの経路分散や遅延差で順序が乱れるが、TCPはシーケンス番号で再構築する。
---
問題7
シーケンス番号は送信ごとに増加し、最大値に達すると ________ する。
→ 0に戻る(循環)
解説:
TCPのシーケンス番号は32ビットなので、約4GB送信すると0に戻る仕様。
---
問題8
到着順を確認するため、受信側は ________ と受信長を記録して管理する。
→ 各パケットのシーケンス番号
解説:
これにより欠落部分や順序違いを正確に把握できる。
---
問題9
順序が乱れたパケットは、欠落パケットが到着するまで ________ に格納される。
→ 再構成バッファ
解説:
TCPは欠落分が届くまで後続データをアプリケーションに渡さない。
---
問題10
シーケンス番号による順序制御は、 ________ 層の信頼性を実現する仕組みの1つである。
→ トランスポート
解説:
TCPはトランスポート層で順序制御、誤り検出、再送制御を実装する。
---
平成22年度 午後Ⅰ問3 設問Ⅰ の出題スタイルを参考にした実際のパケットキャプチャ表+順序判定作業付きの午後Ⅰ完全再現問題(正常系+順序乱れ系)
---
午後Ⅰ 再現形式問題:シーケンス番号によるパケット到着順確認
問題文
以下は、あるTCPセッションにおけるサーバ→クライアント方向のパケットキャプチャの抜粋である。
パケットには 送信元IPアドレス、宛先IPアドレス、シーケンス番号(Seq)、データ長(Len) が記録されている。
表1:キャプチャ結果(到着順)
到着順 送信元IP 宛先IP Seq Len
① 192.0.2.10 198.51.100.20 1001 500
② 192.0.2.10 198.51.100.20 2001 500
③ 192.0.2.10 198.51.100.20 1501 500
④ 192.0.2.10 198.51.100.20 2501 500
⑤ 192.0.2.10 198.51.100.20 3001 500
---
設問1
この通信で、最初に送信されたパケットのシーケンス番号は ________ である。
---
設問2
期待シーケンス番号が1501の時に到着したパケットは、
順序としては( 先行/遅延/重複 )どれに該当するか。
---
設問3
表のパケット③(Seq=1501)は、受信側の期待番号から見て
どのように処理されるかを 15字以内 で答えよ。
---
設問4
表中で最も順序が遅れて到着したパケットは、Seq= ________ のものである。
---
設問5
もしこのキャプチャが異常系(SYN Floodなど)であれば、Seq番号の推移やLen値にどのような不自然さが見られるか、簡潔に説明せよ。
---
解答例と解説
---
設問1 解答:
1001
解説:
表①の最初のパケットがシーケンス1001で始まっている。TCPでは最初のデータバイトの位置がシーケンス番号として設定される。
---
設問2 解答:
先行
解説:
期待値1501の状態でSeq=2001が到着した場合、間にある1501〜2000のデータが未到着なので先行到着と判断される。
---
設問3 解答:
再構成バッファに格納
解説:
順序が前後しているため、欠落データが届くまでアプリケーション層には渡さずバッファで保持する。
---
設問4 解答:
1501
解説:
到着順③だが、本来②の直後に来るべきデータであるため、最も遅れて到着したパケットとなる。
---
設問5 解答例:
SYN FloodではSeq番号が固定または異常に不連続、Lenが0で大量に繰り返されるなどの不自然さがある。
---
図解付き:TCP状態遷移図(簡易版)
[ESTABLISHED]
↑ 受信バッファ
| 正常: Seq番号が連続
| 異常: Seqが飛ぶ / Len=0大量
[送信]-----> [受信]
---
比較用:正常系 vs 順序乱れ系
状態 Seq推移 Len 備考
正常 1001→1501→2001→2501… 一定 順序通り到着
順序乱れ 1001→2001→1501→2501 一定 中間データが後で到着
SYN Flood 1000固定 0 接続枯渇攻撃
コメント
コメントを投稿