私のワイヤレス ネットワークでは、Ubuntu Linux 12.04 で MTU 1500 を使用して Mac にトレースパスを実行できます。
(何らかの理由で Mac MTU は 1470 に設定されていますが、応答フレームはそれほど大きくないので、これは問題になりません)
HPプリンタへのトレースパスを実行すると、1514バイト長のフレームにはまったく応答しません。MTU(1500) + Ethernet(14) (SRC(6) + DST(6) + type(2)) = 1514
しかし、MTU を 1498 に設定すると、プリンターは応答します。MTU を 1499 に設定すると、プリンターは応答しません。
注: Mac で MTU を 1500 に設定すると印刷も失敗するため、コンピューターやルーターに問題があるとは考えられません。
更新: google.com へのトレースパスを実行すると、ルーター (WAN リンク上) が ICMP パケットで応答し、フラグメンテーションが必要であり、後続のフレーム MTU は 1474 である必要があることを示していることがわかります。
tracepath はこれに合わせてフレーム サイズを変更し、続行します。つまり、1488 バイトの長さのフレームを送信するようになります。
私のプリンタの場合、1500 バイトのペイロードを処理できないことを示す ICMP パケットは返送されません。1512 バイトを超えるフレームをブラックホール化しているかのようです。
更新: 新しい Mac は 1500 を使用し、問題なく印刷されます。何が起こっているのか調べてみると、私の Mac は最初に 1500 を試し、失敗した場合は MTU を 1470 に下げていました (記憶によると)。これは Apple の興味深い回避策です。
答え1
実際のMTUは包括的28 バイトのヘッダーです。ご説明いただいた内容から判断すると、プリンタは MTU 1498 に設定されているようですが、これは妥当な値です。
コンピュータの MTU を 1500 に設定すると、合計サイズが最大 1500 バイトのパケットが送信されます (説明した 1514 ではありません)。
パスまたは特定のホストの MTU を確認する別の方法は、ping コマンドを使用することです。
-f sets the Do Not Fragment bit
-l configures the data size (remember to add 28 bytes for the header)
したがって、host.example.comのMTUが1500であるかどうかをテストするには、次のようにします。
ping -f -l 1472 host.example.com を実行します。