Warum scheint mein HP C7200-Drucker eine MTU von 1498 zu haben?

Warum scheint mein HP C7200-Drucker eine MTU von 1498 zu haben?

In meinem drahtlosen Netzwerk kann ich den Pfad zu einem Mac mit einer MTU von 1500 unter Ubuntu Linux 12.04 verfolgen.

(Die Mac-MTU ist aus irgendeinem Grund auf 1470 eingestellt, aber Antwort-Frames sind nicht so groß, also spielt das keine Rolle.)

Wenn ich den Pfad zu meinem HP-Drucker verfolge, antwortet dieser nie auf Frames mit einer Länge von 1514 Bytes: MTU(1500) + Ethernet(14) (SRC(6) + DST(6) + type(2)) = 1514

Aber wenn ich meine MTU auf 1498 einstelle, reagiert mein Drucker. Eine MTU von 1499 schlägt ebenfalls fehl.

Hinweis: Wenn ich die MTU auf meinem Mac auf 1500 einstelle, schlägt das Drucken ebenfalls fehl. Daher bezweifle ich, dass es irgendetwas mit dem Computer oder meinem Router zu tun hat.

Update: Wenn ich den Pfad zu google.com verfolge, kann ich sehen, dass mein Router (über seine WAN-Verbindung) mit ICMP-Paketen antwortet, die besagen, dass eine Fragmentierung erforderlich ist und die nachfolgende Frame-MTU 1474 betragen muss.

tracepath ändert die Frame-Größe entsprechend und fährt fort. Das bedeutet, dass es jetzt Frames sendet, die 1488 Byte lang sind.

Mein Drucker sendet kein ICMP-Paket zurück, das besagt, dass er eine Nutzlast von 1500 Byte nicht verarbeiten kann. Es ist, als ob er Frames, die größer als 1512 Byte sind, in einem Black Hole blockiert.

Update: Neuere Macs verwenden 1500 und drucken einwandfrei. Als ich mir ansah, was passierte, versuchte mein Mac zuerst 1500 und wenn dies fehlschlug, senkte er die MTU auf 1470 (aus dem Speicher) – ein interessanter Workaround von Apple.

Antwort1

Eigentlich ist MTUinklusivedes 28-Byte-Headers. Basierend auf Ihrer Beschreibung scheint Ihr Drucker für eine MTU von 1498 konfiguriert zu sein, was sinnvoll ist.


Wenn Sie die MTU Ihres Computers auf 1500 einstellen, werden Pakete mit einer Gesamtgröße von bis zu 1500 Byte gesendet (nicht 1514, wie Sie beschrieben haben).

Eine andere Möglichkeit, die MTU Ihres Pfads oder eines bestimmten Hosts zu ermitteln, ist die Verwendung des Ping-Befehls:

-f sets the Do Not Fragment bit 
-l configures the data size (remember to add 28 bytes for the header)

Um host.example.com für eine MTU von 1500 zu testen, verwenden Sie

ping -f -l 1472 host.beispiel.com.

verwandte Informationen