Maximum Transmission Unit: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
Zeile 2: Zeile 2:


== Beschreibung ==
== Beschreibung ==
'''MTU''' (Maximum Transmission Unit) beschreibt die maximale Paketgröße eines Protokolls der Vermittlungsschicht (Schicht 3) des OSI-Modells in Byte, die ohne Zerlegung in den Rahmen (engl. „Frame“) eines Netzes der Sicherungsschicht (Schicht 2) passt.
'''MTU''' (Maximum Transmission Unit) beschreibt die maximale Paketgröße eines Protokolls der Vermittlungsschicht (Schicht 3) des OSI-Modells in Byte, die ohne Zerlegung in den Rahmen (engl. „Frame“) eines Netzes der Sicherungsschicht (Schicht 2) passt
* Das Paket passt in die Nutzlast (Payload) des Protokolls der Sicherungsschicht
* Das Paket passt in die Nutzlast (Payload) des Protokolls der Sicherungsschicht
* Die maximale Größe der Nutzlast der Sicherungsschicht wird auch oft als MTU der Sicherungsschicht (engl. 'link MTU') bezeichnet
* Die maximale Größe der Nutzlast der Sicherungsschicht wird auch oft als MTU der Sicherungsschicht (engl. 'link MTU') bezeichnet


Die '''Maximum Transmission Unit''' ('''MTU'''; deutsch ''maximale Übertragungseinheit'') beschreibt die maximale [[Datenpaket|Paketgröße]] eines [[Netzwerkprotokoll|Protokolls]] der [[Vermittlungsschicht]] (Schicht 3) des [[OSI-Modell]]s, gemessen in [[Oktett (Informatik)|Oktetten]] ([[Byte]]s), welche ohne [[IP-Fragmentierung|Fragmentierung]] in den Rahmen (engl. „[[Datenframe|Frame]]“) eines Netzes der [[Sicherungsschicht]] (Schicht 2) übertragen werden kann.
Die '''Maximum Transmission Unit''' ('''MTU'''; deutsch ''maximale Übertragungseinheit'') beschreibt die maximale [[Datenpaket|Paketgröße]] eines [[Netzwerkprotokoll|Protokolls]] der [[Vermittlungsschicht]] (Schicht 3) des [[OSI-Modell]]s, gemessen in [[Oktett (Informatik)|Oktetten]] ([[Byte]]s), welche ohne [[IP-Fragmentierung|Fragmentierung]] in den Rahmen (engl. „[[Datenframe|Frame]]“) eines Netzes der [[Sicherungsschicht]] (Schicht 2) übertragen werden kann
* Diese Paketgröße passt also in die Nutzlast ([[Nutzdaten|Payload]]) des Protokolls der Sicherungsschicht.
* Diese Paketgröße passt also in die Nutzlast ([[Nutzdaten|Payload]]) des Protokolls der Sicherungsschicht
* Die maximale Größe der Nutzlast der Sicherungsschicht wird auch oft als MTU der Sicherungsschicht (engl. 'link MTU') bezeichnet.
* Die maximale Größe der Nutzlast der Sicherungsschicht wird auch oft als MTU der Sicherungsschicht (engl. 'link MTU') bezeichnet
* Die maximale Größe eines Rahmens der Sicherungsschicht lässt sich so berechnen:
* Die maximale Größe eines Rahmens der Sicherungsschicht lässt sich so berechnen:


Zeile 15: Zeile 15:
|}
|}


Die MTU wird durch Einstellungen im Rahmen der Möglichkeiten der verwendeten Hardware und Technik bestimmt.
Die MTU wird durch Einstellungen im Rahmen der Möglichkeiten der verwendeten Hardware und Technik bestimmt
* Sie kann auf derselben [[Schnittstelle]] unterschiedliche Werte für unterschiedliche Protokolle der Vermittlungsschicht (z. B. [[IPv4]] oder [[IPv6]]) annehmen.
* Sie kann auf derselben [[Schnittstelle]] unterschiedliche Werte für unterschiedliche Protokolle der Vermittlungsschicht (z. B. [[IPv4]] oder [[IPv6]]) annehmen
* Alle an einem Schicht-2-Netz beteiligten Schnittstellen, welche Protokolle höherer Schichten verarbeiten, müssen auf denselben Wert für die jeweiligen Schicht-3-Protokolle eingestellt werden.
* Alle an einem Schicht-2-Netz beteiligten Schnittstellen, welche Protokolle höherer Schichten verarbeiten, müssen auf denselben Wert für die jeweiligen Schicht-3-Protokolle eingestellt werden


