Wie kann Android eine TCP-Verbindung aufrecht erhalten, wenn der Netzanbieter gewechselt wird?

Ich bin neugierig, wie Android eine TCP-Verbindung am Leben erhalten kann, während ich von 3G (mobile Daten) zu WiFi und umgekehrt wechsle.

Ich frage dies, nachdem ich gesehen habe, dass ich einen ununterbrochenen Radiostream hatte, dachte TuneIn-Radio.

Gilt das nur für TuneIn (über einen Code-Workaround) oder ist es eine coole Funktion in den Android-API-Aufrufen?

Antworten (4)

Eine TCP-Verbindung kann während eines Netzwerkwechsels nicht am Leben erhalten werden, da Sie eine neue IP-Adresse erhalten, wodurch alle Verbindungen beendet werden.

TCP baut auf IP auf, um die gelieferten Daten zu erhalten. Wenn Sie das Netzwerk wechseln, ändern Sie auch Ihre öffentliche IP-Adresse, die von der TCP-Verbindung verwendet wird, damit TuneIn Ihnen Daten liefern kann. Dadurch wird die aktuelle Verbindung ungültig und Sie müssen eine neue herstellen.

Es besteht jedoch immer noch die Möglichkeit, einen ununterbrochenen Audiostream zu erhalten. Die TuneIn-App puffert den Stream höchstwahrscheinlich für zwei oder drei Sekunden, um Verbindungsprobleme oder sogar eine erneute Verbindung auszugleichen.

TuneIn Radio kann in den Einstellungen bis zu 30 Sekunden puffern, sodass das Umschalten von WLAN auf 3G und umgekehrt die Spielbarkeit nicht unterbricht. Nur wenn Sie eine schwache 3G-Verbindung hatten, würden Sie Pausen oder andere Probleme beim Spielen bemerken.
Sie können auch UDP zum Bereitstellen von Streams verwenden.

Eine der neuesten Lösungen für dieses Problem ist MPTCP (Multi-Path TCP). Aber auch dieser wird noch nicht allgemein unterstützt (Apples iOS7 unterstützt Multipath TCP für seinen von Siri generierten Datenverkehr).

MPTCP kann mehrere Sub-TCP-Verbindungen aufbauen, und wenn dies von Geräten auf einer Verbindung unterstützt wird, kann die Verbindung auch dann aufrechterhalten werden, wenn sich Ihre IP ändert (WLAN zu 3G/4G und umgekehrt).

Wenn Sie mehr über MPTCP erfahren möchten, lesen Sie den folgenden Artikel: http://queue.acm.org/detail.cfm?id=2591369

Während die bisher gegebenen Antworten in der aktuellen Praxis und sicherlich beim Wechsel zwischen Ihrem mobilen Internetanbieter und Ihrem Heim-Internetanbieter zutreffen, verfügen sowohl IPv4 als auch IPv6 über Mobilitätslösungen, IPv4 durch Erweiterung und IPv6 nativ. Sie ermöglichen es einem mobilen Benutzer, eine statische Heim-IP-Adresse und eine dynamische mobile IP-Adresse zu haben, wodurch TCP-Verbindungen aufrechterhalten werden können, während er sich von Netzwerk zu Netzwerk bewegt. Die Details finden Sie in den folgenden RFCs:

Wikipedia

Mobile IP für IPv4-RFC

IPv6-RFC

Was den aktuellen Einsatz dieser Mobilitätslösungen betrifft, sind mir keine bekannt und ich kann keine weiteren Informationen finden. Ich würde davon ausgehen, dass die Lösung von IPv4-Mobilität zu umständlich zu implementieren ist (es war schließlich ein nachträglicher Einfall) und es nicht genügend IPv4-Adressen gibt, um sie so zu verwenden, geschweige denn für Mobilgeräte, daher die starke NAT-Nutzung, also wird sie es nie tun verwendet werden. Was IPv6 anbelangt und die Gründe für seinen Mangel an weit verbreitetem Einsatz schwieriger zu spekulieren sind, würde ich vermuten, dass die mobile Lösung schwierig zu implementieren sein könnte, da ein Großteil des Internets immer noch IPv4 verwendet und daher die IPv4-zu-IPv6-Übersetzung stark genutzt wird diese Umgebung. Selbst wenn ein Mobilfunkanbieter das oben Gesagte unterstützen würde, würden sowohl Ihr Heim- als auch Ihr Mobilfunkanbieter ein gewisses Maß an Unterstützung benötigen, und Heim-ISPs haben diesbezüglich keinen finanziellen Anreiz.

TL;DR-TCP-Verbindungen werden auf Ihrem Telefon unterbrochen, wenn Sie das Netzwerk (und damit den Netzwerkanbieter) wechseln. Es gibt jedoch Mobilitätslösungen, die dieses Problem angehen, aber sie wurden noch nicht eingesetzt (zumindest nicht weit verbreitet).

PS Ein besserer Test für das Unterbrechen der TCP-Verbindung ist ein Sprach- oder Videoanruf (offensichtlich über Daten). Musik und Filme können gepuffert werden und der Übergang der IP-Adresse wird nicht bemerkt; Anrufe können dies jedoch nicht.

Es gibt keine Möglichkeit, eine TCP-Verbindung am Leben zu erhalten, wenn sich Ihre IP-Adresse ändert (und sie ändert sich, wenn Sie von 3G zu WiFi wechseln). Sie benötigen jedoch keine ununterbrochene Verbindung für eine unterbrechungsfreie Wiedergabe - die meisten „Radio“-Apps puffern einige Daten vor, damit die Musik weiter abgespielt werden kann, auch wenn Sie die Verbindung für eine Weile verlieren.