Begriff
Multipath TCP (MPTCP)
Warum wichtig?
Dieser Begriff ist ein Knoten im SengakujiWorks-Wissensnetz. Nutze Level 0 für die erste Einordnung, Level 1 für Praxis, Level 2 für technische Struktur und Level 3 für Grenzen, Fallstricke und Expertenkontext.
Dein Handy hat WLAN (schnell, billig) und LTE (überall, teuer). Normales TCP nutzt nur eine Verbindung. Wenn du das Haus verlässt (WLAN weg), bricht der Download ab. Multipath TCP erlaubt es, beide Verbindungen gleichzeitig für denselben Datenstrom zu nutzen. Es bündelt WLAN und LTE.
- Vorteil 1 (Geduld): Wenn WLAN wegbricht, läuft es über LTE weiter (ohne Abbruch).
- Vorteil 2 (Speed): Man kann beide Leitungen addieren (100 Mbit WLAN + 50 Mbit LTE = 150 Mbit). Für die App sieht es aus wie ein TCP-Socket. Das Betriebssystem regelt das Splitting.
Merksatz: Eine Erweiterung des TCP-Protokolls, die es ermöglicht, eine einzige TCP-Verbindung über mehrere Netzwerkpfade (Interfaces) gleichzeitig zu führen, um Durchsatz und Ausfallsicherheit zu erhöhen.
- Apple iOS (Siri): Apple nutzt MPTCP seit Jahren für Siri. Damit Siri auch antwortet, wenn du gerade aus der Haustür gehst.
- 5G (ATSSS): Mobilfunker nutzen es, um Traffic nahtlos zwischen 5G und WLAN offzu-loaden.
- Kubernetes: Manche CNIs nutzen es für High Availability zwischen Nodes.
1. Subflows
MPTCP baut mehrere "Subflows" (normale TCP-Verbindungen) auf. Jeder Subflow hat eigene Sequence Numbers. MPTCP fügt einen "Data Sequence Number" (DSN) Layer hinzu, um die Daten aus den Subflows wieder richtig zusammenzusetzen.
2. Scheduler
Der Kernel muss entscheiden: "Schicke ich das Paket über WLAN oder LTE?" Scheduler-Strategien:
- MinRTT: Nimm immer den Pfad mit der niedrigsten Latenz.
- Redundant: Schicke alles über beide Pfade (Verschwendung, aber minimale Latenz -> gut für Gaming).
- Backup: Nutze LTE nur, wenn WLAN tot ist.
1. Packet Reordering & Buffer Bloat
Das größte Problem in der Produktion ist die unterschiedliche Latenz. Stell dir vor: Pfad A (WLAN) hat 10ms Latenz, Pfad B (LTE) hat 100ms. MPTCP schickt Paket 1 über A und Paket 2 über B. Paket 1 kommt sofort an. Paket 2 braucht ewig. Die App am Empfänger kann Paket 1 aber noch nicht verarbeiten, weil sie auf Paket 2 warten muss (In-Order Delivery). Das führt zu Head-of-Line Blocking im Empfangs-Puffer. Moderne MPTCP-Implementierungen nutzen extrem schlaue Vorhersage-Algorithmen, um Pakete früher über langsame Wege zu schicken, damit sie zeitgleich mit den schnellen Wegen ankommen.
2. Token-Based Authentication & ADD_ADDR
Wie verhindert man, dass ein Angreifer deine Verbindung "hijacked", indem er einfach ein neues Interface (seine IP) zum MPTCP-Strom hinzufügt?
MPTCP nutzt einen 64-Bit Token, der beim Handshake ausgetauscht wird.
Wenn ein neues Interface hinzugefügt wird (ADD_ADDR Option), muss der Absender beweisen, dass er den Token kennt (HMAC-SHA256). Das macht MPTCP deutlich sicherer gegen Session-Hijacking als klassische Roaming-Verfahren.
3. MPTCP Proxy (Zero-Rating/Bonding)
In der Industrie (z. B. bei der Bündelung von 4x LTE für TV-Live-Übertragungen) nutzt man MPTCP oft nicht End-to-End, sondern über einen MPTCP Proxy. Ein Gerät im Rucksack bündelt die 4 Leitungen via MPTCP zu einem Proxy-Server im Rechenzentrum. Ab dem Proxy geht es als ganz normales, schnelles TCP weiter zum Ziel. Dies erlaubt die Vorteile von MPTCP zu nutzen, auch wenn der Zielserver (z. B. eine alte Legacy-API) MPTCP selbst gar nicht unterstützt.
Quick-Check
Warum nutzt es nicht jeder?
Middleboxes (Firewalls) haben oft Pakete mit MPTCP-Optionen verworfen ("Kenne ich nicht -> Drop"). QUIC löst dieses Problem besser (da verschlüsseltes UDP).Multipath QUIC?
Ja, das kommt auch. QUIC hat "Connection Migration" (seriell), Multipath QUIC (parallel) ist in Arbeit.Linux?
Linux unterstützt MPTCPv1 seit Kernel 5.6 nativ. Apps müssen es aber explizit anfordern (IPPROTO_MPTCP).