MTU / Maximum Transmission Unit

Die MTU repräsentiert die maximale Größe in Bytes welche ein Layer 3 Netzwerk Paket annehmen kann. Die Default Größe für ein Layer 3 IP Paket sind 1500 bytes. Dabei sind schon die IP und TCP Header inkludiert!

Während der TCP und IP Header mindestens 20 byte aber maximal 60 byte groß sind, ist der Ethernet Header (inkl. Trailer) 18 byte groß. Wird 802.1Q VLAN tagging genutzt, kann der Ethernet Header bis zu 22 bytes Groß werden.

Layer 2 MTU vs Layer 3 MTU

Wenn man von MTU spricht, so ist häufig die Layer 3 MTU gemeint. Hin und wieder (aber vor allem bei MPLS) stößt man auf die Layer 2 MTU. Diese MTU beträgt standardmäßig maximal 1522 bytes - L3 MTU (1500 bytes) + Header (18 bytes) + Dot.1q (4 bytes). Frames größer als 1522, werden als Jumbo Frames bezeichnet.

Daraus ergibt sich folgendes:

  • TCP MSS: 1460 bytes
  • TCP MSS + TCP Header (20 bytes): 1480 bytes
  • TCP MSS + TCP Header (20 bytes) + IP Header (20 bytes): 1500 bytes
  • L3 MTU Size: 1500 bytes
  • L3 MTU + Header: 1518 bytes
  • L3 MTU + Header + Dot.1q: 1522 bytes

Abhängig vom Protokoll muss die MTU für bestimmte Protokolle angepasst werden. Bei GRE bspw. darf die MTU auf höchstens 1476 bytes gesetzt werden, da der GRE Header einen Overhead von 24 bytes erzeugt.

Konfiguration

Die MTU Größe kann manuell auf virtuelle Interfaces (wie ein Tunnel Interface) oder auf ein physikalisches Interface gesetzt werden. Wenn sie manuell gesetzt werden, dann müssen sie auf beiden Interface Seiten gleich eingestellt sein. Sonst gibt es einen MTU Mismatch und Pakete werden verworfen.

R1(config-if)#ip mtu 1400

Unterschiedliche MTU Größen entlang des Netzwerk

Die MTU Size darf zwischen den beiden Netzwerkteilnehmern Größer oder gleich groß der benötigten MTU Size liegen. Angenommen Client-A spricht mit SW1 mit einer MTU Größe von 1420. SW1 und SW2 sprechen aber mit einer MTU Size von 9000. SW2 und Client-B haben wieder eine MTU Size von 1420. Dann ist über diesen Weg eine Kommunikation möglich. In der Regel ist eine größere MTU kein Problem da die Daten aufgefüllt werden (Padding). Nur kleine MTU Größen würden zu einem Problem führen da es zu Fragmentierung der Pakete kommen kann.

Client-A <—MTU 1420-> SW1 <-MTU 9000-> SW2 <-MTU 1420-> Client-B

References