ネットワークスペシャリスト 2023年 午前2 問05
問題文
IPv4ネットワークでTCPを使用するとき、フラグメント化されることなく送信できるデータの最大長は何オクテットか。ここでTCPパケットのフレーム構成は図のとおりであり、ネットワークのMTUは1,500オクテットとする。また、( )内はフィールド長をオクテットで表したものである。

選択肢
ア:1,446
イ:1,456
ウ:1,460(正解)
エ:1,480
🔒 解説は解答すると表示されます
TCPデータ最大長【午前2解説】
正解の理由
イーサネットでのMTU(通常 1500 オクテット)は、イーサネットフレームの「ペイロード部(つまりIPパケット全体)」の最大長を指します。ペイロードにはIPヘッダとその後続(TCPヘッダ+データ)が含まれ、イーサネットのMACヘッダ(14)やFCS(4)はMTUに含まれません。設問でIPヘッダが20オクテット、TCPヘッダが20オクテットと指定されているため、データ部の最大長は
オクテットとなります。したがって正答は ウ です。
解法ステップ
- MTU の定義を確認する:イーサネットMTU = イーサネットペイロードの最大長(IPヘッダ+IPペイロードを含む)。MACヘッダ・FCSは含まれない。
- ペイロード内で使える総長を計算する:MTU = 1500 オクテット。
- IPヘッダ(20)を引く:1500 − 20 = 1480 → ここが TCP セグメント(TCPヘッダ+データ)の合計長。
- TCPヘッダ(20)を引く:1480 − 20 = 1460 → これがフラグメント化なしに送れるTCPデータの最大長。
数式表現:
選択肢別の誤答解説
-
ア: 1446
誤りの典型は「MACヘッダ(14)」をMTUから差し引いてしまうことです。MTUはペイロード長なので MAC ヘッダは元々含まれておらず、これを引くと実際より小さい値になります。 -
イ: 1456
この値はさらに FCS(4)を差し引いてしまった場合の結果(1500 − 20 − 20 − 4 = 1456)に対応します。FCS はイーサネットフレームの一部ですが、MTU(1500)には含めないため差し引く必要はありません。 -
ウ: 1460
正答。上の手順どおり MTU から IP,TCP 各ヘッダを差し引いた値です。 -
エ: 1480
これは TCP ヘッダ(20)を引き忘れた場合の値(1500 − 20 = 1480)です。TCPデータ最大長を求めるには TCP ヘッダ分も差し引く必要があります。
よくある誤解
- MTU に MAC ヘッダや FCS が含まれると考える誤解:MTU はイーサネットペイロード長(IPパケット長)を指すため、MACヘッダ(14)やFCS(4)はMTUに含めません。これらを差し引くと過小評価になります。
- FCS の扱いの混同:FCS はフレームの末尾の検査語でありフレーム長には含まれますが、一般に「MTU = 1500」は FCS を含まない定義です。
- ヘッダ長は可変になり得ることの見落とし:IPオプションやTCPオプション(例:SACK, Timestamps)があるとヘッダ長が増え、データ部はさらに小さくなります。
補足コラム
TCPで実際に使う値として「MSS(Maximum Segment Size)」という概念があります。MSS は TCP が相手に通知する「1セグメントあたりの最大データ長」で、イーサネット標準環境では通常 MSS = 1460 と設定されます。式としては
です。経路上により小さい MTU がある場合はパスMTUディスカバリ(PMTUD)により実際の送信上限が下がる点にも注意してください。
FAQ
Q: VLAN タグ(802.1Q)があるとどうなる?
A: VLAN タグはイーサネットヘッダに4バイトを追加します。スイッチや機器によってはフレーム全長が増えるため、1500 の MTU を超える扱いになったり、MTU が調整される場合があります。設問のように「MTU=1500」が前提なら計算は同じです(ただし実環境では機器仕様を確認してください)。
A: VLAN タグはイーサネットヘッダに4バイトを追加します。スイッチや機器によってはフレーム全長が増えるため、1500 の MTU を超える扱いになったり、MTU が調整される場合があります。設問のように「MTU=1500」が前提なら計算は同じです(ただし実環境では機器仕様を確認してください)。
Q: IP/TCP にオプションがある場合は?
A: オプション分だけヘッダ長を増やし、その分データ長は減ります。例えばTCPオプションでヘッダが24バイトならデータ最大長は 1500 − 20 − 24 = 1456 バイトになります。
A: オプション分だけヘッダ長を増やし、その分データ長は減ります。例えばTCPオプションでヘッダが24バイトならデータ最大長は 1500 − 20 − 24 = 1456 バイトになります。
Q: フラグメント化を完全に避けたい場合の実務上の対策は?
A: MSS の調整、Path MTU Discovery の利用、あるいはアプリレイヤで送信サイズを制限する方法があります。DF(Don't Fragment)フラグを使うと途中でフラグメントされる代わりに ICMP を返してくれるため、PMTUD と組み合わせる運用が一般的です。
A: MSS の調整、Path MTU Discovery の利用、あるいはアプリレイヤで送信サイズを制限する方法があります。DF(Don't Fragment)フラグを使うと途中でフラグメントされる代わりに ICMP を返してくれるため、PMTUD と組み合わせる運用が一般的です。
関連キーワード: MTU、MSS、IPv4フラグメンテーション、Ethernetフレーム、FCS、MACヘッダ、TCPヘッダ、IPヘッダ、Path MTU Discovery

\ せっかくなら /
ネットワークスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

