Viele Wege direkt zum Ziel

Multi-Path TCP im Einsatz

Multi-Path-TCP (MPTCP) bündelt mehrere Internet-Verbindungen, etwa per WLAN und per LTE übers Mobilfunknetz. Bislang galt: Es gibt nur eine TCP-Verbindung zwischen zwei Systemen, etwa einem Smartphone und einem Web-Server. Das ist mit MPTCP Vergangenheit. Wir zeigen, wie das funktioniert.

MPTCP-Schaubild von Cisco

© Cisco

MPTCP-Schaubild von Cisco

Wer mit Notebook, Smartphone oder Tablet-Rechner unterwegs ist, kennt das Problem zur Genüge: Beim Surfen im Internet, bei einem Datei-Download oder mitten in einem Telefonat über einen Voice-over-IP-Dienst wie Skype bricht plötzlich die Verbindung ab. Dieses Phänomen tritt vorzugsweise dann auf, wenn der Nutzer den Standort wechselt. Manchmal funktioniert das Weiterreichen (Handover) der Verbindung von einer Mobilfunkzelle zur nächsten nicht, in einem anderen Fall verweigert ein Wireless-LAN-Access-Point wegen Überlastung den Dienst und kappt die Connection. Das ist ärgerlich. Der Nutzer muss sich nochmals bei einem Server oder Online-Dienst einloggen und eine neue Session starten. Besonders nervig sind solche Unterbrechungen, wenn ein voluminöser Datei-Download nach dem Aufbau einer neuen TCP-Sitzung nicht fortgesetzt wird.

Störend ist die Beschränkung auf eine einzelne TCP-Session auch deshalb, weil die meisten Smartphones, Notebooks und Tablet-Rechner mittlerweile mindestens zwei Verbindungswege unterstützen und über entsprechende Netzwerkschnittstellen verfügen: einen WLAN-Adapter und ein Interface für 3G- oder 4G-Mobilfunknetze auf Grundlage von UMTS oder LTE (Long-Term Evolution). Bei Notebooks kommt meist noch ein RJ-45-Interface hinzu, über das der Rechner in ein drahtgebundenes lokales Netz (LAN, Local Area Network) eingebunden werden kann. Das heißt, eigentlich müsste es möglich sein, für eine TCP-Verbindung zwei dieser Netzwerkschnittstellen gleichzeitig zu nutzen.

Dies würde Probleme mit Verbindungsabbrüchen auf elegante Weise lösen: Steht beispielsweise eine WLAN-Connection nicht mehr zur Verbindung, springt das Mobilfunknetz ein. Ein weiterer Vorteil der Bündelung von zwei Übertragungskanälen: Die Bandbreite beider addiert sich. Das wirkt sich etwa aus, wenn ein Nutzer große Datenmengen wie einen Film herunterlädt. Der lässt sich dank MPTCP relativ zügig auf ein Tablet transferieren, ohne lange Wartzeiten und ohne das Mobilfunk-Datenkontingent allzu stark zu strapazieren.

TCP: Zwei Adressen - mehr geht nicht!

Doch in der Praxis klappt das nicht. Der Grund ist TCP - das Transmission Control Protocol. Es wurde in den 70er-Jahren des letzten Jahrhunderts entwickelt, also der Urzeit des Internets. Damals gab es noch nicht einmal PCs. Daher stellte es auch kein Problem dar, dass eine TCP-Verbindung an die zwei IP-Adressen der beiden Host-Systeme gebunden ist, die miteinander kommunizieren. Jede IP-Adresse wiederum wird einer einzelnen Schnittstelle zugeordnet, also beispielweise dem Wireless-LAN-Interface. Sobald sich die Adresse eines der beiden Hosts ändert, bricht die Verbindung ab und muss neu aufgebaut werden. Ein weiteres Manko von TCP: Das Protokoll ist nicht für ein Load Balancing (Lastausgleich) ausgelegt. Ist etwa ein Netzwerkpfade überlastet, kann TCP nicht ohne Weiteres auf einen anderen umschalten. Das ist der Grund, warum sich zwei oder mehr TCP-Verbindungen nicht bündeln lassen.

Einen Ausweg bietet Multi-Path TCP (MPTCP). Die Erweiterung des traditionellen TCP-Protokolls ermöglicht es Hosts, mehrere Anschlüsse parallel für eine Verbindung zu nutzen und beliebig zwischen diesen Schnittstellen hin- und herzuwechseln. Wer sich beispielsweise in einem Internet-Cafe mit einem kostenlosen WLAN-Zugang aufhält, kann von seinem Smartphone aus parallel über Mobilfunk und das Wireless LAN auf einen Server zugreifen. Weder die Anwendung auf dem Mobiltelefon noch die Prozesse auf dem Server bekommen davon etwas mit.

