Das liegt nicht daran, dass TCP perfekt wäre oder Informatiker Schwierigkeiten hätten, Alternativen zu finden; es liegt daran, dass diese Alternativen zu schwierig zu testen sind. Router in Rechenzentrumsnetzwerken haben ihre Traffic-Management-Protokolle fest einprogrammiert. Das Testen eines neuen Protokolls bedeutet, die vorhandene Netzwerkhardware durch rekonfigurierbare Chips zu ersetzen, was einen hohen Programmieraufwand erfordert, oder durch softwaregesteuerte Router, die so langsam sind, dass groß angelegte Tests unmöglich sind.
Forscher des MIT-Labors für Informatik und Künstliche Intelligenz haben ein System zum Testen neuer Protokolle für das Datenverkehrsmanagement vorgestellt, das keine Änderungen an der Netzwerkhardware erfordert. Es arbeitet mit realistischen Geschwindigkeiten und ist etwa 20-mal schneller als softwaregesteuerte Routernetzwerke.
Das System verwendet ein kompaktes und effizientes Rechenmodell eines Netzwerks, in dem das neue Protokoll ausgeführt wird. Dabei werden virtuelle Datenpakete zwischen virtuellen Routern hin- und hergeleitet. Basierend auf diesem Modell planen die Forscher Übertragungen im realen Netzwerk, um dieselben Datenverkehrsmuster zu erzeugen. Anschließend können sie reale Webanwendungen auf Netzwerkservern ausführen und genau verstehen, wie sich das neue Protokoll auf deren Leistung auswirkt.
„Das funktioniert so: Wenn ein Endpunkt ein Datenpaket senden möchte, sendet er zunächst eine Anfrage an diesen zentralen Emulator“, erklärt Amy Ousterhout, Doktorandin der Elektrotechnik und Informatik (EECS) und Erstautorin der neuen Studie. „Der Emulator bildet das gewünschte Schema in Software für das jeweilige Netzwerk nach. Anschließend teilt er dem Endpunkt mit, wann das Paket gesendet werden soll, damit es sein Ziel über ein Netzwerk erreicht, in dem das programmierte Schema ausgeführt wird.“
Ousterhout verfasste die Studie mit Unterstützung ihres Betreuers Hari Balakrishnan, Professor für Elektrotechnik und Informatik an der Fujitsu University, Jonathan Perry, ebenfalls Doktorand der EECS, und Petr Lapukhov von Facebook.
Verkehrssteuerung:
Jedes Datenpaket, das über ein Computernetzwerk gesendet wird, besteht aus zwei Teilen: dem Header und der Nutzlast. Die Nutzlast enthält die Daten, die für den Empfänger relevant sind: Bilddaten, Audiodaten, Textdaten usw. Der Header enthält die Absenderadresse, die Empfängeradresse und weitere Informationen, die Router und Endbenutzer zur Steuerung der Übertragungen nutzen können.
Wenn mehrere Pakete gleichzeitig einen Router erreichen, werden sie in eine Warteschlange gestellt und nacheinander verarbeitet. Bei TCP werden nachfolgende Pakete einfach verworfen, wenn die Warteschlange zu lang wird und sie ihr Ziel nie erreichen. Sobald ein sendender Computer feststellt, dass Pakete verloren gehen, halbiert er seine Übertragungsrate und erhöht sie dann langsam wieder.
Ein besseres Protokoll könnte es einem Router ermöglichen, Bits in den Paket-Headern zu verschieben, um Endbenutzer über eine Netzwerküberlastung zu informieren, damit diese ihre Übertragungsrate erhöhen können, bevor Pakete verloren gehen. Alternativ könnte es verschiedenen Pakettypen unterschiedliche Prioritäten zuweisen und die Übertragungsrate aufrechterhalten, solange noch Datenverkehr mit hoher Priorität gesendet wird. Solche Strategien sind für Informatiker interessant, um sie in realen Netzwerken zu testen.
Schnelle Simulation:
Das von MIT-Forschern entwickelte System Flexplane ermöglicht es dem Router, der ein Netzwerk mit dem neuen Protokoll modelliert, lediglich die Paketkopfdaten zu verwenden und so den Rechenaufwand zu reduzieren. Tatsächlich werden nicht unbedingt alle Kopfdaten genutzt, sondern nur die für die Implementierung des neuen Protokolls relevanten Felder.
Möchte ein Server im realen Netzwerk Daten senden, sendet er eine Anfrage an den Emulator. Dieser sendet ein Dummy-Paket über ein virtuelles Netzwerk, das dem neuen Protokoll unterliegt. Sobald das Dummy-Paket sein Ziel erreicht hat, signalisiert der Emulator dem realen Server, dass er mit dem Senden seines eigentlichen Pakets fortfahren kann.
Wenn beim Durchlaufen des virtuellen Netzwerks einige Header-Bits eines Dummy-Pakets invertiert werden, invertiert der reale Server die entsprechenden Bits im realen Paket, bevor er es sendet. Falls ein Router im virtuellen Netzwerk überlastet ist und ein Dummy-Paket verwirft, wird das zugehörige reale Paket nicht gesendet. Und falls im virtuellen Netzwerk ein Dummy-Paket mit höherer Priorität einen Router erreicht, nachdem ein Paket mit niedrigerer Priorität ein solches in der Warteschlange überholt hat, wird im realen Netzwerk das Paket mit höherer Priorität zuerst gesendet.
Die Netzwerkserver empfangen daher dieselben Pakete in derselben Reihenfolge, als würden die Router selbst das neue Protokoll verwenden. Zwischen der ersten Anfrage des ersten Servers und dem ersten Sendebefehl des Emulators besteht eine kurze Verzögerung. Danach senden die Server die Pakete jedoch mit normaler Netzwerkgeschwindigkeit.
Die Möglichkeit, echte Server mit realen Webanwendungen zu nutzen, bietet einen erheblichen Vorteil gegenüber einer anderen gängigen Methode zum Testen neuer Netzwerkmanagementsysteme: der Softwaresimulation, die im Allgemeinen statistische Muster verwendet, um das Anwendungsverhalten auf recheneffiziente Weise zu charakterisieren.
Autor: Larry Hardesty, MIT-Pressestelle
Das Transmission Control Protocol, kurz TCP, das den Datenverkehr im Internet steuert, wurde erstmals 1974 vorgeschlagen. Eine Version von TCP regelt noch immer den Datentransfer in den meisten großen Rechenzentren, den riesigen Serveranlagen, die von bekannten Websites betrieben werden.
