Für Windows 7, Windows Vista und Windows XP ist die MTU für verschiedene Schnittstellen von Windows selbst verfügbar netsh
.
Windows 7, Windows Vista
So zeigen Sie die aktuelle MTU unter Windows 7 oder Windows Vista an einer Eingabeaufforderung an:
C:\Users\Ian>netsh interface ipv6 show subinterfaces MTU MediaSenseState Bytes In Bytes Out Interface ---------- --------------- --------- --------- ------------- 1280 1 24321220 6455865 Local Area Connection 4294967295 1 0 1060111 Loopback Pseudo-Interface 1 1280 5 0 0 isatap.newland.com 1280 5 0 0 6TO4 Adapter
Und für IPv4-Schnittstellen:
C:\Users\Ian>netsh interface ipv4 show subinterfaces MTU MediaSenseState Bytes In Bytes Out Interface ---------- --------------- --------- --------- ------------- 1500 1 146289608 29200474 Local Area Connection 4294967295 1 0 54933 Loopback Pseudo-Interface 1
Hinweis: In diesem Beispiel weist meine IPv6- Schnittstelle für LAN-Verbindung ( Local Area Connection) eine so niedrige MTU (1280) auf, da ich einen Tunneldienst zum Herstellen einer IPv6-Verbindung verwende .
Sie können auch Ihre MTU (Windows 7, Windows Vista) ändern . Über eine Eingabeaufforderung mit erhöhten Rechten:
>netsh interface ipv4 set subinterface "Local Area Connection" mtu=1492 store=persistent Ok.
Getestet mit Windows 7 Service Pack 1
Windows XP
Die netsh
Syntax für Windows XP ist etwas anders:
C:\Users\Ian>netsh interface ip show interface Index: 1 User-friendly Name: Loopback Type: Loopback MTU: 32767 Physical Address: Index: 2 User-friendly Name: Local Area Connection Type: Etherenet MTU: 1500 Physical Address: 00-03-FF-D9-28-B7
Hinweis: Windows XP erfordert, dass der Routing- und RAS- Dienst gestartet wird, bevor Sie Details zu einer Schnittstelle (einschließlich MTU) anzeigen können:
C:\Users\Ian>net start remoteaccesss
Windows XP bietet keine Möglichkeit, die MTU-Einstellung von innen zu ändern netsh
. Dafür können Sie:
- Folgen Sie den Anweisungen in KB283165 - So ändern Sie die PPPoE-MTU-Größe in Windows XP
- Verwenden Sie Dr. TCP ( Hinweis: nur Windows 2000 / XP)
Getestet mit Windows XP Service Pack 3
Siehe auch
- Konfigurieren Sie die MTU-Größe (TCPIP Max Transfer Unit) in Vista
- Einstellen der MTU in Windows Vista
- MTU-Einstellungen ändern Hilfe!
- KB283165 - So ändern Sie die PPPoE-MTU-Größe in Windows XP
- DSLReports - DrTCP
Kurze Diskussion darüber, was die MTU ist, woher die 28 Bytes kommen.
Ihre Netzwerkkarte (Ethernet) hat eine maximale Paketgröße von 1,500 bytes
:
+---------+ | 1500 | | byte | | payload | | | | | | | +---------+
Der IP-Teil von TCP / IP erfordert einen 20-Byte-Header (12 Byte Flags, 4 Byte für Quell-IP-Adresse, 4 Byte für Ziel-IP-Adresse). Dadurch bleibt weniger Platz im Paket:
+------------------------+ | 12 bytes control flags | \ | 4 byte from address | |- IP header: 20 bytes | 4 byte to address | / |------------------------| | 1480 byte payload | | | | | | | +------------------------+
Jetzt hat ein ICMP (Ping) -Paket einen 8-Byte-Header (1 Byte type
, 1 Byte code
, 2 Byte checksum
, 4 Byte zusätzliche Daten):
+------------------------+ | 12 bytes control flags | \ | 4 byte from address | | | 4 byte to address | |- IP and ICMP header: 28 bytes |------------------------| | | 8 byte ICMP header | / |------------------------| | 1472 byte payload | | | | | | | +------------------------+
Das sind die "fehlenden" 28 Bytes - es ist die Größe der Header, die zum Senden eines Ping-Pakets erforderlich sind.
Wenn Sie ein Ping-Paket senden, können Sie angeben, wie viele zusätzliche Nutzdaten Sie einschließen möchten. In diesem Fall, wenn Sie alle 1472 Bytes angeben:
>ping -l 1472 obsidian
Dann ist das resultierende Ethernet- Paket bis zu den Kiemen voll. Jedes letzte Byte des 1500-Byte-Pakets wird gefüllt:
+------------------------+ | 12 bytes control flags | \ | 4 byte from address | | | 4 byte to address | |- IP and ICMP header: 28 bytes |------------------------| | | 8 byte ICMP header | / |------------------------| |........................| |........................| |. 1472 bytes of junk....| |........................| |........................| |........................| |........................| +------------------------+
Wenn Sie versuchen, ein weiteres Byte zu senden
>ping -l 1473 obsidian
Das Netzwerk muss dieses 1501-Byte-Paket in mehrere Pakete aufteilen:
Packet 1 of 2 +------------------------+ | 20 bytes control flags | \ | 4 byte from address | | | 4 byte to address | |- IP and ICMP header: 28 bytes |------------------------| | | 8 byte ICMP header | / |------------------------| |........................| |........................| |..1472 bytes of payload.| |........................| |........................| |........................| |........................| +------------------------+ Packet 2 of 2 +------------------------+ | 20 bytes control flags | \ | 4 byte from address | | | 4 byte to address | |- IP and ICMP header: 28 bytes |------------------------| | | 8 byte ICMP header | / |------------------------| |. | | 1 byte of payload | | | | | | | | | | | +------------------------+
Diese Fragmentierung geschieht im Hintergrund, idealerweise ohne dass Sie es wissen.
Sie können aber gemein sein und dem Netzwerk mitteilen, dass das Paket nicht fragmentiert werden darf:
>ping -l 1473 -f obsidian
Das Flag -f bedeutet nicht fragmentieren . Wenn Sie nun versuchen, ein Paket zu senden, das nicht in das Netzwerk passt, wird der Fehler angezeigt:
>ping -l 1473 -f obsidian Packet needs to be fragmented but DF set.
Das Paket muss fragmentiert sein, aber das Flag " Nicht fragmentieren" wurde gesetzt.
Wenn irgendwo entlang der Linie ein Paket fragmentiert werden muss, sendet das Netzwerk tatsächlich ein ICMP-Paket, das Ihnen mitteilt, dass eine Fragmentierung stattgefunden hat. Ihr Computer erhält dieses ICMP-Paket, teilt Ihnen mit, was die größte Größe war, und soll das Senden von zu großen Paketen beenden. Leider blockieren die meisten Firewalls diese "Path MTU Discovery" ICMP-Pakete, so dass Ihre Maschine niemals erkennt, dass die Pakete fragmentiert sind (oder, was noch schlimmer ist: sie fallen gelassen werden, weil sie nicht fragmentiert werden konnten).
Das ist der Grund, warum der Webserver nicht funktioniert. Sie können die ersten kleinen Antworten (<1280 Byte) erhalten, größere Pakete können jedoch nicht durchkommen. Die Firewalls des Webservers sind falsch konfiguriert und blockieren ICMP-Pakete. Der Webserver erkennt also nicht, dass Sie das Paket nie erhalten haben.
Die Fragmentierung von Paketen ist in IPv6 nicht zulässig. Jeder muss ICMP-mtu-Erkennungspakete (richtig) zulassen.