Der Grund dafür ist, dass MPTCP nur kleine Änderungen an TCP vornimmt. Die anderen Bestandteile des Übertragungsmechanismus bleiben davon unberührt. Das gilt für die IP-Schicht und das IP-Adressformat, außerdem für das User Datagram Protocol (UDP). Im Gegensatz zu UDP ist TCP für Anwendungen prädestiniert, bei denen es auf eine hohe Zuverlässigkeit ankommt. Das sind beispielsweise Browser-Sitzungen mittels HTTP und HTTPS, Telnet- und FTP-Sessions sowie die Übermittlung von E-Mails mithilfe des Simple Mail Transfer Protocol (SMTP).

Apple iPhone

© Apple

Apples iPhone gehört zu den wenigen Endgeräten, die derzeit Multi-Path- TCP schon verstehen. Die Smartphones des Herstellers verwenden MPTCP, damit die Sprachsteuerungsfunktion Siri ohne Unterbrechungen zur Verfügung steht.

Eine Sitzung - mehrere Pfade

Multi-Path TCP macht nun Schluss mit der ehernen Regel: Zwei IP-Adressen, zwei Ports. Vielmehr werden nun die Datenpakete auf unterschiedliche Pfade (Subflows) verteilt. Für die Anwendung ist dies transparent. Im Detail läuft bei MPTCP der Aufbau einer Verbindung folgendermaßen: Zunächst wird ein erster Subflow eingerichtet, erst danach werden weitere Subflows etabliert. Jeder MPTCP-Flow ähnelt für sich genommen einer normalen TCP-Sitzung: Der Client sendet zu Beginn ein SYN-Paket und erhält vom Server eine Bestätigung in Form eines SYN/ACK-Pakets. Nach diesem Handschlag (Handshake) startet die Übermittlung der Datenpakete. Eine Sitzung kann auf zwei Arten beendet werden: Entweder auf abrupte Weise, indem der Server ein RST-Paket (Reset) sendet, oder durch Übermittlung eines FIN-Pakets.

MPTCP-Version

© Citrix

Das Bild zeigt, welche Änderung bei der MPTCPVersion eines TCP-Stacks wichtig ist: Es kommt ein modifizierter Transport- Layer zum Einsatz.

Dazu folgendes Beispiel aus der Praxis: Ein Smartphone will via Multi-Path TCP auf einen Web-Server zugreifen. Dazu verwendet das Mobiltelefon zunächst die Mobilfunkschnittstelle (3G oder 4G). Zuerst sendet das Endgerät das SYN-Paket zum Server. Dieses enthält zusätzlich eine MP_CAPABLE-Option, die der Multi Path Session Manager bereitstellt. Dadurch macht das Smartphone deutlich, dass es MPTCP unterstützt. Antwortet der Server ebenfalls mit einem SYN/ACK-Paket mit MP_CAPABLE-Option, wird zwischen beiden Hosts eine Multi-Path-TCP-Session gestartet, wohlgemerkt zunächst nur via Mobilfunknetz. Möchte das Smartphone im Rahmen der bestehenden Session den Web-Server zusätzlich über seine WLAN-Schnittstelle kontaktieren, muss ein weiterer Subflow aufgebaut werden. Dazu ist erneut ein kompletter Handshake erforderlich, in diesem Fall mit der MP_JOIN-Option. Sie teilt dem Server mit, dass zum ersten Subflow ein weiterer hinzukommt, der zur selben MPTCP-Sitzung gehört. Der Server antwortet dementsprechend mit einem MP_JOIN im SYN/ACK-Paket. Analog wie bei TCP funktioniert der Abbau einer Verbindung - mit einem Vierwege-Handshake-Verfahren.

Subflow

© Cisco

Aufbau einer Verbindung bei MPTCP: Beim ersten Subflow werden SYNbeziehungsweise SYN/ ACK-Informationen mit der MP_CAPABLE-Option zwischen den beiden Hosts übermittelt. Bei jedem weiteren Subflow kommt die MP_JOINOption zum Zuge.

Eine Besonderheit von MPTCP ist, dass nach Bedarf Subflows hinzugefügt oder entfernt werden können. Für die Anwendungen ist das ohne Belang. Sie bemerken höchstens, dass bei Wegfall eines Subflows eine geringere Bandbreite zur Verfügung steht. Damit die TCP-Pakete, die über mehrere Kanäle (Subflows) transportiert werden, immer in der richtigen Reihenfolge beim Empfänger ankommen, greift MPTPC auf die Sequence Numbers im Kopffeld (Header) von TCP zurück. Je nach Sequence Number werden die Pakete vor der Auslieferung an den Adressaten sortiert.

Problempunkt: Ein ganzer Zoo von Middleboxen

