MTU - Maximum Transfer Unit

Die Protokolle TCP/IP unterteilen die Daten in kleine Pakete, bevor sie verschickt werden. Die MTU gibt die maximale IP-Paketlänge/-größe für einen bestimmten Netzwerktyp an. Nach oben hin ist die MTU beschränkt. Sie darf jedoch kleiner sein. Je kleiner sie ist, desto größer ist die Fragmentierung der Nutzdaten.

Unterschied: MTU und MSS

Unterschied zwischen MTU und MSS
Im Zusammenhang mit MTU fällt häufig die Bezeichnung MSS. Beide darf man nicht verwechseln. Sie stehen in direktem Zusammenhang. Die MTU gibt die Größe des kompletten TCP/IP-Paketes an. MSS gibt nur den Platz für die Nutzdaten im TCP/IP-Paket an. Üblicherweise ist der IP-Header und TCP-Header jeweils 20 Byte groß, wenn die Header-Felder Options nicht genutzt werden.

Fragmentierung

IP übernimmt die Aufgabe, für die Netzwerkschnittstelle auf der Bitübertragungsschicht, die Daten bei Bedarf in kleinere Einheiten aufzuteilen. Diesen Vorgang nennt man Fragmentierung. Er ist wesentlicher Bestandteil des Internet Protocols (IP). Für die MTUs gibt es hardwareabhängige Werte, die sich je nach Netzwerktyp unterscheiden.

Gründe für die Fragmentierung

Beispiele für MTU und MSS

Netzwerktyp MTU MSS
X.25 / analoge Modem-Verbindungen576 Byte 536 Byte
IEEE 802.3 (PPPoE-Implementierung / DSL) 1.492 Byte 1.452 Byte
Ethernet 1.500 Byte 1.460 Byte
Token Ring (4 MBit/s) 4.464 Byte  
Token Ring (16 MBit/s) 17.914 Byte  
min. MTU IPv468 Byte  
min. MTU IPv6 1.280 Byte  
Die Länge/Größe eines IP-Pakets muss streng nach der jeweils gültigen MTU eingehalten werden, da die Daten sonst nicht übertragen werden können. Ungünstig eingestellte MTU-Werte können auch sporadische Übertragungsprobleme hervorrufen. Bei der Fehlersuche in IP-Netzen sollte das berücksichtigt werden.

Funktionsablauf bei der Fragmentierung

Das IP-Protokoll nimmt die Datenpakete der übergeordneten Transportschicht und zerteilt sie in kleinere Einheiten. Danach bekommt jedes Datenpaket einen IP-Header vorangestellt.
Fragmentierung
Zusammen mit dem IP-Header besteht das IP-Datenpaket aus dem unter der MTU festgelegten Anzahl an Bytes. Das IP-Protokoll auf der Empfängerseite nimmt sich die IP-Pakete und setzt sie wieder in den ursprünglichen Zustand zurück. Dazu werden die Daten zur Fragmentierung aus dem IP-Header gelesen. Das More-Flag (MF) dient als Markierung, ob ein IP-Paket ein Datenteilstück enthält für einen Datenblock. Ist dieses Flag gesetzt, muss das IP-Protokoll warten, bis alle Teilstücke eingetroffen sind. Ist das More-Flag nicht gesetzt, sind die Daten des empfangenen IP-Pakets nicht fragmentiert oder es handelt sich um das letzte Teilstück des Datenblocks. Neben dem More-Flag werden auch Informationen zur Position eines Datenteilstücks mitgeschickt. Dazu dient das Fragment-Offset-Feld im IP-Header.
Sind alle Datenteilstücke eingetroffen wird der Datenblock zusammengesetzt und an das übergeordnete Protokoll übergeben.

Probleme mit der Fragmentierung

