|
|
Zeile 144: |
Zeile 144: |
| [[Kategorie:Entwurf]] | | [[Kategorie:Entwurf]] |
| [[Kategorie:OSI:02]] | | [[Kategorie:OSI:02]] |
|
| |
| = Wikipedia =
| |
| 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.
| |
| * 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:
| |
|
| |
| {|
| |
| | style="vertical-align:top" | ''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 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.
| |
|
| |
| 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"
| |
| |+ Typische MTU-Größen
| |
| ! Medium
| |
| ! MTU in Bytes
| |
| |-
| |
| | Hyperchannel || 65535
| |
| |-
| |
| | [[Token Ring]](4)(802.5) || 4464
| |
| |-
| |
| | [[Token Ring]](16) || 17914
| |
| |-
| |
| | [[FDDI]] || 4352
| |
| |-
| |
| | [[Ethernet]] || 1500
| |
| |-
| |
| | [[Ethernet#Gigabit-Ethernet|Gigabit Ethernet]]<br />mit Jumboframes || 9000
| |
| |-
| |
| | [[PPP over Ethernet|PPPoE]] (z. B. DSL) || ≤ 1492
| |
| |-
| |
| | [[Serial Line Internet Protocol|SLIP]]/[[Point-to-Point Protocol|PPP]] (low delay) || 296
| |
| |-
| |
| | [[X.25]] || 576
| |
| |-
| |
| | [[FibreChannel]] || theoretisch unbegrenzt
| |
| |-
| |
| | [[Integrated Services Digital Network|ISDN]] || 576
| |
| |-
| |
| | [[DQDB]] ||
| |
| |-
| |
| | HIPPI ||
| |
| |-
| |
| | [[Asynchronous Transfer Mode|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 [[IP-Fragmentierung|Fragmentierung]] zu unterliegen.
| |
| * 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.
| |
|
| |
| == 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 (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.
| |
| * 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
| |
| 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 [[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.
| |
|
| |
| 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. <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. ''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|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 [[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.
| |
| * 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.
| |
|
| |
| Über die optimale MTU gibt es viele Diskussionen.
| |
| * Kurz zusammengefasst:
| |
| * 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 [[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).
| |
| * 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.<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 ==
| |
| 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;
| |
| }
| |
| }
| |
| }
| |
| }
| |
| <!-- Anleitungen gehören nicht in Wikipedia.
| |
| 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: <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
| |
| * Windows: Über die Netzwerkeigenschaften bzw. Systemsteuerung oder mit Programmen wie z. B. dem Freeware-Programm DrTcp oder tcp optimizer, um den Wert dauerhaft zu setzen
| |
| -->
| |
Maximum Transmission Unit (MTU) ist die maximale Größe eines Datagramms auf 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
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 / Point-to-Point Protocol|PPP (low delay) |
296
|
X.25 |
576
|
FibreChannel |
theoretisch unbegrenzt
|
ISDN |
576
|
DQDB |
|
HIPPI |
|
ATM |
4500, s. u.
|
ARCNET |
|
802.11 |
2312 (WiFi)
|
Anwendungen
Berechnung der maximalen 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
Dateien
Sicherheit
Dokumentation
RFC
- RFC 791 – INTERNET PROTOCOL
- RFC 879 – The TCP Maximum Segment Size and Related Topics
- RFC 1191 – Path MTU Discovery
- RFC 1981 – Path MTU Discovery for IP version 6
- RFC 2923 – TCP Problems with Path MTU Discovery
Man-Pages
Info-Pages
Siehe auch
Links
Projekt-Homepage
Weblinks
- https://de.wikipedia.org/wiki/Maximum_Transmission_Unit
- Dr. TCP, eine Software zum Einstellen der MTU unter Windows, ursprünglich für DSL-Nutzer geschrieben.
- MTU, eine weitere Software (Freeware) zum Einstellen der MTU unter Windows.
- Analysing TCP Header Options – Section 6 – Ausführliche Erklärung der MTU und MSS
Einzelnachweise
Testfragen