Zu den Faktoren, die dem flächendecken Einsatz von MPTCP im Wege stehen, zählen sogenannte Middleboxen. Dies sind Systeme, die in Firmennetzen oder von Service-Providern eingesetzt werden. Solche Geräte sind etwa Firewalls, NAT-Systeme (Networks Address Translation), Voice-over-IP-Gateways und WAN-Optimierungssysteme. Middleboxen haben die fatale Eigenschaft, den TCP-Header zu verändern, teilweise sogar die Nutzlast in TCP-Paketen. Das führt dazu, dass ein Teil der Middleboxen mit Multi-Path TCP nicht zurechtkommt und es nicht als legitime Erweiterung von TCP akzeptiert. Die Folge ist, dass MPTCP-Verbindungen entweder gar nicht zustande kommen oder eine enttäuschende Performance aufweisen.

Laut Olivier Bonaventure ist im Internet ein ganzer "Zoo" solcher Middleboxen anzutreffen. Bonaventure und sein Team von der Katholischen Universität im belgischen Löwen (Universite? Catholique de Louvain) gehört zu den Fachleuten, die maßgeblich an der Entwicklung von MPTCP beteiligt sind.

Er schätzt, dass es mittlerweile ebenso viele solcher Systeme gib wie Router. Multi-Path TCP ist so ausgelegt, dass alle Signalisierungsinformationen den Transfer durch diese Middleboxen unbeschadet überstehen. Um Probleme mit Middleboxen zu vermeiden, die Manipulationen an TCP-Paketen vornehmen, hat das Team um Bonaventure zusätzlich den Einsatz von Protokollkonvertern vorgeschlagen. Diese MiMMox-Konverter (Multipath in the Middlebox) unterstützen sowohl MPTCP- als auch TCP-Verbindungen. Mit ihrer Hilfe nutzen Clients wie Smartphones die Vorteile von Multi-Path TCP, wenn sie eine Verbindung zu einem Server aufbauen, der MPTCP unterstützt. Die MiMMox-Konverter lassen sich auf Standard-Servern in einer Cloud-Computing-Umgebung implementieren, aber auch auf Vermittlungssystemen in den Netzen von Service-Providern. Nach Einschätzung von Bonaventure können diese Konverter eine zentrale Rolle dabei spielen, MPTCP zum Durchbruch zu verhelfen.

Einsatzszenarien von Multi-Path TCP

Derzeit sind aus Sicht seiner Protagonisten vor allem zwei Anwendungsfelder für Multi-Path TCP relevant: der Einsatz im Zusammenspiel mit Smartphones sowie MPTCP im Rechenzentrum. Zunächst zum ersten Fall. MTCP-Verbindungen haben für mobile Endgeräte, die über eine WLAN-Schnittstelle und ein 3G- oder 4G-Mobilfunk-Interface verfügen, mehrere Vorteile.

Middleboxen

© Cisco / Katholische Universität Löwen)

Damit MPTCP in der Praxis funktioniert, müssen nicht nur Router, sondern auch sogenannte Middleboxen das Protokoll unterstützen. Middleboxen sind beispielsweise Firewalls und Gateways.

Zum einen steigen durch die parallele Nutzung beider Schnittstellen die Übertagungsraten. Dies ist dann von Vorteil, wenn ein Nutzer große Dateien von einem Server herunterlädt. Zum anderen lässt sich eine der beiden Schnittstellen als Backup verwenden, wenn die andere nicht zur Verfügung steht. Das ist etwa dann der Fall sein, wenn der Nutzer den Übertragungsbereich eines WLANs verlässt. Dann springt die Mobilfunkverbindung ein.

Allerdings dauert es laut Versuchen der UCL zwischen 0,5 bis 1,5 Sekunden, bis der Reservekanal seine volle Datenrate erreicht. Bei Tests der UCL, in denen ein Endgerät von einer leitungsgebundenen DSL-Verbindung zu einer 3G-Mobilfunk-Connection wechselte, betrug das Handover auf der Anwendungsebene rund 3 Sekunden. Dies ist nach Angaben der Forscher darauf zurückzuführen, dass das Smartphone in diesem Fall erst aus dem Energiesparmodus aufgeweckt werden muss.

Endgerät noch rar gesät

Als erster Anbieter von Smartphones setzt Apple MPTC ein. Das Unternehmen hat die TCP-Erweiterung in die aktuelle Betriebssystemversion iOS 7 integriert. Allerdings nutzt iOS Multi-Path TCP derzeit nur dazu, um den Sprachassistenten Siri ohne Unterbrechung zur Verfügung zu stellen. Andere Funktionen, wie etwa das Bündeln von Kanälen bei Downloads, unterstützt iOS noch nicht.

In Android-Mobilsystemen wird MPTCP offiziell noch nicht unterstützt. Allerdings haben einige Entwickler MPTCP in Eigenregie auf einige Smartphones unter Android portiert.

