Login
Newsletter
Werbung

Fr, 12. Juli 2013, 12:40

Software::Netzwerk

Gettys: Die Lösung für niedrigere Netzwerk-Latenz

Laut Jim Gettys hat das Web und diverse andere Maßnahmen die Latenz von Netzwerkverbindungen zerstört. Hoffnung bringt ein im letzten Jahr entwickelter Algorithmus, der jetzt schnellstens zum Einsatz kommen sollte.

Gemessene Netzwerklatenzen mit und ohne fq_codel

Jim gettys

Gemessene Netzwerklatenzen mit und ohne fq_codel

Jim Gettys kann als Mitautor von X11, Herausgeber des HTTP/1.1-Standards, Organisator und Mitarbeiter von handhelds.org und One Laptop Per Child langjährige Erfahrung mit der IT-Industrie vorweisen. Im Jahr 2012 startete er eine Kampagne gegen den Buffer Bloat, ein Problem, das er selbst entdeckte und erstmals formulierte.

Buffer Bloat äußert sich in zu langen Latenzzeiten, die in der Folge Paketverluste, unnötige Wiederholungen oder gar Verbindungsabbrüche auslösen. Gettys nannte als Ursache die gedankenlose Vergrößerung der Paketpuffer in allen Netzwerk-Komponenten, die die bisherigen TCP-Algorithmen wirkungslos werden ließ. Nicht überall lässt sie sich rückgängig machen, aber beispielsweise im Linux-Kernel wurden einige Verbesserungen vorgenommen. Dazu trat in Linux 3.5 im Juli 2012 ein neuer »Controlled Delay« (CoDel) Paket-Scheduler, der einen neuen Algorithmus der Internet-Veteranen Kathleen Nichols und Van Jacobson implementiert, der in Linux erstmals zum Einsatz kam. Ein weiterer Teil der Lösung für das Problem der langen Latenzzeiten folgte als TCP small queues in Linux 3.6 im Oktober 2012.

Doch das alles ist noch nicht genug, schreibt Gettys in einem neuen Artikel, in dem er intelligentere Algorithmen für das Einreihen von Paketen in die Warteschlangen fordert. Immer noch wird der Aufbau von Webseiten im Browser stark verzögert, teilweise um mehr als 500 ms - wahrnehmbar sind Verzögerungen etwa ab 30 ms, auch wenn sie teilweise bis 150 ms tolerierbar sind. Neben der Tatsache, dass sicher noch nicht viele Netzwerkgeräte seit letzten Jahr verbessert wurden, hält Gettys das »asoziale Verhalten« des WWW für das Hauptproblem.

Wie Gettys sehr ausführlich erläutert, wird der Aufbau von Webseiten durch Latenzen dominiert. Eine höhere Bandbreite nützt fast gar nichts - Diagramme zeigen, dass die Seiten-Ladezeit bei 2 Mbit/s nicht viel höher liegt als bei 10 Mbit/s. Dagegen zeigen Messungen, dass die Ladezeit proportional zur Latenzzeit des Netzwerks ist.

Schuld an den Latenzzeiten sind die Webbrowser, die nach dem Laden einer Webseite zahlreiche parallele Verbindungen zum Webserver öffnen, um die weiteren Bestandteile der Seite zu laden, darunter Skripte und Bilder. Viele Webseiten enthalten eine große Zahl kleiner Bilder, was eine große Zahl von Verbindungen bedingt. Während der Webserver dies problemlos bewältigen, stauen sich die ankommenden Pakete beim Empfänger - da die TCP-Flusskontrolle weitgehend ausgehebelt ist, füllt sich die Empfangswarteschlange, und es dauert seine Zeit, bis diese abgearbeitet ist. Besonders deutlich spürbar wird das, wenn man WLAN einsetzt und das Netz entweder stark beansprucht wird, wie in Hotels, oder man weit vom Access Point entfernt ist.

Laufen neben dem WWW weitere Anwendungen, leiden diese unter der Latenz genauso, da die ankommenden Pakete in fester Reihenfolge abgearbeitet werden. Eine teilweise Abhilfe steht dafür mit Quality of Service bereit. Damit kann man definieren, welcher Traffic mit welcher Priorität behandelt wird. Doch laut Gettys ist das erstens so kompliziert, dass es kaum jemand anwenden kann, und zweitens hat es keinen Einfluss auf viele entscheidende Stellen, wo Latenz entsteht. Quality of Service hat für ihn dennoch eine Berechtigung, da es damit möglich ist, zu regeln, welche Protokolle Priorität haben sollen.

Für den Normalgebrauch muss jedoch eine Alternative her. Eine solche Alternative müsste Paketflüsse, die nur ein Paket senden, beispielsweise TCP-Verbindungsaufbau, DNS-Abfrage und Ähnliches, gegenüber großen Übertragungen wie Up- und Downloads von Daten priorisieren. Hilfreich wäre es außerdem, wenn jeweils das erste Paket einer Serie bevorzugt zugestellt würde, denn dieses enthält meist wichtige Informationen für die weitere Verarbeitung, man denke an ein Bild, in dessen Header die Bildgröße zu finden ist. Das Verfahren nennt sich »Flow Queueing«.

Ein Verfahren, das laut Gettys drastische Verbesserungen bringen kann, steht jetzt mit dem Algorithmus fq_codel zur Verfügung, der von Eric Dumazet entwickelt wurde, beeinflusst von früheren Arbeiten von Dave Täht. fq_codel kombiniert Flow Queueing mit CoDel und soll für jede Bandbreite bis hoch zu mehr als 10 Gbit/s brauchbar sein. Gettys Messungen legen nahe, dass die Latenz von Netzwerkverbindungen um Faktor 50 bis auf etwa 10 ms sinken könnte und wesentlich weniger Ausreißer nach oben aufweisen würde als bisher. Angesichts dieser Aussichten fordert Gettys die Entwickler und Hersteller auf, fq_codel jetzt einzusetzen. Code für Linux ist bereits im offiziellen Kernel als IPFilter-Modul. Allerdings scheint das Modul noch von keiner Distribution automatisch aktiviert zu werden.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung