令和7年度 春期 応用情報技術者試験 午前 問30

MTU (Maximum Transmission Unit) が1,500バイトに設定されたIPv4ネットワークで,2,000バイトのデータをTCPを用いて送信するときに,二つ目に送信されるパケットに含まれるデータは何バイトか。ここで,TCPヘッダー長は20バイト,IPヘッダー長は20バイト,イーサネットのヘッダー長とトレーラー長は,それぞれ14バイトと4バイトとする。また,データを複数パケットに分割して送信するときは,先に送信するパケットに格納できる上限までデータを含めて送信するものとする。

解答・解説

正解: イ. 540

解答の根拠

この問題では、2,000バイトのデータをTCPを用いて送信する際の、2つ目のパケットに含まれるデータ(TCPペイロード)のサイズを求めます。

  1. MTU(Maximum Transmission Unit)の定義
    MTUは、1回のデータ転送で送信できるIPデータグラムの最大サイズ(IPヘッダー + データ)を表します。問題文でイーサネットのヘッダー長(14バイト)やトレーラー長(4バイト)が示されていますが、これらはデータリンク層の付加情報であり、ネットワーク層であるIPのMTU(1,500バイト)には含まれません。

  2. 1つ目のパケットに含まれるデータサイズの計算
    1つのIPパケットに含めることができるデータの最大サイズは、MTUからIPヘッダーとTCPヘッダーのサイズを引いたものになります(これを MSS: Maximum Segment Size と呼びます)。

    • MTU = 1,500バイト
    • IPヘッダー = 20バイト
    • TCPヘッダー = 20バイト

    1,500−20−20=1,4601,500 - 20 - 20 = 1,460

    先に送信するパケットには上限までデータを含めるため、1つ目のパケットには 1,460バイト のデータが格納されます。

  3. 2つ目のパケットに含まれるデータサイズの計算
    送信する全データは2,000バイトなので、2つ目のパケットに含まれるデータは以下のようになります。

    2,000−1,460=5402,000 - 1,460 = 540

したがって、正解は 540 バイトとなります。

各選択肢の解説

  • ア(500)
    誤り。IPヘッダーやTCPヘッダーのサイズを考慮せず、1つ目のパケットに1,500バイトのデータがそのまま格納されると誤認した場合(2,000−1,500=5002,000 - 1,500 = 500)の数値です。
  • イ(540)
    正解。MTUからIPヘッダーとTCPヘッダーを正しく引き、残りのデータサイズを正しく計算できています。
  • ウ(580)
    誤り。各ヘッダーのサイズの取り扱いを誤って計算した数値です(例えば、IPヘッダーとTCPヘッダーの合計40バイトを逆に足してしまった場合など)。
  • エ(598)
    誤り。MTUからイーサネットのヘッダー(14バイト)やトレーラー(4バイト)を引いてしまうなど、各プロトコル階層のサイズの扱いを誤認した数値です。

Spineチーム