応用情報技術者試験 令和7年春 午前問30 解説付き過去問
問題
MTU(Maximum Transmission Unit)が1,500バイトに設定されたIPv4ネットワークで、
2,000バイトのデータをTCPを用いて送信するときに、二つ目に送信されるパケットに含まれるデータは何バイトか。
ここで、TCPヘッダー長は20バイト、IPへッダー長は20バイト、イーサネットのヘッダー長とトレーラー長は、
それぞれ14バイトと4バイトとする。
また、データを複数パケットに分割して送信するときは、先に送信するパケットに格納できる上限までデータを含めて送信するものとする。
正解
解説
この問題は、MTUを超えたデータをTCPとIPプロトコルを使用して送信する際のパケット分割と、特定のパケットに含まれるデータ量を求める問題です。
- MTUとプロトコルヘッダの関係
MTUは、ネットワークを通じて送信可能な最大のデータサイズを指します。ここでは1,500バイトがMTUとして設定されています。
イーサネットヘッダとトレーラはそれぞれ14バイトと4バイトを占めますので、トータルでは18バイトです。
さらに、IPヘッダが20バイト、TCPヘッダも20バイトを占めるため、これらの合計は58バイトになります。
したがって、1,500バイトのMTUからこれらヘッダとトレーラの合計を差し引いた1,442バイトが、実際にデータを運ぶことができる最大サイズです。 - データのパケット分割
送信するデータは2,000バイトです。最初のパケットはヘッダとトレーラを除いた1,442バイトのデータを含むことができます。
したがって、2,000バイトから1,442バイトを引くと、残り558バイトのデータが次のパケットに必要となります。
二つ目のパケットにも同様にIPヘッダとTCPヘッダが必要です。これらのヘッダを加えると再び58バイトが必要となります。
従って、二つ目のパケットで実際に輸送できるデータ量は、1,500バイト(MTU)から58バイト(ヘッダとトレーラの合計)を引いた1,442バイトのうち、残りの558バイト全てを含めることができます。
ただし、二つ目のパケットには残り558バイトだけを含めればよいので、実際にはさらにパディングが発生する可能性がありますが、問題文中では具体的なパディングの値は与えられていません。
したがって、二つ目に送信されるパケットに含まれるデータは540バイトが正しい計算となります。これはイーサネットフレーム内で輸送される総データ量とヘッダーの合計がMTUを超えない範囲での計算に基づいています。