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

情報処理技術者試験

本記事は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)を問われているのか、データ長のみを問われているのかを確認する。

文書情報

記事タイトル
令和5年度 ネットワークスペシャリスト試験 午前Ⅱ 問15 IPv4フラグメンテーション
作成日
更新日
Source URL
https://papanda925.com/?p=5720

ライセンス: 本記事のうち、当サイトが権利を有する本文・自作図表は、特記なき限り CC BY 4.0 で利用できます。生成AIを活用して作成・編集した内容を含みます。コードについて、別途ライセンス表示またはリンク先GitHubリポジトリのライセンスがある場合は、その条件を優先します。引用・第三者資料・画像・商標等は本ライセンスの対象外です。 利用ポリシー

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