Im OSI-Modell spricht man auf der Vermittlungsschicht von einem Paket (engl. 'packet'), während man auf der Sicherungsschicht von einem Rahmen (engl. 'frame') spricht.
Im OSI-Modell spricht man auf der Vermittlungsschicht von einem Paket (engl. 'packet'), während man auf der Sicherungsschicht von einem Rahmen (engl. 'frame') spricht
* Die Terminologie, welche das OSI-Modell für die Einheiten auf den verschiedenen OSI-Modellschichten verwendet, hat zu einiger Verwirrung um den Begriff der MTU geführt (siehe [[#Abweichende Verwendung des Begriffs bei wichtigen Herstellern|abweichende Verwendung bei wichtigen Herstellern]]).
* Die Terminologie, welche das OSI-Modell für die Einheiten auf den verschiedenen OSI-Modellschichten verwendet, hat zu einiger Verwirrung um den Begriff der MTU geführt (siehe [[#Abweichende Verwendung des Begriffs bei wichtigen Herstellern|abweichende Verwendung bei wichtigen Herstellern]])
* Unter der ''„packet size“'' (Paketgröße) wird fälschlicherweise teils die ''„frame size“'' (Rahmengröße) verstanden, jedoch stellt die obige Definition (siehe RFC 1122 und RFC 791) dies eindeutig klar.
* Unter der ''„packet size“'' (Paketgröße) wird fälschlicherweise teils die ''„frame size“'' (Rahmengröße) verstanden, jedoch stellt die obige Definition (siehe RFC 1122 und RFC 791) dies eindeutig klar


Ein Spezialfall liegt vor, wenn ein Schicht-2-Protokoll über ein anderes Schicht-2-Protokoll [[Tunnel (Rechnernetz)|getunnelt]] wird, denn dann nennt man auch die Nutzlast selbst „Rahmen“ (engl. 'frame').
Ein Spezialfall liegt vor, wenn ein Schicht-2-Protokoll über ein anderes Schicht-2-Protokoll [[Tunnel (Rechnernetz)|getunnelt]] wird, denn dann nennt man auch die Nutzlast selbst „Rahmen“ (engl. 'frame')
{| class="wikitable float-right"
{| class="wikitable float-right"
|+ Typische MTU-Größen
|+ Typische MTU-Größen
Zeile 55: Zeile 55:
| HIPPI ||
| HIPPI ||
|-
|-
| [[Asynchronous Transfer Mode|ATM]] || 4500, s. u.
| [[Asynchronous Transfer Mode|ATM]] || 4500, s. u
|-
|-
| [[ARCNET]] ||
| [[ARCNET]] ||
Zeile 62: Zeile 62:
|}
|}


Die ''Path MTU (PMTU)'' beschreibt die maximale Paketgröße, die entlang der gesamten Wegstrecke übertragen werden kann, ohne einer [[IP-Fragmentierung|Fragmentierung]] zu unterliegen.
Die ''Path MTU (PMTU)'' beschreibt die maximale Paketgröße, die entlang der gesamten Wegstrecke übertragen werden kann, ohne einer [[IP-Fragmentierung|Fragmentierung]] zu unterliegen
* Sie ist damit gleich der kleinsten MTU aller Schicht-2-Teilstücke im Pfad.
* Sie ist damit gleich der kleinsten MTU aller Schicht-2-Teilstücke im Pfad
* Die PMTU kann automatisch durch ''[[Path MTU Discovery|PMTU Discovery (PMTUD)]]'' ermittelt werden.
* Die PMTU kann automatisch durch ''[[Path MTU Discovery|PMTU Discovery (PMTUD)]]'' ermittelt werden


=== Beispiel Brief ===
=== Beispiel Brief ===
Das Konzept der MTU kann auf den Briefverkehr adaptiert werden.
Das Konzept der MTU kann auf den Briefverkehr adaptiert werden
* Ein Kompaktbrief darf maximal 50 g wiegen.
* Ein Kompaktbrief darf maximal 50 g wiegen
* Zum Transport benötigt der Brief einen Briefumschlag z. B. 4 g und eine Briefmarke 0,3 g.
* Zum Transport benötigt der Brief einen Briefumschlag z. B. 4 g und eine Briefmarke 0,3 g
* Diese 4,3 g entsprechen der Größe der Sicherungsschichtheader.
* Diese 4,3 g entsprechen der Größe der Sicherungsschichtheader
* Daraus ergibt sich, dass die MTU (der maximale Inhalt für einen Kompaktbrief oder ''Packet Size'') 50 g – 4,3 g = 45,7 g beträgt.
* Daraus ergibt sich, dass die MTU (der maximale Inhalt für einen Kompaktbrief oder ''Packet Size'') 50 g – 4,3 g = 45,7 g beträgt
Will man mehr Gewicht verschicken, muss man auf ein anderes Protokoll (einen Großbrief mit mehr Porto) ausweichen oder den Inhalt auf mehrere Briefe aufteilen, also ''fragmentieren''.
Will man mehr Gewicht verschicken, muss man auf ein anderes Protokoll (einen Großbrief mit mehr Porto) ausweichen oder den Inhalt auf mehrere Briefe aufteilen, also ''fragmentieren''


== Beispiel Ethernet ==
== Beispiel Ethernet ==
Ein Ethernet Frame besteht aus zwei Teilen: dem ''„Header“'', in dem Quell- und Zieladressen und andere wichtige Parameter für den Versand kodiert sind, und der Nutzlast, deren Größe durch die MTU bestimmt ist.
Ein Ethernet Frame besteht aus zwei Teilen: dem ''„Header“'', in dem Quell- und Zieladressen und andere wichtige Parameter für den Versand kodiert sind, und der Nutzlast, deren Größe durch die MTU bestimmt ist


In diesem Versuch ist die Größe der MTU mit 1500 Byte vorgegeben.
In diesem Versuch ist die Größe der MTU mit 1500 Byte vorgegeben
* Mit Hilfe des [[Ping (Datenübertragung)|ping]]-Programmes wird ein ''„Frame“'' erzeugt, der dann im Netzwerk über das Ethernet-Protokoll versendet wird.
* Mit Hilfe des [[Ping (Datenübertragung)|ping]]-Programmes wird ein ''„Frame“'' erzeugt, der dann im Netzwerk über das Ethernet-Protokoll versendet wird
* Die Verwendung des Begriffes Nutzlast ist hier mehrdeutig, da im OSI-Modell die verschiedenen Protokolle ineinander eingepackt ([[Datenkapselung (Netzwerktechnik)|gekapselt]]) werden.
* Die Verwendung des Begriffes Nutzlast ist hier mehrdeutig, da im OSI-Modell die verschiedenen Protokolle ineinander eingepackt ([[Datenkapselung (Netzwerktechnik)|gekapselt]]) werden
* Der im Versuch verwendete [[Linux]]-Befehl <span style="font-family:monospace;">ping -s 1472 10.0.0.1</span> ([[Windows]]-Befehl <span style="font-family:monospace;">ping -l 1472 10.0.0.1</span>) sendet dann ein [[Internet Control Message Protocol|ICMP]]-Paket mit der Nutzlast von 1472 Bytes an die [[IP-Adresse]] 10.0.0.1.
* Der im Versuch verwendete [[Linux]]-Befehl <span style="font-family:monospace;">ping -s 1472 10.0.0.1</span> ([[Windows]]-Befehl <span style="font-family:monospace;">ping -l 1472 10.0.0.1</span>) sendet dann ein [[Internet Control Message Protocol|ICMP]]-Paket mit der Nutzlast von 1472 Bytes an die [[IP-Adresse]] 10.0.0.1
  # ping -f -s 1472 10.0.0.1
  # ping -f -s 1472 10.0.0.1
          1472 bytes Nutzlast des ICMP-Protokolles (Vermittlungsschicht)
1472 bytes Nutzlast des ICMP-Protokolles (Vermittlungsschicht)
        +   8 bytes ICMP-Header (Vermittlungsschicht)
+ 8 bytes ICMP-Header (Vermittlungsschicht)
        +   20 bytes IPv4-Header (Vermittlungsschicht)
+ 20 bytes IPv4-Header (Vermittlungsschicht)
        -------------
-------------
        = 1500 bytes (Nutzlast von Ethernet)
= 1500 bytes (Nutzlast von Ethernet)
        +   14 bytes (Header der Sicherungsschicht)
+ 14 bytes (Header der Sicherungsschicht)
        +   4 bytes (Frame Check Sequence)
+ 4 bytes (Frame Check Sequence)
        -------------
-------------
        = 1518 bytes (kompletter Ethernet Frame)
= 1518 bytes (kompletter Ethernet Frame)


Mit einem Sniffer wie z.&nbsp;B.&nbsp;[[Wireshark]] wird als Ethernet Header nur die Größe von 14 Byte angezeigt.
Mit einem Sniffer wie z.&nbsp;B.&nbsp;[[Wireshark]] wird als Ethernet Header nur die Größe von 14 Byte angezeigt
* Hierzu kommt noch die 4 Byte große [[Frame Check Sequence]] am Ende des Frames.
* Hierzu kommt noch die 4 Byte große [[Frame Check Sequence]] am Ende des Frames
* Falls [[Virtual Local Area Network|VLANs]] verwendet werden, besteht der Header der Sicherungsschicht aus 18 Byte und der gesamte Ethernet Frame kann eine Größe von bis zu 1522 Byte annehmen.
* Falls [[Virtual Local Area Network|VLANs]] verwendet werden, besteht der Header der Sicherungsschicht aus 18 Byte und der gesamte Ethernet Frame kann eine Größe von bis zu 1522 Byte annehmen
* Würde IPv6 verwendet, änderte sich obige Berechnung dahingehend, dass der IPv6-Header der Vermittlungsschicht 40 statt 20 Byte beträgt und damit statt 1472 Byte ICMP-Nutzlast nur 1452 Byte möglich wären.
* Würde IPv6 verwendet, änderte sich obige Berechnung dahingehend, dass der IPv6-Header der Vermittlungsschicht 40 statt 20 Byte beträgt und damit statt 1472 Byte ICMP-Nutzlast nur 1452 Byte möglich wären


Zum Prüfen der MTU eines Pfades ist es hilfreich, dem ping-Programm vorzugeben, das ''„don’t fragment (DF) bit“'' für die Testpakete im IPv4-Header zu setzen (für Linux z.&nbsp;B.&nbsp;<span style="font-family:monospace;">ping -M do -s 1472 10.0.0.1</span>, für Windows: <span style="font-family:monospace;">ping -l 1472 -f 10.0.0.1</span> ), denn dann erhält man eine Nachricht, falls die MTU überschritten wird.
Zum Prüfen der MTU eines Pfades ist es hilfreich, dem ping-Programm vorzugeben, das ''„don’t fragment (DF) bit“'' für die Testpakete im IPv4-Header zu setzen (für Linux z.&nbsp;B.&nbsp;<span style="font-family:monospace;">ping -M do -s 1472 10.0.0.1</span>, für Windows: <span style="font-family:monospace;">ping -l 1472 -f 10.0.0.1</span> ), denn dann erhält man eine Nachricht, falls die MTU überschritten wird
* Leicht sichtbar machen lässt sich die ''Path MTU'' mit dem Programm ''tracepath'' für IPv4 bzw.&nbsp;''tracepath6'' für IPv6.
* Leicht sichtbar machen lässt sich die ''Path MTU'' mit dem Programm ''tracepath'' für IPv4 bzw.&nbsp;''tracepath6'' für IPv6


== Einfluss auf andere Protokolle ==
== Einfluss auf andere Protokolle ==
Die MTU ist ein hardwareabhängiger Wert, der sämtliche Parameter oberhalb der [[Sicherungsschicht]] des OSI-Modells beeinflusst.
Die MTU ist ein hardwareabhängiger Wert, der sämtliche Parameter oberhalb der [[Sicherungsschicht]] des OSI-Modells beeinflusst
* Am Beispiel [[Ethernet]] ist dies einfach erklärt: In diesem Netzwerk werden sämtliche Pakete der Schicht&nbsp;3, beispielsweise IP-Pakete, in „Ethernet-Frames“ übertragen.
* Am Beispiel [[Ethernet]] ist dies einfach erklärt: In diesem Netzwerk werden sämtliche Pakete der Schicht&nbsp;3, beispielsweise IP-Pakete, in „Ethernet-Frames“ übertragen
* Die ''Nutzdaten'' dieses Ethernet-Frames (d.&nbsp;h. die IP-Pakete) dürfen den MTU-Wert nicht übersteigen.
* Die ''Nutzdaten'' dieses Ethernet-Frames (d.&nbsp;h.&nbsp;die IP-Pakete) dürfen den MTU-Wert nicht übersteigen
* Die Länge der TCP-Nutzdaten ([[Maximum Segment Size]]) wird daher aus der MTU direkt berechnet.
* Die Länge der TCP-Nutzdaten ([[Maximum Segment Size]]) wird daher aus der MTU direkt berechnet


== Andere Beispiele und Probleme ==
== Andere Beispiele und Probleme ==
''[[Jumbo Frames]]'' für ''Gigabit Ethernet'' können deutlich mehr als 1518 Oktette beinhalten und damit ist es möglich, größere Pakete unfragmentiert zu übertragen.
''[[Jumbo Frames]]'' für ''Gigabit Ethernet'' können deutlich mehr als 1518 Oktette beinhalten und damit ist es möglich, größere Pakete unfragmentiert zu übertragen
* Positiv wiegt, dass der Protokoll-Overhead bei der Verwendung von ''Jumbo Frames'' reduziert werden kann und Router weniger Pakete behandeln müssen.
* Positiv wiegt, dass der Protokoll-Overhead bei der Verwendung von ''Jumbo Frames'' reduziert werden kann und Router weniger Pakete behandeln müssen
* Allerdings ist die Terminologie bzgl. MTU derart uneinheitlich unter den Herstellern, dass es in der Praxis schwierig ist, von den Standardeinstellungen abzuweichen.
* Allerdings ist die Terminologie bzgl.&nbsp;MTU derart uneinheitlich unter den Herstellern, dass es in der Praxis schwierig ist, von den Standardeinstellungen abzuweichen
* Des Weiteren sind ''Jumbo Frames'' nicht im [[IEEE 802.3|IEEE-802.3]]-Standard spezifiziert, trotzdem unterstützen die meisten Hersteller von ''Gigabit Ethernet Switches'' und ''Routern'' MTUs bis 9000 Oktette.
* Des Weiteren sind ''Jumbo Frames'' nicht im [[IEEE 802.3|IEEE-802.3]]-Standard spezifiziert, trotzdem unterstützen die meisten Hersteller von ''Gigabit Ethernet Switches'' und ''Routern'' MTUs bis 9000 Oktette
* So hat sich als Quasistandard eine ''Path MTU'' um ca. 1500 Byte im Internet eingebürgert, die durch das weit verbreitete Ethernet sowieso meist nicht überschritten werden kann.
* So hat sich als Quasistandard eine ''Path MTU'' um ca. 1500 Byte im Internet eingebürgert, die durch das weit verbreitete Ethernet sowieso meist nicht überschritten werden kann


Mit dem Aufkommen von Internetzugängen, die auf Tunnelprotokollen basieren, zum Beispiel beim Verbindungsaufbau über das [[PPP over Ethernet|PPPoE-Protokoll]] hat die MTU an Bedeutung gewonnen.
Mit dem Aufkommen von Internetzugängen, die auf Tunnelprotokollen basieren, zum Beispiel beim Verbindungsaufbau über das [[PPP over Ethernet|PPPoE-Protokoll]] hat die MTU an Bedeutung gewonnen
* Obwohl die ''[[Path MTU Discovery|PMTUD]]'' in diesem Fall dafür sorgen soll, dass die Kommunikation trotz der durch den Tunnel abgesenkten MTU möglich ist, gibt es immer wieder fehlkonfigurierte Firewalls, die durch Verwerfen von [[Internet Control Message Protocol|ICMP]]-Steuerpaketen die ''[[Path MTU Discovery|PMTUD]]'' stören.
* Obwohl die ''[[Path MTU Discovery|PMTUD]]'' in diesem Fall dafür sorgen soll, dass die Kommunikation trotz der durch den Tunnel abgesenkten MTU möglich ist, gibt es immer wieder fehlkonfigurierte Firewalls, die durch Verwerfen von [[Internet Control Message Protocol|ICMP]]-Steuerpaketen die ''[[Path MTU Discovery|PMTUD]]'' stören
* Auch große Websites sind oft von diesem Konfigurationsfehler betroffen, sodass die Nutzer von getunnelten Zugängen die MTU ihrer Geräte verkleinern müssen, um auch mit diesen Sites kommunizieren zu können.
* Auch große Websites sind oft von diesem Konfigurationsfehler betroffen, sodass die Nutzer von getunnelten Zugängen die MTU ihrer Geräte verkleinern müssen, um auch mit diesen Sites kommunizieren zu können


;Optimale MTU
;Optimale MTU
Zeile 122: Zeile 122:
: so groß wie möglich, ohne dass Probleme auftreten
: so groß wie möglich, ohne dass Probleme auftreten
* Komplexe Optimierung
* Komplexe Optimierung
: so viel kleiner als o.&nbsp;g. Maximum, dass der Verschnitt der Transportzellen der unter der DSL-Schicht liegenden [[Asynchronous Transfer Mode|ATM]]-Transportschicht möglichst klein wird.
: so viel kleiner als o.&nbsp;g.Maximum, dass der Verschnitt der Transportzellen der unter der DSL-Schicht liegenden [[Asynchronous Transfer Mode|ATM]]-Transportschicht möglichst klein wird


Die MTU bei ATM (4500) ist nicht zu verwechseln mit der Zellengröße (53 Bytes, 48 davon Nutzlast).
Die MTU bei ATM (4500) ist nicht zu verwechseln mit der Zellengröße (53 Bytes, 48 davon Nutzlast)
* Bei der Übertragung über einen ATM-Link werden IP-Pakete in Stücke zu je 48 Bytes zerlegt und für die Übertragung auf mehrere ATM-Zellen verteilt.
* Bei der Übertragung über einen ATM-Link werden IP-Pakete in Stücke zu je 48 Bytes zerlegt und für die Übertragung auf mehrere ATM-Zellen verteilt
* Der Router am anderen Ende des ATM-Links sammelt diese Zellen und setzt das ursprüngliche IP-Paket wieder zusammen.
* Der Router am anderen Ende des ATM-Links sammelt diese Zellen und setzt das ursprüngliche IP-Paket wieder zusammen
* Im Gegensatz dazu wird bei der IP-Fragmentierung das Paket nicht vom Router reassembliert, sondern erst von dem Host, für den das Paket bestimmt war.
* Im Gegensatz dazu wird bei der IP-Fragmentierung das Paket nicht vom Router reassembliert, sondern erst von dem Host, für den das Paket bestimmt war


Probleme, die durch einen falschen MTU-Wert auftreten können, sind Webseiten, die gar nicht oder nur teilweise angezeigt werden.<ref>{{Internetquelle |url=https://vpntester.de/anleitung/optimale-mtu-groesse-bestimmen/ |titel= Optimale MTU Groesse bestimmen |werk= Markus Hanf, vpntester.de |datum=2018-09-03 |zugriff=2019-10-16}}</ref>
Probleme, die durch einen falschen MTU-Wert auftreten können, sind Webseiten, die gar nicht oder nur teilweise angezeigt werden.<ref>{{Internetquelle |url=https://vpntester.de/anleitung/optimale-mtu-groesse-bestimmen/ |titel= Optimale MTU Groesse bestimmen |werk= Markus Hanf, vpntester.de |datum=2018-09-03 |zugriff=2019-10-16}}</ref>


== Abweichende Verwendung des Begriffs ==
== Abweichende Verwendung des Begriffs ==
Cisco und Juniper verwenden den Begriff MTU in ihrer Konfigurationssyntax als maximale Rahmen- bzw.&nbsp;Paketgröße der zu konfigurierenden Netzwerkschicht.
Cisco und Juniper verwenden den Begriff MTU in ihrer Konfigurationssyntax als maximale Rahmen- bzw.&nbsp;Paketgröße der zu konfigurierenden Netzwerkschicht


Folgende Einstellungen entsprechen einander
Folgende Einstellungen entsprechen einander
Zeile 140: Zeile 140:
Cisco:
Cisco:
  interface GigabitEthernet2/3
  interface GigabitEthernet2/3
  mtu 9192
mtu 9192
  ip address 192.168.0.1 255.255.255.252
ip address 192.168.0.1 255.255.255.252
  ip mtu 9000
ip mtu 9000
  ipv6 address 2001:DB8::1/64
ipv6 address 2001:DB8::1/64
  ipv6 mtu 8000
ipv6 mtu 8000
  ipv6 router isis
ipv6 router isis
  clns mtu 1497
clns mtu 1497
  !
  !


Juniper:
Juniper:
  interfaces {
  interfaces {
    ge-0/0/0 {
ge-0/0/0 {
        mtu 9192;
mtu 9192;
        unit 0 {
unit 0 {
            family inet {
family inet {
                mtu 9000;
mtu 9000;
                address 192.168.0.2/30;
address 192.168.0.2/30;
            }
}
            family inet6 {
family inet6 {
                mtu 8000;
mtu 8000;
                address 2001:DB8::2/64;
address 2001:DB8::2/64;
            }
}
            family iso {
family iso {
                mtu 1497;
mtu 1497;
            }
}
        }
}
    }
}
  }
  }


Zeile 179: Zeile 179:


; Hinweis
; Hinweis
* Die beim Befehl ping angegebene Größe entspricht der Anzahl der zu sendenden Datenbytes.
* Die beim Befehl ping angegebene Größe entspricht der Anzahl der zu sendenden Datenbytes
* Diese muss also 28 Byte kleiner sein als die tatsächliche Paketgröße, um die Größe des Paket-Headers zu berücksichtigen.
* Diese muss also 28 Byte kleiner sein als die tatsächliche Paketgröße, um die Größe des Paket-Headers zu berücksichtigen


=== Beispiel Ethernet ===
=== Beispiel Ethernet ===
* Ein Ethernet Frame besteht aus zwei Teilen: dem ''„Header“'', in dem Quell- und Zieladressen und andere wichtige Parameter für den Versand kodiert sind, und der Nutzlast, deren Größe durch die MTU bestimmt ist.
* Ein Ethernet Frame besteht aus zwei Teilen: dem ''„Header“'', in dem Quell- und Zieladressen und andere wichtige Parameter für den Versand kodiert sind, und der Nutzlast, deren Größe durch die MTU bestimmt ist
* In diesem Versuch ist die Größe der MTU mit 1500 Byte vorgegeben. Mithilfe des ping-Programmes wird ein ''„Frame“'' erzeugt, der dann im Netzwerk über das Ethernet-Protokoll versendet wird.
* In diesem Versuch ist die Größe der MTU mit 1500 Byte vorgegeben.  
* Die Verwendung des Begriffes Nutzlast ist hier mehrdeutig, da im OSI-Modell die verschiedenen Protokolle ineinander eingepackt (gekapselt) werden.  
* Mithilfe des ping-Programmes wird ein ''„Frame“'' erzeugt, der dann im Netzwerk über das Ethernet-Protokoll versendet wird
* Die Verwendung des Begriffes Nutzlast ist hier mehrdeutig, da im OSI-Modell die verschiedenen Protokolle ineinander eingepackt (gekapselt) werden
 
* Der im Versuch verwendete Linux-Befehl <tt>ping -s 1472 10.0.0.1</tt> (Windows-Befehl <tt>ping -l 1472 10.0.0.1</tt>) sendet dann ein Internet Control Message Protocol|ICM-Paket mit der Nutzlast von 1472 Bytes an die IP-Adresse 10.0.0.1


* Der im Versuch verwendete Linux-Befehl <tt>ping -s 1472 10.0.0.1</tt> (Windows-Befehl <tt>ping -l 1472 10.0.0.1</tt>) sendet dann ein Internet Control Message Protocol|ICM-Paket mit der Nutzlast von 1472 Bytes an die IP-Adresse 10.0.0.1.
  ping -f -l 1472 10.0.0.1
  ping -f -l 1472 10.0.0.1
          1472 bytes Nutzlast des ICMP-Protokolles (Transportschicht)
1472 bytes Nutzlast des ICMP-Protokolles (Transportschicht)
        +   8 bytes ICMP-Header (Transportschicht)
+ 8 bytes ICMP-Header (Transportschicht)
        +   20 bytes IPv4-Header (der Vermittlungsschicht)
+ 20 bytes IPv4-Header (der Vermittlungsschicht)
        -------------
-------------
        = 1500 bytes (Nutzlast von Ethernet)
= 1500 bytes (Nutzlast von Ethernet)
        +   14 bytes (Header der Sicherungsschicht)
+ 14 bytes (Header der Sicherungsschicht)
        +   4 bytes (Frame Check Sequence)
+ 4 bytes (Frame Check Sequence)
        -------------
-------------
        = 1518 bytes (kompletter Ethernet Frame)
= 1518 bytes (kompletter Ethernet Frame)


* Mit einem Sniffer wie z.&nbsp;B.&nbsp;Wireshark wird als Ethernet Header nur die Größe von 14 Byte angezeigt.
* Mit einem Sniffer wie z.&nbsp;B.&nbsp;Wireshark wird als Ethernet Header nur die Größe von 14 Byte angezeigt
* Hierzu kommt noch die 4 Byte große Frame Check Sequence am Ende des Frames.
* Hierzu kommt noch die 4 Byte große Frame Check Sequence am Ende des Frames
* Falls Virtual [[Local Area Network|VLANs]] verwendet werden, besteht der Header der Sicherungsschicht aus 18 Byte und der gesamte Ethernet Frame kann eine Größe von bis zu 1522 Byte annehmen.
* Falls Virtual [[Local Area Network|VLANs]] verwendet werden, besteht der Header der Sicherungsschicht aus 18 Byte und der gesamte Ethernet Frame kann eine Größe von bis zu 1522 Byte annehmen
* Würde IPv6 verwendet, änderte sich obige Berechnung dahingehend, dass der IPv6-Header der Vermittlungsschicht 40 statt 20 Byte beträgt und damit statt 1472 Byte ICMP-Nutzlast nur 1452 Byte möglich wären.
* Würde IPv6 verwendet, änderte sich obige Berechnung dahingehend, dass der IPv6-Header der Vermittlungsschicht 40 statt 20 Byte beträgt und damit statt 1472 Byte ICMP-Nutzlast nur 1452 Byte möglich wären


Oft ist es hilfreich dem ping-Programm vorzugeben das ''„don’t fragment (DF) bit“'' für die Testpakete im IPv4-Header zu setzen denn dann erhält man eine Nachricht, falls die MTU überschritten wird.
Oft ist es hilfreich dem ping-Programm vorzugeben das ''„don’t fragment (DF) bit“'' für die Testpakete im IPv4-Header zu setzen denn dann erhält man eine Nachricht, falls die MTU überschritten wird


'''Linux'''
'''Linux'''
Zeile 212: Zeile 213:
'''Windows'''
'''Windows'''
  ping -l 1472 -f 10.0.0.1
  ping -l 1472 -f 10.0.0.1
Leicht sichtbar machen lässt sich die ''Path MTU'' mit dem Programm ''tracepath'' für IPv4 bzw.&nbsp;''tracepath6'' für IPv6.
Leicht sichtbar machen lässt sich die ''Path MTU'' mit dem Programm ''tracepath'' für IPv4 bzw.&nbsp;''tracepath6'' für IPv6


=== Fehlerbehebung ===
=== Fehlerbehebung ===
Zeile 224: Zeile 225:
* Systemeinstellung öffnen, unter „Netzwerk“ den Netzwerkanschluss auswählen, auf den Reiter „Ethernet“ klicken, und unter MTU „eigene“ wählen und Wert eingeben
* Systemeinstellung öffnen, unter „Netzwerk“ den Netzwerkanschluss auswählen, auf den Reiter „Ethernet“ klicken, und unter MTU „eigene“ wählen und Wert eingeben
; Linux
; Linux
* <code>ifconfig eth0 mtu 1234</code> (1234 ist neuer Wert).
* <code>ifconfig eth0 mtu 1234</code> (1234 ist neuer Wert)
* Dies muss in einem der Startskripte angegeben werden, da es sonst immer wieder gesetzt werden muss
* Dies muss in einem der Startskripte angegeben werden, da es sonst immer wieder gesetzt werden muss


Zeile 244: Zeile 245:
=== Weblinks ===
=== Weblinks ===
# https://de.wikipedia.org/wiki/Maximum_Transmission_Unit
# https://de.wikipedia.org/wiki/Maximum_Transmission_Unit
# [http://www.dslreports.com/drtcp Dr. TCP], eine Software zum Einstellen der MTU unter Windows, ursprünglich für DSL-Nutzer geschrieben.
# [http://www.dslreports.com/drtcp Dr.&nbsp;TCP], eine Software zum Einstellen der MTU unter Windows, ursprünglich für DSL-Nutzer geschrieben
# [http://www.trullowitsch.de/index.php?id=tools MTU], eine weitere Software (Freeware) zum Einstellen der MTU unter Windows.
# [http://www.trullowitsch.de/index.php?id=tools MTU], eine weitere Software (Freeware) zum Einstellen der MTU unter Windows
# [http://www.firewall.cx/tcp-analysis-section-6.php Analysing TCP Header Options – Section 6] – Ausführliche Erklärung der MTU und MSS
# [http://www.firewall.cx/tcp-analysis-section-6.php Analysing TCP Header Options – Section 6] – Ausführliche Erklärung der MTU und MSS


Zeile 256: Zeile 257:
* gemessen in Oktetten
* gemessen in Oktetten
* welche ohne Fragmentierung in den Rahmen (engl. "Frames") eines Netzes der Sicherungsschicht (Schicht 2) übertragen werden kann
* welche ohne Fragmentierung in den Rahmen (engl. "Frames") eines Netzes der Sicherungsschicht (Schicht 2) übertragen werden kann
* Diese Paketgröße passt also in die Nutzlast (Payload) des Protokolls der Sicherungsschicht.
* Diese Paketgröße passt also in die Nutzlast (Payload) des Protokolls der Sicherungsschicht
* Die maximale Größe der Nutzlast der Sicherungsschicht wird auch oft als MTU der Sicherungsschicht (engl. 'link MTU') bezeichnet.
* Die maximale Größe der Nutzlast der Sicherungsschicht wird auch oft als MTU der Sicherungsschicht (engl. 'link MTU') bezeichnet


Die maximale Größe eines Rahmens der Sicherungsschicht lässt sich so berechnen:
Die maximale Größe eines Rahmens der Sicherungsschicht lässt sich so berechnen:
Zeile 263: Zeile 264:


; Hardware und Technik
; Hardware und Technik
* Die MTU wird durch Einstellungen im Rahmen der Möglichkeiten der verwendeten Hardware und Technik bestimmt.
* Die MTU wird durch Einstellungen im Rahmen der Möglichkeiten der verwendeten Hardware und Technik bestimmt
* Sie kann auf derselben Schnittstelle unterschiedliche Werte für unterschiedliche Protokolle der Vermittlungsschicht (z. B. IPv4 oder IPv6) annehmen.
* Sie kann auf derselben Schnittstelle unterschiedliche Werte für unterschiedliche Protokolle der Vermittlungsschicht (z.&nbsp;B.&nbsp;IPv4 oder IPv6) annehmen
* Alle an einem Schicht-2-Netz beteiligten Schnittstellen, welche Protokolle höherer Schichten verarbeiten, müssen auf denselben Wert für die jeweiligen Schicht-3-Protokolle eingestellt werden.
* Alle an einem Schicht-2-Netz beteiligten Schnittstellen, welche Protokolle höherer Schichten verarbeiten, müssen auf denselben Wert für die jeweiligen Schicht-3-Protokolle eingestellt werden


; Terminologie
; Terminologie
* Im OSI-Modell spricht man auf der Vermittlungsschicht von einem Paket (engl. 'packet'), während man auf der Sicherungsschicht von einem Rahmen (engl. 'frame') spricht.
* Im OSI-Modell spricht man auf der Vermittlungsschicht von einem Paket (engl. 'packet'), während man auf der Sicherungsschicht von einem Rahmen (engl. 'frame') spricht
* Die Terminologie, welche das OSI-Modell für die Einheiten auf den verschiedenen OSI-Modellschichten verwendet, hat zu einiger Verwirrung um den Begriff der MTU geführt
* Die Terminologie, welche das OSI-Modell für die Einheiten auf den verschiedenen OSI-Modellschichten verwendet, hat zu einiger Verwirrung um den Begriff der MTU geführt


; Paket- und Rahmengröße
; Paket- und Rahmengröße
* Unter der „packet size“ (Paketgröße) wird fälschlicherweise teils die „frame size“ (Rahmengröße) verstanden, jedoch stellt die obige Definition (siehe RFC 1122 und RFC 791) dies eindeutig klar.
* Unter der „packet size“ (Paketgröße) wird fälschlicherweise teils die „frame size“ (Rahmengröße) verstanden, jedoch stellt die obige Definition (siehe RFC 1122 und RFC 791) dies eindeutig klar
* Ein Spezialfall liegt vor, wenn ein Schicht-2-Protokoll über ein anderes Schicht-2-Protokoll getunnelt wird, denn dann nennt man auch die Nutzlast selbst "Rahmen" (engl. 'frame').
* Ein Spezialfall liegt vor, wenn ein Schicht-2-Protokoll über ein anderes Schicht-2-Protokoll getunnelt wird, denn dann nennt man auch die Nutzlast selbst "Rahmen" (engl. 'frame')


=== Typische MTU-Größen ===
=== Typische MTU-Größen ===
{| class="wikitable sortable options"  
{| class="wikitable sortable options"
|-  
|-
|| '''Medium'''
|| '''Medium'''
|| '''MTU in Bytes'''
|| '''MTU in Bytes'''
|-  
|-
|| Hyperchannel
|| Hyperchannel
|| 65535
|| 65535
|-  
|-
|| Token Ring(4)(802.5)
|| Token Ring(4)(802.5)
|| 4464
|| 4464
|-  
|-
|| Token Ring(16)
|| Token Ring(16)
|| 17914
|| 17914
|-  
|-
|| FDDI
|| FDDI
|| 4352
|| 4352
|-  
|-
|| Ethernet
|| Ethernet
|| 1500
|| 1500
|-  
|-
|| Gigabit Ethernet mit Jumboframes
|| Gigabit Ethernet mit Jumboframes
|| 9000
|| 9000
|-  
|-
|| PPPoE (z.&nbsp;B. DSL)
|| PPPoE (z.&nbsp;B.&nbsp;DSL)
|| ≤ 1492
|| ≤ 1492
|-  
|-
|| SLIP/PPP (low delay)
|| SLIP/PPP (low delay)
|| 296
|| 296
|-  
|-
|| X.25
|| X.25
|| 576
|| 576
|-  
|-
|| FibreChannel
|| FibreChannel
|| theoretisch unbegrenzt
|| theoretisch unbegrenzt
|-  
|-
|| ISDN
|| ISDN
|| 576
|| 576
|-  
|-
|| ATM
|| ATM
|| 4500
|| 4500
|-  
|-
|| 802.11
|| 802.11
|| 2312 (WiFi)
|| 2312 (WiFi)
Zeile 325: Zeile 326:
; Maximale Paketgröße, die entlang der gesamten Wegstrecke übertragen werden kann, ohne einer Fragmentierung zu unterliegen
; Maximale Paketgröße, die entlang der gesamten Wegstrecke übertragen werden kann, ohne einer Fragmentierung zu unterliegen
* Sie ist die kleinsten MTU aller Schicht-2-Teilstücke im Pfad
* Sie ist die kleinsten MTU aller Schicht-2-Teilstücke im Pfad
* Die PMTU kann automatisch durch PMTU Discovery (PMTUD) ermittelt werden.
* Die PMTU kann automatisch durch PMTU Discovery (PMTUD) ermittelt werden


; Beispiel Brief
; Beispiel Brief
* Das Konzept der MTU auf die Post adaptiert ist verständlicher.
* Das Konzept der MTU auf die Post adaptiert ist verständlicher
* Eine MTU 50 g heißt, dass man max. 50 g Inhalt (entspricht der Packet Size) in den Brief einpacken kann.
* Eine MTU 50 g heißt, dass man max. 50 g Inhalt (entspricht der Packet Size) in den Brief einpacken kann
* Der Brief insgesamt kann selbst aber schwerer als 50 g sein, da im Normalfall noch ein Briefumschlag z.B. 4 g und eine Briefmarke 0,3 g hinzukommt.
* Der Brief insgesamt kann selbst aber schwerer als 50 g sein, da im Normalfall noch ein Briefumschlag z.B. 4 g und eine Briefmarke 0,3 g hinzukommt
* Bezahlt und verschickt wird der ganze Brief von 54,3 g Masse entsprechend der Frame Size.
* Bezahlt und verschickt wird der ganze Brief von 54,3 g Masse entsprechend der Frame Size


=== Beispiel Ethernet ===
=== Beispiel Ethernet ===
; Ethernetrahmen bestehen aus zwei Teilen
; Ethernetrahmen bestehen aus zwei Teilen
* dem „Header“, in dem Quell- und Zieladressen und andere wichtige Parameter für den Versand kodiert sind, und der Nutzlast, deren Größe durch die MTU bestimmt ist.
* dem „Header“, in dem Quell- und Zieladressen und andere wichtige Parameter für den Versand kodiert sind, und der Nutzlast, deren Größe durch die MTU bestimmt ist
* In diesem Versuch ist die Größe der MTU mit 1500 Byte vorgegeben.
* In diesem Versuch ist die Größe der MTU mit 1500 Byte vorgegeben
* Mit Hilfe des ping-Programmes wird ein „Frame“ erzeugt, der dann im Netzwerk über das Ethernet-Protokoll versendet wird.
* Mit Hilfe des ping-Programmes wird ein „Frame“ erzeugt, der dann im Netzwerk über das Ethernet-Protokoll versendet wird
* Die Verwendung des Begriffes Nutzlast ist hier mehrdeutig, da im OSI-Modell die verschiedenen Protokolle ineinander eingepackt (gekapselt) werden.
* Die Verwendung des Begriffes Nutzlast ist hier mehrdeutig, da im OSI-Modell die verschiedenen Protokolle ineinander eingepackt (gekapselt) werden


  ping -s 1472 10.0.0.1 (Windows-Befehl ping -l 1472 10.0.0.1)
  ping -s 1472 10.0.0.1 (Windows-Befehl ping -l 1472 10.0.0.1)
* sendet ein ICMP-Paket mit der Nutzlast von 1472 Bytes an die IP-Adresse 10.0.0.1.
* sendet ein ICMP-Paket mit der Nutzlast von 1472 Bytes an die IP-Adresse 10.0.0.1


  ping -f -l 1472 10.0.0.1
  ping -f -l 1472 10.0.0.1
Zeile 355: Zeile 356:


; Mit einem Sniffer (wie [[Wireshark]])
; Mit einem Sniffer (wie [[Wireshark]])
* wird als Ethernet Header nur die Größe von 14 Byte angezeigt.
* wird als Ethernet Header nur die Größe von 14 Byte angezeigt
* Hierzu kommt noch die 4 Byte große Frame Check Sequence am Ende des Frames.
* Hierzu kommt noch die 4 Byte große Frame Check Sequence am Ende des Frames


; Falls VLANs verwendet werden
; Falls VLANs verwendet werden
Zeile 363: Zeile 364:


; Würde IPv6 verwendet
; Würde IPv6 verwendet
* änderte sich obige Berechnung dahingehend, dass der IPv6-Header der Vermittlungsschicht 40 statt 20 Byte beträgt und damit statt 1472 Byte ICMP-Nutzlast nur 1452 Byte möglich wären.
* änderte sich obige Berechnung dahingehend, dass der IPv6-Header der Vermittlungsschicht 40 statt 20 Byte beträgt und damit statt 1472 Byte ICMP-Nutzlast nur 1452 Byte möglich wären
* Oft ist es hilfreich dem ping-Programm vorzugeben das „don’t fragment (DF) bit“ für die Testpakete im IPv4-Header zu setzen,
* Oft ist es hilfreich dem ping-Programm vorzugeben das „don’t fragment (DF) bit“ für die Testpakete im IPv4-Header zu setzen


für Linux z. B.
für Linux z.&nbsp;B&nbsp; ping -M do -s 1472 10.0.0.1
ping -M do -s 1472 10.0.0.1


für Windows
für Windows
  ping -l 1472 -f 10.0.0.1
  ping -l 1472 -f 10.0.0.1
* denn dann erhält man eine Nachricht, falls die MTU überschritten wird.
* denn dann erhält man eine Nachricht, falls die MTU überschritten wird
* Leicht sichtbar machen lässt sich die Path MTU mit dem Programm tracepath für IPv4 bzw. tracepath6 für IPv6.
* Leicht sichtbar machen lässt sich die Path MTU mit dem Programm tracepath für IPv4 bzw.&nbsp;tracepath6 für IPv6


=== Jumbo Frames für Gigabit Ethernet ===
=== Jumbo Frames für Gigabit Ethernet ===
Zeile 379: Zeile 379:


; Positiv
; Positiv
* wiegt, dass der Protokoll-Overhead bei der Verwendung von Jumbo Frames reduziert werden kann und Router weniger Pakete behandeln müssen.
* wiegt, dass der Protokoll-Overhead bei der Verwendung von Jumbo Frames reduziert werden kann und Router weniger Pakete behandeln müssen


; Allerdings
; Allerdings
* ist die Terminologie bzgl. MTU derart uneinheitlich unter den Herstellern, dass es in der Praxis schwierig ist, von den Standardeinstellungen abzuweichen.
* ist die Terminologie bzgl.&nbsp;MTU derart uneinheitlich unter den Herstellern, dass es in der Praxis schwierig ist, von den Standardeinstellungen abzuweichen


; Jumbo Frames sind nicht im IEEE-802.3-Standard spezifiziert
; Jumbo Frames sind nicht im IEEE-802.3-Standard spezifiziert
* trotzdem unterstützen die meisten Hersteller von Gigabit Ethernet Switches und Routern MTUs bis 9000 Oktette.
* trotzdem unterstützen die meisten Hersteller von Gigabit Ethernet Switches und Routern MTUs bis 9000 Oktette


; Quasistandard eine Path MTU um ca. 1500 Byte
; Quasistandard eine Path MTU um ca. 1500 Byte
* So hat sich als Quasistandard eine Path MTU um ca. 1500 Byte im Internet eingebürgert, die durch das weit verbreitete Fast Ethernet sowieso meist nicht überschritten werden kann.
* So hat sich als Quasistandard eine Path MTU um ca. 1500 Byte im Internet eingebürgert, die durch das weit verbreitete Fast Ethernet sowieso meist nicht überschritten werden kann


; Tunnelprotokolle
; Tunnelprotokolle
* Mit dem Aufkommen von Internetzugängen, die auf Tunnelprotokollen basieren, zum Beispiel beim Verbindungsaufbau über das PPPoE-Protokoll hat die MTU an Bedeutung gewonnen.
* Mit dem Aufkommen von Internetzugängen, die auf Tunnelprotokollen basieren, zum Beispiel beim Verbindungsaufbau über das PPPoE-Protokoll hat die MTU an Bedeutung gewonnen
* Obwohl die PMTUD in diesem Fall dafür sorgen soll, dass die Kommunikation trotz der durch den Tunnel abgesenkten MTU möglich ist, gibt es immer wieder fehlkonfigurierte Firewalls, die durch Verwerfen von ICMP-Steuerpaketen die PMTUD stören.
* Obwohl die PMTUD in diesem Fall dafür sorgen soll, dass die Kommunikation trotz der durch den Tunnel abgesenkten MTU möglich ist, gibt es immer wieder fehlkonfigurierte Firewalls, die durch Verwerfen von ICMP-Steuerpaketen die PMTUD stören
* Auch große Websites sind oft von diesem Konfigurationsfehler betroffen, sodass die Nutzer von getunnelten Zugängen die MTU ihrer Geräte verkleinern müssen, um auch mit diesen Sites kommunizieren zu können.
* Auch große Websites sind oft von diesem Konfigurationsfehler betroffen, sodass die Nutzer von getunnelten Zugängen die MTU ihrer Geräte verkleinern müssen, um auch mit diesen Sites kommunizieren zu können


=== Optimale MTU ===
=== Optimale MTU ===
Zeile 401: Zeile 401:


; Komplexe Optimierung
; Komplexe Optimierung
* so viel kleiner als o. g. Maximum, dass der Verschnitt der Transportzellen der unter der DSL-Schicht liegenden ATM-Transportschicht möglichst klein wird.
* so viel kleiner als o.&nbsp;g.&nbsp;Maximum, dass der Verschnitt der Transportzellen der unter der DSL-Schicht liegenden ATM-Transportschicht möglichst klein wird


; Oder: Einfach probieren
; Oder: Einfach probieren
* Die MTU bei ATM (4500) ist nicht zu verwechseln mit der Zellengröße (53 Bytes, 48 davon Nutzlast).
* Die MTU bei ATM (4500) ist nicht zu verwechseln mit der Zellengröße (53 Bytes, 48 davon Nutzlast)
* Bei der Übertragung über einen ATM-Link werden IP-Pakete in Stücke zu je 48 Bytes zerlegt und für die Übertragung auf mehrere ATM-Zellen verteilt.
* Bei der Übertragung über einen ATM-Link werden IP-Pakete in Stücke zu je 48 Bytes zerlegt und für die Übertragung auf mehrere ATM-Zellen verteilt
* Der Router am anderen Ende des ATM-Links sammelt diese Zellen und setzt das ursprüngliche IP-Paket wieder zusammen.
* Der Router am anderen Ende des ATM-Links sammelt diese Zellen und setzt das ursprüngliche IP-Paket wieder zusammen
* Im Gegensatz dazu wird bei der IP-Fragmentierung das Paket nicht vom Router reassembliert, sondern erst von dem Host, für den das Paket bestimmt war.
* Im Gegensatz dazu wird bei der IP-Fragmentierung das Paket nicht vom Router reassembliert, sondern erst von dem Host, für den das Paket bestimmt war
* Probleme, die durch einen falschen MTU-Wert auftreten können, sind Webseiten, die gar nicht oder nur teilweise angezeigt werden.
* Probleme, die durch einen falschen MTU-Wert auftreten können, sind Webseiten, die gar nicht oder nur teilweise angezeigt werden


=== Paketgrößen ===
=== Paketgrößen ===
; MTU und PMTU
; MTU und PMTU
* Die Maximum Transmission Unit (MTU) darf in einem IPv6-Netzwerk 1280 Byte nicht unterschreiten.
* Die Maximum Transmission Unit (MTU) darf in einem IPv6-Netzwerk 1280 Byte nicht unterschreiten
* Somit unterschreitet auch die Path MTU (PMTU) diesen Wert nicht und es können Pakete bis zu dieser Größe garantiert ohne Fragmentierung übertragen werden.
* Somit unterschreitet auch die Path MTU (PMTU) diesen Wert nicht und es können Pakete bis zu dieser Größe garantiert ohne Fragmentierung übertragen werden
* Minimale IPv6-Implementierungen verlassen sich auf diesen Fall.
* Minimale IPv6-Implementierungen verlassen sich auf diesen Fall
* Ein IPv6-fähiger Rechner muss in der Lage sein, aus Fragmenten wieder zusammengesetzte Pakete mit einer Größe von mindestens 1500 Byte zu empfangen.
* Ein IPv6-fähiger Rechner muss in der Lage sein, aus Fragmenten wieder zusammengesetzte Pakete mit einer Größe von mindestens 1500 Byte zu empfangen
* Für IPv4 beträgt dieser Wert nur 576 Byte.
* Für IPv4 beträgt dieser Wert nur 576 Byte
* Im anderen Extrem darf ein IPv6-Paket auch fragmentiert laut Payload-Length-Feld im IPv6-Header die Größe von 65.575 Byte einschließlich Kopfdaten nicht überschreiten, da dieses Feld 16 Bit lang ist (216 − 1 Byte zzgl. 40 Byte Kopfdaten).
* Im anderen Extrem darf ein IPv6-Paket auch fragmentiert laut Payload-Length-Feld im IPv6-Header die Größe von 65.575 Byte einschließlich Kopfdaten nicht überschreiten, da dieses Feld 16 Bit lang ist (216 − 1 Byte zzgl. 40 Byte Kopfdaten)


; Jumbograms
; Jumbograms
* RFC 2675 stellt aber über eine Option des Hop-by-Hop Extension Headers die Möglichkeit zur Verfügung, Pakete mit Größen bis zu 4.294.967.335 Byte, sogenannte Jumbograms zu erzeugen.
* RFC 2675 stellt aber über eine Option des Hop-by-Hop Extension Headers die Möglichkeit zur Verfügung, Pakete mit Größen bis zu 4.294.967.335 Byte, sogenannte Jumbograms zu erzeugen
* Dies erfordert allerdings Anpassungen in Protokollen höherer Schichten, wie z. B. TCP oder UDP, da diese oft auch nur 16 Bit für Größenfelder definieren, außerdem muss bei jedem Paket, welches einen Jumbogram beinhaltet, im IPv6-Header die Payload-Length auf 0 gesetzt werden.
* Dies erfordert allerdings Anpassungen in Protokollen höherer Schichten, wie z.&nbsp;B.&nbsp;TCP oder UDP, da diese oft auch nur 16 Bit für Größenfelder definieren, außerdem muss bei jedem Paket, welches einen Jumbogram beinhaltet, im IPv6-Header die Payload-Length auf 0 gesetzt werden


=== Format des Fragment Headers ===
=== Format des Fragment Headers ===

Version vom 8. Januar 2024, 16:59 Uhr

Maximum Transmission Unit (MTU) - Maximale Datagramm-Größe (OSI-Schicht 3), das ohne Zerlegung in einen Frame auf OSI-Schicht 2 passt

Beschreibung

MTU (Maximum Transmission Unit) beschreibt die maximale Paketgröße eines Protokolls der Vermittlungsschicht (Schicht 3) des OSI-Modells in Byte, die ohne Zerlegung in den Rahmen (engl. „Frame“) eines Netzes der Sicherungsschicht (Schicht 2) passt

  • Das Paket passt in die Nutzlast (Payload) des Protokolls der Sicherungsschicht
  • Die maximale Größe der Nutzlast der Sicherungsschicht wird auch oft als MTU der Sicherungsschicht (engl. 'link MTU') bezeichnet

Die Maximum Transmission Unit (MTU; deutsch maximale Übertragungseinheit) beschreibt die maximale Paketgröße eines Protokolls der Vermittlungsschicht (Schicht 3) des OSI-Modells, gemessen in Oktetten (Bytes), welche ohne Fragmentierung in den Rahmen (engl. „Frame“) eines Netzes der Sicherungsschicht (Schicht 2) übertragen werden kann

  • Diese Paketgröße passt also in die Nutzlast (Payload) des Protokolls der Sicherungsschicht
  • Die maximale Größe der Nutzlast der Sicherungsschicht wird auch oft als MTU der Sicherungsschicht (engl. 'link MTU') bezeichnet
  • Die maximale Größe eines Rahmens der Sicherungsschicht lässt sich so berechnen:
Maximale Rahmengröße = Größte MTU aller benutzten Protokolle der Vermittlungsschicht + Größe der Sicherungsschichtheader

Die MTU wird durch Einstellungen im Rahmen der Möglichkeiten der verwendeten Hardware und Technik bestimmt

  • Sie kann auf derselben Schnittstelle unterschiedliche Werte für unterschiedliche Protokolle der Vermittlungsschicht (z. B. IPv4 oder IPv6) annehmen
  • Alle an einem Schicht-2-Netz beteiligten Schnittstellen, welche Protokolle höherer Schichten verarbeiten, müssen auf denselben Wert für die jeweiligen Schicht-3-Protokolle eingestellt werden

Im OSI-Modell spricht man auf der Vermittlungsschicht von einem Paket (engl. 'packet'), während man auf der Sicherungsschicht von einem Rahmen (engl. 'frame') spricht

  • Die Terminologie, welche das OSI-Modell für die Einheiten auf den verschiedenen OSI-Modellschichten verwendet, hat zu einiger Verwirrung um den Begriff der MTU geführt (siehe abweichende Verwendung bei wichtigen Herstellern)
  • Unter der „packet size“ (Paketgröße) wird fälschlicherweise teils die „frame size“ (Rahmengröße) verstanden, jedoch stellt die obige Definition (siehe RFC 1122 und RFC 791) dies eindeutig klar

Ein Spezialfall liegt vor, wenn ein Schicht-2-Protokoll über ein anderes Schicht-2-Protokoll getunnelt wird, denn dann nennt man auch die Nutzlast selbst „Rahmen“ (engl. 'frame')

Typische MTU-Größen
Medium MTU in Bytes
Hyperchannel 65535
Token Ring(4)(802.5) 4464
Token Ring(16) 17914
FDDI 4352
Ethernet 1500
Gigabit Ethernet
mit Jumboframes
9000
PPPoE (z. B. DSL) ≤ 1492
SLIP/PPP (low delay) 296
X.25 576
FibreChannel theoretisch unbegrenzt
ISDN 576
DQDB
HIPPI
ATM 4500, s. u
ARCNET
802.11 2312 (WiFi)

Die Path MTU (PMTU) beschreibt die maximale Paketgröße, die entlang der gesamten Wegstrecke übertragen werden kann, ohne einer Fragmentierung zu unterliegen

  • Sie ist damit gleich der kleinsten MTU aller Schicht-2-Teilstücke im Pfad
  • Die PMTU kann automatisch durch PMTU Discovery (PMTUD) ermittelt werden

Beispiel Brief

Das Konzept der MTU kann auf den Briefverkehr adaptiert werden

  • Ein Kompaktbrief darf maximal 50 g wiegen
  • Zum Transport benötigt der Brief einen Briefumschlag z. B. 4 g und eine Briefmarke 0,3 g
  • Diese 4,3 g entsprechen der Größe der Sicherungsschichtheader
  • Daraus ergibt sich, dass die MTU (der maximale Inhalt für einen Kompaktbrief oder Packet Size) 50 g – 4,3 g = 45,7 g beträgt

Will man mehr Gewicht verschicken, muss man auf ein anderes Protokoll (einen Großbrief mit mehr Porto) ausweichen oder den Inhalt auf mehrere Briefe aufteilen, also fragmentieren

Beispiel Ethernet

Ein Ethernet Frame besteht aus zwei Teilen: dem „Header“, in dem Quell- und Zieladressen und andere wichtige Parameter für den Versand kodiert sind, und der Nutzlast, deren Größe durch die MTU bestimmt ist

In diesem Versuch ist die Größe der MTU mit 1500 Byte vorgegeben

  • Mit Hilfe des ping-Programmes wird ein „Frame“ erzeugt, der dann im Netzwerk über das Ethernet-Protokoll versendet wird
  • Die Verwendung des Begriffes Nutzlast ist hier mehrdeutig, da im OSI-Modell die verschiedenen Protokolle ineinander eingepackt (gekapselt) werden
  • Der im Versuch verwendete Linux-Befehl ping -s 1472 10.0.0.1 (Windows-Befehl ping -l 1472 10.0.0.1) sendet dann ein ICMP-Paket mit der Nutzlast von 1472 Bytes an die IP-Adresse 10.0.0.1
# ping -f -s 1472 10.0.0.1
1472 bytes Nutzlast des ICMP-Protokolles (Vermittlungsschicht)
+ 8 bytes ICMP-Header (Vermittlungsschicht)
+ 20 bytes IPv4-Header (Vermittlungsschicht)
-------------
= 1500 bytes (Nutzlast von Ethernet)
+ 14 bytes (Header der Sicherungsschicht)
+ 4 bytes (Frame Check Sequence)
-------------
= 1518 bytes (kompletter Ethernet Frame)

Mit einem Sniffer wie z. B. Wireshark wird als Ethernet Header nur die Größe von 14 Byte angezeigt

  • Hierzu kommt noch die 4 Byte große Frame Check Sequence am Ende des Frames
  • Falls VLANs verwendet werden, besteht der Header der Sicherungsschicht aus 18 Byte und der gesamte Ethernet Frame kann eine Größe von bis zu 1522 Byte annehmen
  • Würde IPv6 verwendet, änderte sich obige Berechnung dahingehend, dass der IPv6-Header der Vermittlungsschicht 40 statt 20 Byte beträgt und damit statt 1472 Byte ICMP-Nutzlast nur 1452 Byte möglich wären

Zum Prüfen der MTU eines Pfades ist es hilfreich, dem ping-Programm vorzugeben, das „don’t fragment (DF) bit“ für die Testpakete im IPv4-Header zu setzen (für Linux z. B. ping -M do -s 1472 10.0.0.1, für Windows: ping -l 1472 -f 10.0.0.1 ), denn dann erhält man eine Nachricht, falls die MTU überschritten wird

  • Leicht sichtbar machen lässt sich die Path MTU mit dem Programm tracepath für IPv4 bzw. tracepath6 für IPv6

Einfluss auf andere Protokolle

Die MTU ist ein hardwareabhängiger Wert, der sämtliche Parameter oberhalb der Sicherungsschicht des OSI-Modells beeinflusst

  • Am Beispiel Ethernet ist dies einfach erklärt: In diesem Netzwerk werden sämtliche Pakete der Schicht 3, beispielsweise IP-Pakete, in „Ethernet-Frames“ übertragen
  • Die Nutzdaten dieses Ethernet-Frames (d. h. die IP-Pakete) dürfen den MTU-Wert nicht übersteigen
  • Die Länge der TCP-Nutzdaten (Maximum Segment Size) wird daher aus der MTU direkt berechnet

Andere Beispiele und Probleme

Jumbo Frames für Gigabit Ethernet können deutlich mehr als 1518 Oktette beinhalten und damit ist es möglich, größere Pakete unfragmentiert zu übertragen

  • Positiv wiegt, dass der Protokoll-Overhead bei der Verwendung von Jumbo Frames reduziert werden kann und Router weniger Pakete behandeln müssen
  • Allerdings ist die Terminologie bzgl. MTU derart uneinheitlich unter den Herstellern, dass es in der Praxis schwierig ist, von den Standardeinstellungen abzuweichen
  • Des Weiteren sind Jumbo Frames nicht im IEEE-802.3-Standard spezifiziert, trotzdem unterstützen die meisten Hersteller von Gigabit Ethernet Switches und Routern MTUs bis 9000 Oktette
  • So hat sich als Quasistandard eine Path MTU um ca. 1500 Byte im Internet eingebürgert, die durch das weit verbreitete Ethernet sowieso meist nicht überschritten werden kann

Mit dem Aufkommen von Internetzugängen, die auf Tunnelprotokollen basieren, zum Beispiel beim Verbindungsaufbau über das PPPoE-Protokoll hat die MTU an Bedeutung gewonnen

  • Obwohl die PMTUD in diesem Fall dafür sorgen soll, dass die Kommunikation trotz der durch den Tunnel abgesenkten MTU möglich ist, gibt es immer wieder fehlkonfigurierte Firewalls, die durch Verwerfen von ICMP-Steuerpaketen die PMTUD stören
  • Auch große Websites sind oft von diesem Konfigurationsfehler betroffen, sodass die Nutzer von getunnelten Zugängen die MTU ihrer Geräte verkleinern müssen, um auch mit diesen Sites kommunizieren zu können
Optimale MTU

Über die optimale MTU gibt es viele Diskussionen:

  • Einfache Optimierung
so groß wie möglich, ohne dass Probleme auftreten
  • Komplexe Optimierung
so viel kleiner als o. g.Maximum, dass der Verschnitt der Transportzellen der unter der DSL-Schicht liegenden ATM-Transportschicht möglichst klein wird

Die MTU bei ATM (4500) ist nicht zu verwechseln mit der Zellengröße (53 Bytes, 48 davon Nutzlast)

  • Bei der Übertragung über einen ATM-Link werden IP-Pakete in Stücke zu je 48 Bytes zerlegt und für die Übertragung auf mehrere ATM-Zellen verteilt
  • Der Router am anderen Ende des ATM-Links sammelt diese Zellen und setzt das ursprüngliche IP-Paket wieder zusammen
  • Im Gegensatz dazu wird bei der IP-Fragmentierung das Paket nicht vom Router reassembliert, sondern erst von dem Host, für den das Paket bestimmt war

Probleme, die durch einen falschen MTU-Wert auftreten können, sind Webseiten, die gar nicht oder nur teilweise angezeigt werden.[1]

Abweichende Verwendung des Begriffs

Cisco und Juniper verwenden den Begriff MTU in ihrer Konfigurationssyntax als maximale Rahmen- bzw. Paketgröße der zu konfigurierenden Netzwerkschicht

Folgende Einstellungen entsprechen einander

  • Bei beiden Herstellern bedeutet das erste Auftauchen des Begriffes die maximale Ethernet Rahmengröße und nicht die maximale Größe der Nutzlast (Maximum Segment Size)
  • diese muss folglich einige Byte größer gewählt werden als die dann folgenden Einstellungen für die verschiedenen Schicht-3 Protokolle

Cisco:

interface GigabitEthernet2/3
mtu 9192
ip address 192.168.0.1 255.255.255.252
ip mtu 9000
ipv6 address 2001:DB8::1/64
ipv6 mtu 8000
ipv6 router isis
clns mtu 1497
!

Juniper:

interfaces {
ge-0/0/0 {
mtu 9192;
unit 0 {
family inet {
mtu 9000;
address 192.168.0.2/30;
}
family inet6 {
mtu 8000;
address 2001:DB8::2/64;
}
family iso {
mtu 1497;
}
}
}
}

Anwendungen

Berechnung

Maximale Größe eines Rahmens der Sicherungsschicht

Maximale Rahmengröße = Größte MTU aller benutzten Protokolle der Vermittlungsschicht + Größe der Sicherungsschichtheader

Ermittlung der MTU-Größe

  • Zu diesem Zweck können Sie 'ping' verwenden, um ein Paket der erforderlichen Größe mit gesetztem Bit "Nicht fragmentieren" zu senden
  • Es ist auch eine gute Idee, eine Paketanzahl von eins zu verwenden, da es nicht sinnvoll ist, mehr Netzwerkverkehr zu senden als Sie brauchen
Hinweis
  • Die beim Befehl ping angegebene Größe entspricht der Anzahl der zu sendenden Datenbytes
  • Diese muss also 28 Byte kleiner sein als die tatsächliche Paketgröße, um die Größe des Paket-Headers zu berücksichtigen

Beispiel Ethernet

  • Ein Ethernet Frame besteht aus zwei Teilen: dem „Header“, in dem Quell- und Zieladressen und andere wichtige Parameter für den Versand kodiert sind, und der Nutzlast, deren Größe durch die MTU bestimmt ist
  • In diesem Versuch ist die Größe der MTU mit 1500 Byte vorgegeben.
  • Mithilfe des ping-Programmes wird ein „Frame“ erzeugt, der dann im Netzwerk über das Ethernet-Protokoll versendet wird
  • Die Verwendung des Begriffes Nutzlast ist hier mehrdeutig, da im OSI-Modell die verschiedenen Protokolle ineinander eingepackt (gekapselt) werden
  • Der im Versuch verwendete Linux-Befehl ping -s 1472 10.0.0.1 (Windows-Befehl ping -l 1472 10.0.0.1) sendet dann ein Internet Control Message Protocol|ICM-Paket mit der Nutzlast von 1472 Bytes an die IP-Adresse 10.0.0.1
ping -f -l 1472 10.0.0.1
1472 bytes Nutzlast des ICMP-Protokolles (Transportschicht)
+ 8 bytes ICMP-Header (Transportschicht)
+ 20 bytes IPv4-Header (der Vermittlungsschicht)
-------------
= 1500 bytes (Nutzlast von Ethernet)
+ 14 bytes (Header der Sicherungsschicht)
+ 4 bytes (Frame Check Sequence)
-------------
= 1518 bytes (kompletter Ethernet Frame)
  • Mit einem Sniffer wie z. B. Wireshark wird als Ethernet Header nur die Größe von 14 Byte angezeigt
  • Hierzu kommt noch die 4 Byte große Frame Check Sequence am Ende des Frames
  • Falls Virtual VLANs verwendet werden, besteht der Header der Sicherungsschicht aus 18 Byte und der gesamte Ethernet Frame kann eine Größe von bis zu 1522 Byte annehmen
  • Würde IPv6 verwendet, änderte sich obige Berechnung dahingehend, dass der IPv6-Header der Vermittlungsschicht 40 statt 20 Byte beträgt und damit statt 1472 Byte ICMP-Nutzlast nur 1452 Byte möglich wären

Oft ist es hilfreich dem ping-Programm vorzugeben das „don’t fragment (DF) bit“ für die Testpakete im IPv4-Header zu setzen denn dann erhält man eine Nachricht, falls die MTU überschritten wird

Linux

ping -M do -s 1472 10.0.0.1

Windows

ping -l 1472 -f 10.0.0.1

Leicht sichtbar machen lässt sich die Path MTU mit dem Programm tracepath für IPv4 bzw. tracepath6 für IPv6

Fehlerbehebung

Probleme durch falsche MTU-Größe können sehr subtil sein
  • Es ist möglich einem Webserver zu erreichen, die Dateiübertragung schlägt jedoch fehl
  • Verbindung zu einem Chat-Server funktioniert, aber die Informationen darüber, wer online ist, sind unvollständig

Konfiguration

Der MTU-Wert kann wie folgt gesetzt werden

Mac OS X
  • Systemeinstellung öffnen, unter „Netzwerk“ den Netzwerkanschluss auswählen, auf den Reiter „Ethernet“ klicken, und unter MTU „eigene“ wählen und Wert eingeben
Linux
  • ifconfig eth0 mtu 1234 (1234 ist neuer Wert)
  • Dies muss in einem der Startskripte angegeben werden, da es sonst immer wieder gesetzt werden muss
Windows
  • Über die Netzwerkeigenschaften bzw. Systemsteuerung
  • mit Programmen wie z. B. dem Freeware-Programm DrTcp oder tcp optimizer, um den Wert dauerhaft zu setzen

Dateien

Sicherheit

RFC

  1. RFC 791 – INTERNET PROTOCOL
  2. RFC 879 – The TCP Maximum Segment Size and Related Topics
  3. RFC 1191 – Path MTU Discovery
  4. RFC 1981 – Path MTU Discovery for IP version 6
  5. RFC 2923 – TCP Problems with Path MTU Discovery

Siehe auch

Weblinks

  1. https://de.wikipedia.org/wiki/Maximum_Transmission_Unit
  2. Dr. TCP, eine Software zum Einstellen der MTU unter Windows, ursprünglich für DSL-Nutzer geschrieben
  3. MTU, eine weitere Software (Freeware) zum Einstellen der MTU unter Windows
  4. Analysing TCP Header Options – Section 6 – Ausführliche Erklärung der MTU und MSS

TMP

Maximum Transmission Unit (MTU)

Maximale Paketgröße eines Protokolls der Vermittlungsschicht
  • Schicht 3 des OSI-Modells
  • gemessen in Oktetten
  • welche ohne Fragmentierung in den Rahmen (engl. "Frames") eines Netzes der Sicherungsschicht (Schicht 2) übertragen werden kann
  • Diese Paketgröße passt also in die Nutzlast (Payload) des Protokolls der Sicherungsschicht
  • Die maximale Größe der Nutzlast der Sicherungsschicht wird auch oft als MTU der Sicherungsschicht (engl. 'link MTU') bezeichnet

Die maximale Größe eines Rahmens der Sicherungsschicht lässt sich so berechnen: Maximale Rahmengröße = Größte MTU aller benutzten Protokolle der Vermittlungsschicht + Größe der Sicherungsschicht-Header

Hardware und Technik
  • Die MTU wird durch Einstellungen im Rahmen der Möglichkeiten der verwendeten Hardware und Technik bestimmt
  • Sie kann auf derselben Schnittstelle unterschiedliche Werte für unterschiedliche Protokolle der Vermittlungsschicht (z. B. IPv4 oder IPv6) annehmen
  • Alle an einem Schicht-2-Netz beteiligten Schnittstellen, welche Protokolle höherer Schichten verarbeiten, müssen auf denselben Wert für die jeweiligen Schicht-3-Protokolle eingestellt werden
Terminologie
  • Im OSI-Modell spricht man auf der Vermittlungsschicht von einem Paket (engl. 'packet'), während man auf der Sicherungsschicht von einem Rahmen (engl. 'frame') spricht
  • Die Terminologie, welche das OSI-Modell für die Einheiten auf den verschiedenen OSI-Modellschichten verwendet, hat zu einiger Verwirrung um den Begriff der MTU geführt
Paket- und Rahmengröße
  • Unter der „packet size“ (Paketgröße) wird fälschlicherweise teils die „frame size“ (Rahmengröße) verstanden, jedoch stellt die obige Definition (siehe RFC 1122 und RFC 791) dies eindeutig klar
  • Ein Spezialfall liegt vor, wenn ein Schicht-2-Protokoll über ein anderes Schicht-2-Protokoll getunnelt wird, denn dann nennt man auch die Nutzlast selbst "Rahmen" (engl. 'frame')

Typische MTU-Größen

Medium MTU in Bytes
Hyperchannel 65535
Token Ring(4)(802.5) 4464
Token Ring(16) 17914
FDDI 4352
Ethernet 1500
Gigabit Ethernet mit Jumboframes 9000
PPPoE (z. B. DSL) ≤ 1492
SLIP/PPP (low delay) 296
X.25 576
FibreChannel theoretisch unbegrenzt
ISDN 576
ATM 4500
802.11 2312 (WiFi)

Path MTU (PMTU)

Maximale Paketgröße, die entlang der gesamten Wegstrecke übertragen werden kann, ohne einer Fragmentierung zu unterliegen
  • Sie ist die kleinsten MTU aller Schicht-2-Teilstücke im Pfad
  • Die PMTU kann automatisch durch PMTU Discovery (PMTUD) ermittelt werden
Beispiel Brief
  • Das Konzept der MTU auf die Post adaptiert ist verständlicher
  • Eine MTU 50 g heißt, dass man max. 50 g Inhalt (entspricht der Packet Size) in den Brief einpacken kann
  • Der Brief insgesamt kann selbst aber schwerer als 50 g sein, da im Normalfall noch ein Briefumschlag z.B. 4 g und eine Briefmarke 0,3 g hinzukommt
  • Bezahlt und verschickt wird der ganze Brief von 54,3 g Masse entsprechend der Frame Size

Beispiel Ethernet

Ethernetrahmen bestehen aus zwei Teilen
  • dem „Header“, in dem Quell- und Zieladressen und andere wichtige Parameter für den Versand kodiert sind, und der Nutzlast, deren Größe durch die MTU bestimmt ist
  • In diesem Versuch ist die Größe der MTU mit 1500 Byte vorgegeben
  • Mit Hilfe des ping-Programmes wird ein „Frame“ erzeugt, der dann im Netzwerk über das Ethernet-Protokoll versendet wird
  • Die Verwendung des Begriffes Nutzlast ist hier mehrdeutig, da im OSI-Modell die verschiedenen Protokolle ineinander eingepackt (gekapselt) werden
ping -s 1472 10.0.0.1 (Windows-Befehl ping -l 1472 10.0.0.1)
  • sendet ein ICMP-Paket mit der Nutzlast von 1472 Bytes an die IP-Adresse 10.0.0.1
ping -f -l 1472 10.0.0.1
1472 bytes Nutzlast des ICMP-Protokolles (Transportschicht)
+ 8 bytes ICMP-Header (Transportschicht)
+ 20 bytes IPv4-Header (der Vermittlungsschicht)
-------------
= 1500 bytes (Nutzlast von Ethernet)
+ 14 bytes (Header der Sicherungsschicht)
+ 4 bytes (Frame Check Sequence)
-------------
= 1518 bytes (kompletter Ethernetrahmen)
Mit einem Sniffer (wie Wireshark)
  • wird als Ethernet Header nur die Größe von 14 Byte angezeigt
  • Hierzu kommt noch die 4 Byte große Frame Check Sequence am Ende des Frames
Falls VLANs verwendet werden
  • besteht der Header der Sicherungsschicht aus 18 Byte
  • der gesamte Ethernetrahmen kann eine Größe von bis zu 1522 Byte annehmen
Würde IPv6 verwendet
  • änderte sich obige Berechnung dahingehend, dass der IPv6-Header der Vermittlungsschicht 40 statt 20 Byte beträgt und damit statt 1472 Byte ICMP-Nutzlast nur 1452 Byte möglich wären
  • Oft ist es hilfreich dem ping-Programm vorzugeben das „don’t fragment (DF) bit“ für die Testpakete im IPv4-Header zu setzen

für Linux z. B  ping -M do -s 1472 10.0.0.1

für Windows

ping -l 1472 -f 10.0.0.1
  • denn dann erhält man eine Nachricht, falls die MTU überschritten wird
  • Leicht sichtbar machen lässt sich die Path MTU mit dem Programm tracepath für IPv4 bzw. tracepath6 für IPv6

Jumbo Frames für Gigabit Ethernet

Jumbo Frames können deutlich mehr als 1518 Oktette beinhalten
  • und damit ist es möglich, größere Pakete unfragmentiert zu übertragen
Positiv
  • wiegt, dass der Protokoll-Overhead bei der Verwendung von Jumbo Frames reduziert werden kann und Router weniger Pakete behandeln müssen
Allerdings
  • ist die Terminologie bzgl. MTU derart uneinheitlich unter den Herstellern, dass es in der Praxis schwierig ist, von den Standardeinstellungen abzuweichen
Jumbo Frames sind nicht im IEEE-802.3-Standard spezifiziert
  • trotzdem unterstützen die meisten Hersteller von Gigabit Ethernet Switches und Routern MTUs bis 9000 Oktette
Quasistandard eine Path MTU um ca. 1500 Byte
  • So hat sich als Quasistandard eine Path MTU um ca. 1500 Byte im Internet eingebürgert, die durch das weit verbreitete Fast Ethernet sowieso meist nicht überschritten werden kann
Tunnelprotokolle
  • Mit dem Aufkommen von Internetzugängen, die auf Tunnelprotokollen basieren, zum Beispiel beim Verbindungsaufbau über das PPPoE-Protokoll hat die MTU an Bedeutung gewonnen
  • Obwohl die PMTUD in diesem Fall dafür sorgen soll, dass die Kommunikation trotz der durch den Tunnel abgesenkten MTU möglich ist, gibt es immer wieder fehlkonfigurierte Firewalls, die durch Verwerfen von ICMP-Steuerpaketen die PMTUD stören
  • Auch große Websites sind oft von diesem Konfigurationsfehler betroffen, sodass die Nutzer von getunnelten Zugängen die MTU ihrer Geräte verkleinern müssen, um auch mit diesen Sites kommunizieren zu können

Optimale MTU

Diskussionen über die optimale MTU
Einfache Optimierung
  • So groß wie möglich, ohne dass Probleme auftreten
Komplexe Optimierung
  • so viel kleiner als o. g. Maximum, dass der Verschnitt der Transportzellen der unter der DSL-Schicht liegenden ATM-Transportschicht möglichst klein wird
Oder
Einfach probieren
  • Die MTU bei ATM (4500) ist nicht zu verwechseln mit der Zellengröße (53 Bytes, 48 davon Nutzlast)
  • Bei der Übertragung über einen ATM-Link werden IP-Pakete in Stücke zu je 48 Bytes zerlegt und für die Übertragung auf mehrere ATM-Zellen verteilt
  • Der Router am anderen Ende des ATM-Links sammelt diese Zellen und setzt das ursprüngliche IP-Paket wieder zusammen
  • Im Gegensatz dazu wird bei der IP-Fragmentierung das Paket nicht vom Router reassembliert, sondern erst von dem Host, für den das Paket bestimmt war
  • Probleme, die durch einen falschen MTU-Wert auftreten können, sind Webseiten, die gar nicht oder nur teilweise angezeigt werden

Paketgrößen

MTU und PMTU
  • Die Maximum Transmission Unit (MTU) darf in einem IPv6-Netzwerk 1280 Byte nicht unterschreiten
  • Somit unterschreitet auch die Path MTU (PMTU) diesen Wert nicht und es können Pakete bis zu dieser Größe garantiert ohne Fragmentierung übertragen werden
  • Minimale IPv6-Implementierungen verlassen sich auf diesen Fall
  • Ein IPv6-fähiger Rechner muss in der Lage sein, aus Fragmenten wieder zusammengesetzte Pakete mit einer Größe von mindestens 1500 Byte zu empfangen
  • Für IPv4 beträgt dieser Wert nur 576 Byte
  • Im anderen Extrem darf ein IPv6-Paket auch fragmentiert laut Payload-Length-Feld im IPv6-Header die Größe von 65.575 Byte einschließlich Kopfdaten nicht überschreiten, da dieses Feld 16 Bit lang ist (216 − 1 Byte zzgl. 40 Byte Kopfdaten)
Jumbograms
  • RFC 2675 stellt aber über eine Option des Hop-by-Hop Extension Headers die Möglichkeit zur Verfügung, Pakete mit Größen bis zu 4.294.967.335 Byte, sogenannte Jumbograms zu erzeugen
  • Dies erfordert allerdings Anpassungen in Protokollen höherer Schichten, wie z. B. TCP oder UDP, da diese oft auch nur 16 Bit für Größenfelder definieren, außerdem muss bei jedem Paket, welches einen Jumbogram beinhaltet, im IPv6-Header die Payload-Length auf 0 gesetzt werden

Format des Fragment Headers

Fragmentierung mit IPv6

Der Fragment Header in einem Trace File

Letztes Paket des Fragment Sets

Format des Destination Options Headers