Sie griffen dabei auf die Linux-Kernel-Implementierung der Uni Löwen zurück. Eine Liste mit den derzeit unterstützten Endgeräten ist auf folgender Internetseite zu finden: http://multipath-tcp.org/pmwiki.php/Users/Android.

Neben dem Samsung Galaxy S2 sind dort die Google-Smartphones der Reihe Nexus S, Nexus 4 und Nexus 5 zu finden. Auch für das Samsung Galaxy Note soll in Kürze eine MPTCP-Software zur Verfügung stehen.

Multi-Path-TCP im Datacenter

Die erweiterte Version von TCP lässt sich nach Angaben von Olivier Bonaventure zudem in Rechenzentren einsetzen. So gelang es den Forschern der belgischen Universität im vergangenen Jahr, mithilfe von Multi-Path TCP das Load-Balancing (Lastausgleich) zwischen zwei Hochleistungsservern zu verbessern. Die beiden Systeme der Reihe HP DL380p G7 3 waren jeweils mit drei Dual-Port-Netzwerkkarten (Intel 82599EB 10Gb Ethernet) mit 10 Gigabit pro Sekunde ausgestattet. Mithilfe der Linux-Implementierung von MPTCP ließ sich die Kapazität dieser Karten zu einer einzelnen Verbindung mit 53 Gigabit pro Sekunde kombinieren.

interaktive Karte

© Multipath-TCP.org

Noch wenige Zugriffe: Eine interaktive Karte zeigt, wie viele Clients, die MPTCP unterstützen, der Internet- Seite der Multipath-TCP. org seit 2012 einen Besuch abgestattet haben.

Dadurch ist es möglich, innerhalb kürzester Zeit Daten aus dem Arbeitsspeicher eines - überlasteten - Servers zu einem zweiten System zu transferieren. Herkömmliche Load-Balancing-Verfahren arbeiten weniger effizient, vor allem dann, wenn Links mit unterschiedlichen Verzögerungszeiten und Bandbreiten eingesetzt werden. Dann müssen TCP-Pakete in vielen Fällen mehrfach übertragen werden. Das geht zu Lasten der Leistung. Bei MPTCP ist das nicht der Fall: Es können Verbindungen und Links unterschiedlicher Art zu einer TCP-Connection kombiniert werden - ohne Performance-Einbußen. Bei Ausfall eines Interfaces arbeiten die verbliebenen Schnittstellen nahtlos weiter.

Nach Angaben der UCL ist derzeit eine MPTCP-Implementierung auf Basis von FreeBSD in Arbeit, die für den Einsatz auf Servern vorgesehen ist. Zudem hat Citrix in seine Application Delivery Controller (ADC) der Reihe Netscaler MTPCP integriert. ADC stellen Load-Balancing-Funktionen bereit und entlasten dadurch Web-Server.

Neben den Apples iOS, Citrix Netscaler, dem FreeBSDProjekt und der Linux-Implementierung der UCL sind MTPC-Projekte und entsprechende Produkte bislang allerdings rar gesät. So hat F5, ein Hersteller von Netzwerksystemen, Anfang 2014 in seine BIGIP-Plattform (Version 11.4) Multi-Path TCP integriert. Auch bei BIG-IP handelt es sich um eine Systemfamilie, die ein Server-Load-Balancing ermöglicht. Andere Anbieter halten sich mit offiziellen Ankündigungen noch zurück. Allerdings ist davon auszugehen, dass Hersteller von Mobilgeräten wie Samsung und Netzwerkfirmen wie Cisco Systems sich bereits intensiv mit Multi-Path TCP beschäftigen.

Mehr zum Thema

internet, webdesign, seo, suchmaschine, googlebot, website, cloaking
IT-Strategien

Dieser Beitrag erläutert, wie Sie einen kompetenten SEO-Experten finden, der Sie dabei unterstützt, im Web gefunden zu werden.
Renovierung im Rechenzentrum
IT-Infrastruktur

Die Modernisierung eines Rechenzentrums ist in der Regel ein kostenintensives Großprojekt, bei dem Planung und Koordination ebenso wichtig sind wie…
Thin Clients ersetzen PCs
IT-Praxis

Sowohl die IT- als auch die Business-Verantwortlichen deutscher Unternehmen haben den Nutzen von Virtualized Desktop und Client Computing (VCC)…
Die richtige Customer Experience schaffen
IT-Praxis

Noch nie war es so einfach, Kunden zu verlieren. Denn der Wettbewerb wartet nur darauf, dass Unternehmen und ihre Mitarbeiter negative…
HP Photosmart 7520
Drucklösungen

WLAN- oder netzwerkfähige Drucker arbeiten auch mit Ihren mobilen Gadgets zusammen. Lesen Sie, wie Sie vom Smartphone oder Tablet aus drucken…