Auf der Linux Plumbers Conference 2019 haben Entwickler einen neuen Code-Ansatz für Multipath-TCP (MPTCP) vorgestellt, der nach über zehn Jahren Entwicklungsgeschichte nun ernsthaft den Weg in den offiziellen Linux-Kernel anstrebt. Zentrale Entwickler des Linux-Netzwerkstacks waren bei der Präsentation anwesend und zeigten sich offen gegenüber dem Vorhaben.
Multipath-TCP erlaubt es einem Gerät, gleichzeitig mehrere Netzwerkverbindungen zu nutzen oder transparent zwischen ihnen zu wechseln. Für mobile Geräte bedeutet das: Verlässt ein Nutzer den WLAN-Bereich, schaltet das Betriebssystem ohne Unterbrechung auf Mobilfunk um, ohne dass laufende Anwendungen davon etwas bemerken. Video-Streaming-Dienste und Online-Spiele profitieren davon direkt, weil Verbindungsabbrüche entfallen. Mobilfunkstandard 5G schreibt MPTCP-Unterstützung als Pflicht vor. Einige Anbieter Linux-basierter Mobilgeräte setzen daher bereits seit Jahren ältere MPTCP-Patches ein.
Neuer Ansatz statt zehn Jahre alter Patches
Der auf der Konferenz vorgestellte Code ist nicht identisch mit den Arbeiten des Linux Kernel MultiPath TCP Project, das seit 2009 an einer Implementierung arbeitet. Stattdessen haben andere Entwickler, darunter erfahrene Kernel-Hacker, einen deutlich schlanker gehaltenen Ansatz erarbeitet. Bewusst beschränkt sich diese neue Implementierung auf die wichtigsten MPTCP-Grundfunktionen, um die Code-Begutachtung vor der Kernel-Aufnahme zu erleichtern. Konkret unterstützt der neue Code nur das neuere RFC 6824bis (auch MPTCP v1 genannt); das ältere, von der IETF bereits abgesegnete RFC 6824 bleibt zunächst außen vor.
Auch die Kernel-Entwickler selbst stellten Bedingungen. David S. Miller, Betreuer des Netzwerk-Subsystems, machte klar, dass neue Features grundsätzlich IPv6 von Anfang an beherrschen müssen. Der bisherige MPTCP-Code unterstützt nur IPv4 und muss das nachholen. Ein verbindlicher Zeitplan für die Aufnahme in den Kernel steht noch aus; grundlegende Hilfstechniken haben die Entwickler aber bereits in aktuelle Kernelversionen eingebracht. Hintergründe zum Ansatz und den Plänen stehen im GitHub-Wiki des Projekts sowie in den Präsentationsfolien der Konferenz.