Grundsätzlich wird jedem Datenteilstück ein zusätzlicher IP-Header vorangestellt. Wechselt die MTU auf dem Weg zum Ziel mehrmals, wird das Datenpaket jedes mal neu fragmentiert, obwohl es vielleicht schon einmal fragmentiert wurde. Nicht nur, dass die Fragmentierung sehr zeit- und rechenaufwendig ist, zusätzlich wird das Verhältnis zwischen Header und Nutzdaten immer ungünstiger. Je kleiner die MTU, desto größer ist der Verwaltungsanteil an der Übertragungsleistung eines Datenpakets. Irgendwann frisst der IP-Header die effektive Übertragungsleistung einer Netzwerkverbindung auf. Dazu kommt die Anfälligkeit der Netzwerkverbindung bei kleinen Datenblöcken. Das Fehlen eines fragmentierten IP-Pakets kann eine Netzwerkverbindung erheblich stören. Geht ein IP-Paket verloren (z. B. nach ca. 30 bis 40 Sekunden des Nichteintreffens), dann wird der gesamte Datenblock verworfen.

Beispiel: Ein bestimmter Server ist nicht erreichbar

Über einen DSL-Anschluss ist ein bestimmter Server nicht erreichbar. Vorausgesetzt, es gibt keine Probleme mit DNS und der Server hängt tatsächlich am Netz, dann kann das Problem mit der Maximum Transfer Unit (MTU) zu tun haben.

Der Grund: Bei DSL (Verbindung über DSL-Modem) ist die Paketgröße bei PPPoE auf 1.492 Byte limitiert. Der PC sieht jedoch das lokale Netz mit einer MTU von 1.500 Byte. Diese MTU wird verwendet, um für die TCP-Verbindungen die Maximum Segment Size (MSS) zu berechnen, die auch dem entfernten Server mitgeteilt wird. So kann es vorkommen, dass der entfernte Server für die PPPoE-Verbindung zu große Pakete schickt. Da fast alle Übertragungssysteme Fragmentierung verhindern (DF-Bit im IP-Header), meldet der Router dem Absender über ICMP, dass das Paket zu groß war. Beim entfernten Server verhindert jedoch eine falsch konfigurierte Firewall, dass der Server das ICMP-Paket erhält. Anstatt die Paketgröße anzupassen, versucht er immer wieder erneut die Pakete mit der gleichen Größe zu schicken.

Um das Problem zu beseitigen sollte die Firewall beim entfernten Server richtig konfiguriert werden. Alternativ kann man bei den betroffenen Clients die MTU herabstellen. Zumindest bei DSL ist eine MTU von 1.472 ein praktikable Größe. Generell sollte es jedoch so sein, dass die Firewall ICMP-Pakete durchlässt. Alles andere ist fehleranfällig.
Bei Übertragungssystemen, insbesondere bei IPsec-VPN muss man unter Umständen herumexperimentieren, bis man die richtige MTU fürs Netz und die Clients eingestellt bekommt.

Path MTU Discovery / MTU und IPv6

Zu große Datenpakete werden von IPv6-Routern nicht mehr fragmentiert. Ist ein Paket zu groß wird dem Absender eine Fehlermeldung geschickt (MTU Size Error Feedback). Dieser muss dann die maximale Paketlänge (MTU - Maximum Transmissin Unit) anpassen. Dieses Verfahren nennt sich Path MTU Discovery und existiert in ähnlicher Form auch in IPv4. Dort muss im Datenpaket das Don't-Fragment-Flag (DF) gesetzt werden. War in IPv4 dieses Verfahren optional, ist es in IPv6 Pflicht. Kommt es zum Verlust eines Datenpakets oder kommt es zu Fehlern bei der Fragmentierung, schlägt das Path MTU Discovery fehl. In IPv4 wurde der MTU dann auf 68 Byte abgesenkt. Das führte zu einer höheren Paketanzahl und einem unwirtschaftlichen Protokoll-Overhead. IPv6 hat als kleinste einstellbare MTU 1.280 Byte. Dadurch werden die Router nicht mehr unnötig belastet. Selbstverständlich können auch kleinere Pakete als 1.280 Byte übertragen werden.

Übersicht: Internet Protocol