reduce your round trip time 21. Feb 2010
Nachdem ich von meinem alten TDSL-Anschluß für deutsche Server Pingzeiten von 10 ms gewohnt war, war ich doch etwas verdutzt über die 45 ms die mir mein neuer Alice-Anschluß beim Referenzserver des Heiseverlags bot. Nachdem auch ein Anruf beim Kundendienst keine weiteren Erkenntnisse brachte ging mir die Sache erstmal nicht mehr aus dem Kopf. Bald kam in mir ein Verdacht auf, es könne womöglich zumindest teilweise an gelieferten Hardware liegen. Neben der Leitungslänge sind die Schaltzeiten in den Routern schließlich ein ganz wesentlicher Beitrag zur Round Trip Time. Zu meinem Anschluß wurde mir das Alice Modem 1121 WLAN geliefert. Praktischerweise hatte ich ein altes DSL-Modem von Arcor griffbereit, hinter das ich noch eine Apple Airport Extreme gehängt habe. Das Staunen war groß, als ich dann feststellen mußte, dass allein der Hardwaretausch schon den Ping um satte 10 ms reduzierte, so dass der Heiseserver nun mit schon deutlich attraktiveren 35 ms ansprochen werden konnte. Das sind zwar immer noch deutlich mehr als ich von meinem alten Anschluß in Erinnnerung habe, aber der signifikante Leistungszuwachs ist dennoch erfreulich. Nun stellt sich natürlich die Frage ob der Leistungssprung an der veränderten Hardware, einer Änderung in der Konfiguration oder eine Kombination aus beidem liegt. Interessanterweise hat das Breitband-Informationsportal Think Broadband die von ihnen getestete Hardware bezüglich des durchschnittlichen Pings untersucht und festgestellt, dass es tatsächlich messbare Leistungsunterschiede gibt. Zwischen dem schlechtesten und dem besten Gerät lagen 13 ms, was also sogar noch etwas über dem von mir festgestellten Leisungsunterschied liegt. Die Vermutung liegt also nahe, dass auch in meinem Fall die Hardware der ausschlagebende Faktor ist. Die Frage wäre also nun ob man DSL-Modems hinsichtlich des Pings in irgendeiner Form optimieren kann ob sich dieser Unterschied in der Praxis beim Websurfen bemerkbar macht.
Hm, erste Frage wäre wie doll man diese Unterschiede denn in der Praxis merkt.
Die einzige Person, die sie zu spüren schien, war mein ex-Mitbewohner mit einer Vorliebe für online-Spiele. Da konnte man auch schön beobachten, wie einfach ein schneller Download (zB Apple Software-Update), die Ping-Zeiten für unseren gesamten Anschluß vervielfachte, so daß bald jemand in der Tür stand und mich fragte, ob ich wieder das Internet kaputt mache…
(das war mit alter FritzBox und congstar DSL, durchschnittliche Ping-Zeit so um die 60ms, besagter Mitbewohner hat jetzt wohl auch Alice incl einer ‘fast path’ (oder so ähnlich) Option und schwärmt seitdem von 10ms ping-Zeiten…)
Ich bin kein Gamer, es handelt sich hierbei also definitiv um Jammern auf hohem Niveau. Ein Ping von 45 ms ist für die Web-Nutzung definitiv noch im grünen Bereich. Ob der Ping jetzt 45 ms oder 35 ms ist sicherlich jenseits der Wahrnehmungsschwelle. Aus meiner Erfahrung mit der Latenz bei Traktor DJ kann ich aber sagen, dass ein Unterschied von 50 ms definitiv spürbar ist und alles jenseits von 100 ms deutlich spürbar ist. Wenn man nun mal eine Website wie Discogs nimmt wo ich einen Ping von 170 ms habe, dann sollte ein Ping von 120 ms die Reaktionsfreudigkeit der Website schon spürbar anheben. Auf die Gesamtladegeschwindigkeit ist der Einfluß natürlich vernachlässigbar.
Eine schöne Analogie für den Ping wäre vielleicht das Anschaltverhalten von Energiesparbirnen. Meine Eltern haben in ihrem Wohnzimmer zwei identische Lampen mit zwei unterschiedlichen Energiesparbirnen. Nun gibt es zwei Parameter um das Anschaltverhalten zu beschreiben, der eine ist Zeitdauer vom betätigen des Lichtschalters bis zur initialen Erhellung des Raumes und der andere die Zeitdauer bis die maximale Helligkeit erreicht ist. Mich stört zwar auch das allmähliche aufdimmen von Energiesparbirnen, aber viel nerviger, viel unbefriedigender finde ich noch das Phänomen der EInschaltverzögerung. Bei klassischden Glühbirnen gab es das nicht. Bei guten Energiesparbirnen ist die Einschaltverzögerung vernachlässigbar, bei der einen Energiesparbirne meiner Eltern jedoch ist die Einschaltverzögerung so groß, dass ich jedesmal irritiert bin und für einen Sekundenbruchteil das Gefühl habe die Birne sei kaputt. Ähnlich ist es bei Webservern wenn die Website eine spürbare Anfangsverzögerung hat, keimt in mir sofort das Gefühl auf, dass etwas kaputt ist und da ich den Browser im metaphorischen Sinne als Schnittstelle zu meinem externen Gehirn, dem Internet empfinde ist das fast so, als wenn mein Körper eine Funktionsstörung aufweist.
Wem das jetzt zu abwegig klingt, der soll sich einfach mal das Gefühl vorstellen, auf der Autobahn bei hoher Geschwindigkeit plötzlich bremsen zu müsen weil irgendein Vollhorst ohne zu gucken auf linke Spur gewechselt hat und beim auf die Bremse treten zu merken, dass das Auto nicht sofort sondern erst mit spürbarer Verzögerung anfängt zu bremsen. Sicherlich ein extremes Beispiel, aber ich denke ein anschauliches :)
Ich verstehe schon, daß Latenz doof ist[*], aber mein Eindruck ist, daß unter 1s eh nix passiert, selbst bei Google, weil es einfach so lange dauert, bis die Antwort erzeugt und bei Dir ist. Safaris Web Inspector liefert da schöne Zahlen. Wenn 50ms auch helfen mögen, scheinen sie mir im Vergleich dazu das kleinere Problem zu sein.
Das Internet ist halt kein DJ-Pult…
* Königsbeispiel dafür sind meiner Meinung nach moderne Mobiltelephone - nachdem ich meines neulich verloren habe, nutze ich nun das uralt Nokia von meiner Mutter und bin erfreut, daß jeder Tastendruck sofort eine Auswirkung hat
Ich habe meine Messungen mit Firebug im Firefox gemacht und dabei dummerweise die Balkengrafik falsch interpretiert. Das von mir angeführte Beispiel Discogs hat bei mir eine durchschnittlche Latenz von 900 ms und insofern sind 50 ms Verzögerung durch den Provider natürlich eindeutig vernachlässigbar, da hast Du vollkommen recht.
Interessanter ist schon der Fall Goole. Ich habe gerade mal für Google die durchschnittliche Latenz und Round Trip Time verglichen für meine beiden Hardware-Lösungen und bin dabei auf Werte gekommeen, die mir auf den ersten Blick ein wenig verwundern.
Hardware 1
Round Trip Time mit Ping: 50 ms
Latenz mit Safari Web Inspector: 64 ms
Hardware 2
Round Trip Time mit Ping: 28 ms (- 22 ms)
Latenz mit Safari Web Inspector: 55 ms (- 9 ms)
Weißt Du wie der Web Inspector die Latenz berechnet? Zieht er vielleicht die halbe RTT ab um somit nur die Zeitdauer vom Server zum Nutzer zu dokumentieren? Ich hätte jetzt erwartet, dass der Gewinn durch die schnellere Round Trip Time vollständig bei der Latenz durchschlägt, sprich die zweite Hardware hätte meines Empfindens eine Latenz von 42 ms haben sollen.
So richtig Ahnung von den Protokolldetails habe ich nicht. Ist es denn erstmal klar, daß ein Ping von der Verbindung her wirklich dasselbe ist, wie ein HTTP request?
Laut Werbung ist die Latenz: »the time between making the request and the server’s first response.«
(siehe http://webkit.org/blog/197/web-inspector-redesign/ )
Ich vermute, daß man auf jeden Fall eine statistische Auswertung mehrerer Versuche braucht, um diese Zahlen einigermaßen gebrauchen zu können (zumindest bei mir schwanken die Werte schon etwas…) und dann müßte man warhscheinlich noch Dinge über Routing etc. wissen, von denen ich so ziemlich nix verstehe, um einzuschätzen, wo die Zeiten da herkommen.
mal kurz im Büro gemessen:
ping zu google.de: 24-26ms.
Web-Inspektor Latenz für www.google.de: 38-42ms Latenz
Web-Inspektor Latenz für Wiederholte google.de Suchanfrage: 30-40ms Latenz
Mit Google Chrome scheinen die Werte etwas anders zu sein:
Chrome Web-Inspektor für www.google.de: ~30ms
Chrome Web-Inspektor für google.de Suchanfrage: 40-120ms
Da werd ich nicht richtig schlau draus.
In Firefox (mit Firebug/Net) übrigens für alles ungefähr 60ms “Waiting”.
Wenn man die Latenz von Webservern messen möchte, dann sollte man am besten auch ein Werkzeug verwenden, was dafür geeignet ist. Ping ist als grober Schätzer für die Reaktionsfreudigkeit eines Servers und der Netzwerkgeschwindigkeit sicherlich ganz brauchbar, aber letztlich sollte man dann wohl doch einen HTTP-Request messen. Als Spezialwerkzeug habe ich httping entdeckt. Komischerweiser läuft das bei mir unter Mac OS X nicht, obwohl es sogar einen Macport gibt, also habe ich es unter Parallels in Ubuntu installiert.
Hier meine Werte für www.google.de von meinen lokalen Rechner:
ping (Mac OS X): 45 ms
ping (Ubuntu): 46 ms
httping (Ubuntu): 107 ms
Firefox-Firebug-Latenz (Mac OS X): 67 ms
Firefox-Firebug-Latenz (Ubuntu): 70 ms
Safari-Web-Inspector-Latenz (Mac OS X): 62 ms
Hier meine Werte für www.google.de von meinen Server:
ping: 21 ms
httping: 57 ms
Bleibt natürlich jetzt die Frage, warum die Messung von httping mehr als 50% über den Messungen von Firebug und Web-Inspector liegt. Um die Verwirrung komplett zu machen gibt es noch ein Tool namens http_ping was nach zehn Durchläufen folgende Ausgabe produziert:
total min/avg/max = 145.87/150.391/159.634 ms
connect min/avg/max = 44.252/45.0303/45.66 ms
response min/avg/max = 53.593/56.5586/63.886 ms
data min/avg/max = 46.943/48.802/56.268 ms
Es lassen sich drei Sachen hierbei beobachten. Die durchschnittliche Connect-Zeit stimmt genau mit der Ping-Zeit überein, die Summe aus Connect-Zeit und und Response-Zeit stimmt in etwa mit dem Wert von httping überein und die Response-Zeit wiederum stimmt annähernd mit dem Safari-Webinspector-Wert überein (auch wenn 6 ms zugegebenermaßen eine signifikante Abweichung sind).
Man könnte also vermuten, dass die Connect-Zeit die Dauer zwischen dem Absenden des Requests und dem Ankommen des Bestätigungspakets ist. Gemäß dieser Logik würde der Web-Inspector dann also die Connect-Zeit weglassen und nur die Response-Zeit darstellen. Die Summe aus Response-Zeit und Data-Zeit stimmt nämlich auch sehr stark mit der Summe der Latenz und der Datenübertragung im Web-Inspector überein. Natürlich eine reine Mutmaßung, ich denke ich werde die Tage mal ein Posting in die entsprechenden Mailinglisten schreiben.