令和5年度 ネットワークスペシャリスト試験 午前Ⅱ 問15 IPv4フラグメンテーション

Tech

本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。

令和5年度 ネットワークスペシャリスト試験 午前Ⅱ 問15 IPv4フラグメンテーション

IPパケットの分割におけるサイズ計算を問う問題です。MTUとヘッダーサイズの差分から、分割後のデータ長を導き出すのが解法の鍵です。

IPヘッダーの長さが20バイト、IPデータ部の長さが4,000バイトのIPv4パケットを、MTUが1,500バイトのネットワークに送出するために、フラグメンテーション(分割)を行う。第2番目のパケットの「全長(Total Length)」は何バイトか。

【解説】

IPフラグメンテーション(パケット分割)における計算手順は以下の通りです。

  1. 1パケットあたりの最大データ長の算出 MTU(最大転送単位)は、IPヘッダーを含むパケット全体の最大サイズです。ここからIPヘッダー長を引くことで、1フラグメントに載せられるデータの最大長を求めます。 $$1,500 (\text{MTU}) – 20 (\text{Header}) = 1,480 (\text{bytes})$$

  2. フラグメントオフセットの制約確認 IPv4のフラグメントオフセットは8バイト単位で管理されるため、分割されるデータ長は「8の倍数」である必要があります。 $$1,480 \div 8 = 185$$ 割り切れるため、1,480バイトをそのままデータ部として使用可能です。

  3. 分割プロセスの特定 元のデータ4,000バイトを、1,480バイトずつ順次切り出します。

    • 第1パケット:データ1,480バイト(累積1,480)

    • 第2パケット:データ1,480バイト(累積2,960)

    • 第3パケット:データ1,040バイト(残り全部)

  4. 第2パケットの「全長」の計算 問題が問うているのは、第2番目のパケットの「全長(IPヘッダー + データ部)」です。 $$20 (\text{Header}) + 1,480 (\text{Data}) = 1,500 (\text{bytes})$$

graph TD
    Original["Original: 4020B"] --> H["Header: 20B"]
    Original --> D["Data: 4000B"]
    D --> P1["Frag1: 1500B"]
    D --> P2["Frag2: 1500B"]
    D --> P3["Frag3: 1060B"]
    subgraph "2nd Packet"
    P2
    end

【選択肢の吟味】

選択肢 判定 解説
誤り 1,480バイトは第2パケットの「データ部のみ」の長さです。
正解 MTU上限までデータが入るため、全長は1,500バイトとなります。
誤り 2,500バイトは、分割計算にMTUの概念を誤用した数値と考えられます。
誤り 2,520バイトは、単に4,000から1,480を引いた残りにヘッダーを足しただけの計算ミスです。

【ポイント】

  • MTUはIPヘッダー(通常20B)を含んだ値である。

  • 分割されるデータサイズは必ず「8の倍数」でなければならない。

  • 全長(Total Length)を問われているのか、データ長のみを問われているのかを確認する。

ライセンス:本記事のテキスト/コードは特記なき限り CC BY 4.0 です。引用の際は出典URL(本ページ)を明記してください。
利用ポリシー もご参照ください。

コメント

タイトルとURLをコピーしました