Vor mehr als zehn Jahren veröffentlichten Forschende von Google eine Arbeit mit dem scheinbar ketzerischen Titel „More Bandwidth Doesn’t Matter (much)“, (Mehr Bandbreite macht keinen [großen] Unterschied). In einem Blogbeitrag haben wir dargelegt, dass es schneller ist, 1 TB an Daten von San Francisco nach London zu fliegen, als die Daten über eine 100 Mbit/s-Verbindung hochzuladen. Leider hat sich daran nicht viel geändert. Wenn Verbraucher einen Internetvertrag für zu Hause wählen, bewerten sie die Internet-Performance wahrscheinlich anhand der Bandbreite. Mehr Bandbreite heißt höhere Geschwindigkeit, zumindest laut der Werbung. In diesem Artikel zeigen wir mithilfe von realen Daten, dass sowohl die Bandbreite als auch – Vorsicht, Spoiler! – die Latenz die Geschwindigkeit einer Internetverbindung beeinflussen. Am Ende werden Sie verstehen, warum Cloudflare so sehr darauf bedacht ist, die Latenz an so vielen Stellen wie möglich zu reduzieren.
Der Beitrag lässt sich ungefähr wie folgt zusammenfassen:
● Die Performance von Netzwerken kann auf viele Arten bewertet werden.
● Wie „gut“ sie ist, hängt von der Anwendung ab: Was für eine Applikation ein guter Wert ist, kann für eine andere nutzlos sein.
● Zahlen zu „Geschwindigkeit“ können täuschen – nicht zuletzt, weil keine einzelne Kennzahl die Performance aller Anwendungen exakt abbilden kann.
Zum besseren Verständnis sollten zunächst die Begriffe „Bandbreite“ und „Latenz“ definiert werden. Die Bandbreite ist die Datenmenge, die zu einem bestimmten Zeitpunkt übertragen werden kann. Es handelt sich um den Maximaldurchsatz oder die Kapazität der Kommunikationsverbindung zwischen zwei Servern, die Daten austauschen möchten. Der „Engpass“ ist die Stelle im Netzwerk, an der die Verbindung durch die verfügbare Bandbreite eingeschränkt ist. In der Regel ist dies die „letzte Meile“, also entweder die Leitung, die ein Haus an das Internet anbindet, oder das Modem oder der Router im Haus selbst.
Wenn man sich das Internet als eine Datenautobahn vorstellt, ist die Bandbreite die Anzahl der Fahrspuren auf der Straße. Je breiter die Straße, desto mehr Verkehr kann zu jeder Zeit über die Autobahn geleitet werden. Bandbreite ist nützlich, um große Dateien herunterzuladen, z. B. Updates für das Betriebssystem und große Spiele. Wir verbrauchen Bandbreite beim Streamen von Videos, auch wenn es weniger ist, als Sie vielleicht denken. Netflix empfiehlt eine Bandbreite von 15 Mbit/s für einen Stream in 4K/Ultra HD. Bei einer Verbindung mit 1 Gbit/s könnten mehr als sechzig Netflix-Serien in 4K gleichzeitig gestreamt werden.
Die Latenz hingegen ist die Zeit, die Daten brauchen, um sich durch das Internet zu bewegen. Um bei unserem Vergleich mit der Autobahn zu bleiben: Latenz ist die Geschwindigkeit, mit der sich die Fahrzeuge auf der Autobahn fortbewegen. Je schneller der Verkehr fließt, desto schneller kommen die Fahrer ans Ziel. Gemessen wird die Latenz in der Zahl der Millisekunden, die ein Datenpaket braucht, um zwischen einem Client (z. B. Ihrem Laptop) und einem Server übertragen zu werden. In der Praxis müssen wir die Latenz als Paketumlaufzeit (Round-Trip Time – RTT) zwischen Client und Server messen, da jedes Gerät seine eigene unabhängige Uhr hat und es schwierig ist, die Latenz nur in einer Richtung zu messen. Wenn eine Tennisspielerin zum Üben den Ball gegen eine Wand schlägt, ist die Paketumflaufzeit die Zeit, die der Tennisball in der Luft war. Im Glasfaser-Backbone des Internets werden Daten mit einer Geschwindigkeit von fast 200.000 Kilometern pro Sekunde übertragen, während sie am Glas im Inneren der Glasfaserkabel abprallen. Ganz schön schnell!
Verbindungen mit geringer Latenz sind wichtig für das Gaming, denn hier müssen winzige Datenmengen schnell einen anderen Computer erreichen, z. B. wenn der Spieler seine Position ändert. Und wir bemerken eine hohe Latenz, wenn sie unsere Videokonferenzen ruckelig und unerfreulich macht.
Zwar können wir das Licht nicht viel schneller durch das Glas schicken, aber wir können die Latenz reduzieren, indem wir den Inhalt näher an die Nutzer bringen und so den Transportweg für die Daten verkürzen. Das schafft Cloudflare mit Standorten in mehr als 285 Städtenweltweit: Wenn Nutzer auf der Internetautobahn versuchen, Cloudflare zu erreichen, möchten wir direkt an der nächsten Ausfahrt sein.
Die Begriffe Bandbreite, Kapazität und Maximaldurchsatz unterscheiden sich geringfügig, sind sich aber nahe genug, um synonym verwendet werden zu können. Irrtümlicherweise wird im Zusammenhang mit Internettarifen der Begriff „Geschwindigkeit“ für Bandbreite verwendet, aber „Geschwindigkeit“ sagt nichts über die Latenz zwischen Ihren Geräten und den Servern aus, mit denen sich diese verbinden. Mehr dazu später. Im Moment nutzen wir das Internet nicht nur für Gaming und Video-Streaming, sondern noch für vieles mehr. Unter anderem rufen wir damit viele normale Webseiten auf.
In dem Google-Bericht aus dem Jahr 2010 hat der Autor das Laden von Webseiten simuliert und dabei den Durchsatz und die Latenz der Verbindung variiert. Das Ergebnis war, dass oberhalb von etwa 5 Mbit/s die Seite nicht viel schneller geladen wird. Eine Erhöhung der Bandbreite von 1 Mbit/s auf 2 Mbit/s verbesserte die Seitenladezeit um fast 40 %. Eine Erhöhung von 5 Mbit/s auf 6 Mbit/s verbesserte die Ladezeit um weniger als 5 %.
Etwas Interessantes passierte, wenn man die Latenz (die Paketumlaufzeit; Round-Trip Time – RTT) variierte: Die Seitenladezeit verbesserte sich linear und proportional. Für jeweils 20 Millisekunden reduzierter Latenz verbesserte sich die Ladezeit um etwa 10 %.
Schauen wir uns an, wie das mit empirischen Daten in der Praxis aussieht. Nachfolgend sehen Sie ein Diagramm aus einer ausgezeichneten aktuellen Arbeit von zwei Forschenden des MIT. Unter Verwendung von Daten aus dem Programm Measuring Broadband America der US-Regulierungsbehörde FCC haben diese Forschenden ein Diagramm erstellt, das ähnliche Ergebnisse wie die Simulation von 2010 zeigt. Diese sind im folgenden Diagramm zusammengefasst. Zwar hat sich der Punkt, an dem der Nutzen von mehr Bandbreite abnimmt, nach oben verschoben (auf etwa 20 Mbit/s), aber der Gesamttrend blieb unverändert.
Wir haben diese Analyse mit Schwerpunkt auf der Latenz anhand unserer eigenen Cloudflare-Daten wiederholt. Die Ergebnisse sind im nächsten Diagramm zusammengefasst und zeigen ein vertrautes Muster. Für alle 200 Millisekunden Latenz, die wir einsparen können, verkürzen wir die Seitenladezeit um über 1 Sekunde. Diese Korrelation gilt bei einer Latenz von 950 Millisekunden. ebenso wie bei einer Latenz von 50 Millisekunden.
Es gibt einige Gründe, aus denen die Latenz bei den zum Laden von Seiten erforderlichen Transaktionen eine Rolle spielt. Wenn Nutzer sich auf eine Website zugreifen, stellt ihr Browser als ersten Schritt eine sichere Verbindung her, um die Website zu authentifizieren und sich zu vergewissern, dass die Daten verschlüsselt werden. Die Protokolle hierfür sind TCP und TLS oder QUIC(das standardmäßig verschlüsselt ist). Wie viele Nachrichten ausgetauscht werden müssen, um eine sichere Verbindung herzustellen, ist unterschiedlich. Doch ein Aspekt der Aufbauphase ist allen gemeinsam: Die Latenz spielt die größte Rolle.
Hinzu kommt: Wenn wir eine Webseite laden, nachdem wir die Verschlüsselung hergestellt und die Autorisierung der Website verifiziert haben, verlangen wir vom Browser möglicherweise, dass er Hunderte von verschiedenen Dateien auf Dutzenden von Domains lädt. Einige dieser Dateien können parallel geladen werden, andere hingegen nur nacheinander. Da der Browser all diese verschiedenen Dateien rasch kompilieren muss, entscheidet die Geschwindigkeit, mit der er zum Server und zurück gelangen kann, darüber, wie schnell er die Seite zusammenstellt. Die Dateien sind oft recht klein, aber es sind sehr viele.
Die folgende Tabelle zeigt die ersten Schritte, die der Browser beim Laden von cnn.com durchführt. Zuerst kommt die Phase des Verbindungs-Handshakes, gefolgt von der 301-Umleitung zu www.cnn.com, die einen völlig neuen Verbindungs-Handshake erfordert, bevor der Browser in Schritt zwei die Haupt-HTML-Seite laden kann. Erst dann, mehr als 1 Sekunde nach Beginn des Ladevorgangs, erfährt er von allen JavaScript-Dateien, die er zum Rendern der Seite benötigt. Die Dateien 3–19 werden meist über dieselbe Verbindung angefordert, aber erst nach der vollständigen Auslieferung der HTML-Datei bereitgestellt. Die Dateien 8, 9 und 10 werden über separate Verbindungen angefordert (und erfordern jeweils einen Handshake). Die Dateien 20–27 sind alle auf früheren Dateien blockiert und benötigen ebenfalls neue Verbindungen. Sie können erst gestartet werden, wenn der Browser die vorherige Datei vom Server zurückerhalten hat und sie ausführt. Es gibt 650 Assets in dieser Seitenladung, und die Blockierung erfolgt während des gesamten Ladevorgangs. Warum ist das wichtig? Eine geringere Latenz führt dazu, dass jede Datei schneller geladen wird, wodurch wiederum andere Dateien schneller freigegeben werden, und so weiter.
Die Protokolle nutzen die gesamte verfügbare Bandbreite, schließen aber oft eine Übertragung ab, bevor diese Bandbreite aufgebraucht ist. Es ist also kein Wunder, dass mehr Bandbreite das Laden der Seite nicht beschleunigt, eine geringere Latenz hingegen schon. Es gibt Entwicklungen wie Early Hints, die helfen, indem sie Browser früher über Abhängigkeiten informieren und es ihnen ermöglichen, eine Vorab-Verbindung zu Servern herzustellen oder Ressourcen vorab abzurufen, die nicht zwingend geordnet sein müssen. Doch ist dies für viele Websites im Internet auch heute noch ein Problem.
In letzter Zeit haben sich Internetforschende darauf konzentriert, mithilfe der Erkenntnisse über die Beziehung zwischen Durchsatz und Latenz die Internet Quality of Experience (QoE) zu verbessern. Eine Arbeit der Broadband Internet Technical Advisory Group (BITAG) fasst dies zusammen:
Aber wir wissen jetzt, dass nicht nur ein höherer Durchsatz wichtig ist, sondern auch eine durchgängig niedrige Latenz. Leider war die Art und Weise, wie wir Latenz bisher verstanden und beschrieben haben, fehlerhaft, und unsere Latenzmessungen und -metriken waren nicht auf die QoE des Endnutzers abgestimmt.
Was das Ganze noch verwirrender macht, ist der Unterschied zwischen der Latenz bei einer Internetverbindung im Ruhezustand und der Latenz, die unter Arbeitsbedingungen gemessen wird, wenn sich also viele Verbindungen die Netzwerkressourcen teilen. Wir nennen diese Latenz „Arbeitslatenz“ oder „Reaktionsfähigkeit“. Reaktionsfähigkeit ist das, was der Nutzer als Geschwindigkeit seiner Internetverbindung wahrnimmt. Daher muss diese spezielle Latenz verstanden und gemessen werden.
Eine Internetverbindung kann eine geringe Reaktionsfähigkeit aufweisen, wenn die Datenübermittlung in Puffern verzögert wird (selbst wenn die Latenz ohne Last niedrig ist). Wird eine große Datei heruntergeladen, z. B. ein Update für das Betriebssystem, überträgt der übermittelnde Server die Datei eventuell mit einem höheren Durchsatz, als die Internetverbindung verkraften kann. Doch das ist in Ordnung. Zusätzliche Bits der Datei werden in einem Puffer gespeichert, bis sie an der Reihe sind, die „Schleuse“ zu durchlaufen. Wenn die Autobahn um zusätzliche Fahrspuren erweitert wird, kann sie von mehr Autos genutzt werden. Das ist eine gute Strategie, wenn Geschwindigkeit keine Rolle spielt.
Nehmen wir an, Clara sieht sich einen Nachrichten-Stream an und befindet sich dabei auch in einer Videokonferenz. Wenn Clara das Video anschaut, holt ihr Browser eine Reihe von Inhalten ab. Diese werden in verschiedenen Puffern auf dem Weg vom Host zum Browser gespeichert. Diese Puffer enthalten auch Datenpakete, die zu der Konferenz gehören. Befinden sich die Daten, die während der Konferenz erzeugt werden, im selben Puffer wie die Videodateien, füllen die Videodateien den Puffer und verzögern auch die Zustellung der Pakete für die Konferenz. Je größer die Puffer, desto länger wartet Clara auf die Pakete der Videokonferenz.
Cloudflare macht „Geschwindigkeit“ verständlich
Wir möchten Nutzern die Stärken und Schwächen ihrer Verbindung verständlich machen. Dafür gibt es seit Kurzem die Aggregated Internet Measurement (AIM) Scores in unserem eigenen „Geschwindigkeitstest“. Diese Scores ersetzen die technischen Metriken durch ein praktisches, leicht verständliches Bild davon, womit Ihre Verbindung gut zurechtkommt und womit sie sich schwer tut. Wir möchten auch mehr Daten aus unserem Geschwindigkeitstest sammeln, um die Seitenladezeiten (Page Load Times oder kurz PLT) zu verfolgen und ihren Zusammenhang mit der Reduzierung der Arbeitslatenz zu beobachten. Diese Zahlen werden bald in unserem Geschwindigkeitstest zu finden sein.
Wir alle nutzen unsere Internetverbindungen auf unterschiedliche Weise, aber wir alle möchten, dass sie so schnell wie möglich sind. Da immer mehr Dienste in die Cloud verlagert werden (z. B. Word-Dokumente, Musik, Websites, Kommunikation), spielt die Geschwindigkeit, mit der wir auf diese Dienste zugreifen können, eine entscheidende Rolle. Bandbreite ist zwar wichtig, aber noch wichtiger ist die Latenz der Verbindung, die eigentliche „Geschwindigkeit“ des Internets.
Bei Cloudflare arbeiten wir jeden Tag daran, ein leistungsfähigeres Internet zu schaffen. Möchten Sie mithelfen? Dann bewerben Sie sich hier für eine unserer offenen Stellen in der Entwicklung.