Netzwerkperformance unter Windows Vista
Mit Windows Vista und Windows Server 2008 wurde der Netzwerkstack komplett überarbeitet. Die Verbesserungen im Next Generation TCP/IP Stack führen zu deutlich besser auslastbaren Leitungen mit einem deutlich höheren Datendurchsatz als unter den Vorgängerversionen. In der Studie Windows Vista and Windows Server 2008 Network Benchmark Study wurden mit einem realistischen Szenario allein durch den Wechsel auf Windows Vista-basierende Clients eine Verringerung der Kopierzeiten und eine Vergrößerung des Datendurchsatzes um das bis zu 2,5 fache gemessen. Der Wechsel auf der Serverseite hin zu Windows Server 2008 erhöhte die Verbesserung auf das bis zu 3,5 fache gegenüber der Kombination Windows XP und Windows Server 2003, bedingt auch durch die dann mögliche Verwendung von Server Message Block (SMB) 2.0.
Der neue Netzwerkstack nutzt dabei ganz standardkonform das TCP/IP-Protokoll und implementiert eine Reihe von Verbesserungen, die insbesondere die Geschwindigkeit über Leitungen mit hoher Bandbreite und/oder hoher Latenz dramatisch verbessert. Zu den Verbesserungen gehören Receive Window Auto Tuning, Compound TCP, ECN Support, Verbesserungen in Umgebungen mit hohen Verlusten gemäß RFC 2582, RFC 2883, RFC 3517, RFC 4138, Fail-back Support für Änderungen des Default Gateways, Änderungen in der Erkennung von PMTU Black Hole Router und vieles mehr.
Weiterführende Informationen findet man auf Deutsch hier:
sowie auf Englisch hier:
Wenn man nun aber als Anwender von den ganzen Verbesserungen nichts spürt, weil der Datentransport irgendwie langsam ist, hilft einem die Theorie nicht wirklich weiter. Es gibt von Microsoft das Internet Connectivity Evaluation Tool, mit dem man seine Netzwerkhardware auf die Unterstützung der neu hinzugekommenen Funktionen testen kann. Das kann als erste Anlaufstelle zur Identifizierung möglicher Probleme dienen.
Über Windows Update stehen schon seit einiger Zeit Performance- und Reliability-Updates zur Verfügung, die vermutlich jeder schon eingespielt hat. Wer danach trotzdem mit Problemen beim Netzwerkzugriff zu kämpfen hat, findet in folgender Liste vielleicht einen Verursacher.
Ältere Router
Ältere Router rechnen eventuell nicht damit, dass ein Betriebsystem wirklich alle Register zur Beschleunigung des Datentransfers zieht. Zum Beispiel benutzt Vista intensiv UPNP, welches zwar schon von Windows XP bekannt war, jedoch bei weitem nicht so stark benutzt wurde. Ältere Router können mit dem erhöhten UPNP-Verkehr nicht wirklich umgehen und können zu langsamen Verbindungen, Verbindungsverlusten oder auch zu verworfenen Paketen bis hin zum Routerstillstand führen.
Das Problem ist in An outdated network router may not function correctly when you use it together with new networking features in Windows Vista beschrieben. Abhilfe kann ein Firmwareupgrade des Geräts bringen, wenn der Hersteller eine fehlerbereinigte Version auf den Markt geracht hat. Oder man versucht, die UPNP-Fähigkeit des Routers im Setup zu deaktivieren. Oder, wenn das alles nichts hilft, in den sauren Apfel beissen und ein funktionierendes Gerät anschaffen.
Veraltete Netzwerkkartentreiber
Die mit Windows Vista mitgelieferten Treiber müssen nicht zwingend die performantesten Treiber für die verwendete Hardware sein. Gerade heute fand ich wieder einen Thread in microsoft.public.de.windows.vista.netzwerk, in dem jemand die Performance seiner Realtek RTL8169-Karte beklagte und dem ein Update des Netzwerkkartentreibers sehr geholfen hatte. Ein weiteres Beispiel ist die von Asus auf dem P5K Motherboard verbaute Attansic On Board GBit LAN-Karte. Auch diese läuft erst zufriedenstellend mit einem aktuelleren Treiber ab Version 2.1.6000.0. Für beide Karten findet man bei den Herstellern Realtek und Asus jeweils aktualisierte Netzwerkkartentreiber.
Bekannt sind derartige Probleme auch auf Servern - hier beschreibt zum Beispiel der Artikel Windows 2003 Scalable Networking pack and its possible effects on Exchange das Problem von älteren Netzwerkkartentreibern und neueren Netzwerkoptionen wie TCP Chimney Offload, Receive-side Scaling (RSS) und NetDMA.
Einmal auf der Webseite des Herstellers des Netzwerkchips (kann sich durchaus vom Hersteller der Karte unterscheiden) nachschauen, ob es einen neueren Treiber gibt, kann auf jeden Fall nicht schaden.
Drittanbietersoftware
Fast schon in die Rubrik 'kurioses' fällt ein Problem, welches in m.p.d.w.vista.netzwerk beschrieben wurde. Ein USB-Skype-Telefon von US-Robotics (eigentlich von YeaLink, Taiwan) wird vom PC als USB-Audio-Gerät sowie als USB-HID-Gerät erkannt. Um die Verbindung zu Skype herzustellen (Tastenbedienung über Telefontastatur), läuft im Hintergrund ein im Autostart aktiviertes Programm namens 'SkypeMate' mit. Sobald dieses Programm nicht läuft, ist die Netzwerkperformance einwandfrei. Programme von Drittanbietern können also auch negativen Einfluss auf die Netzwerkperformance haben.
Flow control
Dieses Problem tritt insbesondere bei der Nutzung von Gigabit-Netzen auf. Möglicherweise setzt man einen Switch ein, der diplomatisch ausgedrückt eventuell überfordert ist. Die Lösung lautet hier, mit den Flow control-Parametern der Netzwerkkarte zu experimentieren. Je nach Switch kann es ratsam sein, Flow control in der Empfangsrichtung zu aktivieren oder generell Flow control zu deaktivieren. Auch eine Herabstufung der Portgeschwindigkeit auf 100 MBit kann helfen - allerdings will man ja gerade die Geschwindigkeit im Gigabit-Bereich nutzen. Beschrieben ist auch dieses Problem in You experience poor video quality or slow performance when you use Windows Media Extender features on a home network that uses a Gigabit Ethernet switch on a Windows Vista-based computer.
Deaktivieren der erweiterten Funktionen
Schliesslich kann man als letzten Schritt noch das selektive Deaktivieren der erweiterten Funktionen in Betracht ziehen. Hierbei sollte sorgfältig Schritt für Schritt getestet werden, in welcher Umgebung welche Einstellung Vorteile bringt. Auf keinen Fall sollte hier nach dem Motto "Viel hilft viel" gearbeitet werden. Da mir aber klar ist, dass ansonsten als erster "Expertentipp" in den Kommentaren netsh-Kommandos gepostet werden, führe ich sie hier mit auf. Nur damit sich aber hinterher keiner beschwert: Die Benutzung erfolgt auf eigene Gefahr ;-)
Wer wissen will, wie sein System standardmäßig eingestellt ist, kann das vorher mit folgendem Kommando herausfinden: netsh interface tcp show global
- Autotuning
Aktivieren: netsh interface tcp set global autotuning=normal
Deaktivieren: netsh interface tcp set global autotuning=disabled
- Compound TCP
Aktivieren: netsh interface tcp set global congestionprovider=ctcp
Deaktivieren: netsh interface tcp set global congestionprovider=none
- ECN Support
Aktivieren: netsh interface tcp set global ecncapability=enabled
Deaktivieren: netsh interface tcp set global ecncapability=disabled
- TCP Chimney
Aktivieren: netsh interface tcp set global chimney=enabled
Deaktivieren: netsh interface tcp set global chimney=disabled
- Receive-side Scaling (RSS)
Aktivieren: netsh interface tcp set global rss=enabled
Deaktivieren: netsh interface tcp set global rss=disabled
Update am 24.12.2008
Viele kennen bestimmt den Artikel von Mark Russinovich Vista Multimedia Playback and Network Throughput. Windows Vista verfügt über einen Priorisierungsdienst, welcher laufende Multimedianwendungen erkennt und sicherstellt, dass immer genügend Hardwareressourcen zur Verfügung stehen, damit das Abspielen von Multimediadaten nicht ins Stocken kommt. Dabei reduziert er auch die mögliche Geschwindigkeit von Netzwerkschnittstellen. Seit Service Pack 1 läßt sich dieser Throttling-Mechanismus rekonfigurieren. Die Details sind in dem KB-Artikel How to use the throttling mechanism to control network performance in Windows Vista näher beschrieben. Mit dem folgenden Registryeintrag läßt sich die Netzwerkbremse ausschalten:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile]
"NetworkThrottlingIndex"=dword:ffffffff
Vielen Dank an megasupa@hotmail.com, der mich in einer Mail an diesen Tip erinnerte. Ich hatte schon seit Anfang Oktober die Idee bei mir notiert.