Wie kann Android eine TCP-Verbindung am Leben erhalten, wenn der Netzwerkanbieter gewechselt wird?

7

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.

Ist das nur für TuneIn gültig (über eine Code-Problemumgehung) oder ist es eine coole Funktion in den Android-API-Aufrufen?

Vielen Dank im Voraus für jede Hilfe.

- Mein Verbrechen ist das der Neugier :)

tux_mind
quelle

Antworten:

5

Eine TCP-Verbindung kann während eines Netzwerkwechsels nicht am Leben erhalten werden, da Sie eine neue IP-Adresse erhalten und 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 liefert. Dies macht die aktuelle Verbindung ungültig und zwingt Sie, eine neue herzustellen.

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

Floern
quelle
TuneIn Radio kann in den Einstellungen bis zu 30 Sekunden puffern, sodass ein Wechsel von WiFi zu 3G und umgekehrt die Spielbarkeit nicht beeinträchtigt. Nur wenn Sie eine schwache 3G-Verbindung hätten, würden Sie Pausen oder andere Probleme mit dem Spiel bemerken.
HasH_BrowN
3

Während die bisher gegebenen Antworten in der gegenwärtigen Praxis und sicherlich beim Wechsel zwischen Ihrem mobilen Internetanbieter und dem Heiminternetanbieter zutreffen, verfügen sowohl IPv4 als auch IPv6 über Mobilitätslösungen, IPv4 per Erweiterung und IPv6 nativ. Sie ermöglichen es einem mobilen Benutzer, eine statische Heim-IP-Adresse und eine dynamische mobile IP-Adresse zu haben, mit denen TCP-Verbindungen aufrechterhalten werden können, während von Netzwerk zu Netzwerk gewechselt wird. 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 annehmen, dass die Lösung der IPv4-Mobilität zu umständlich für die Bereitstellung ist (es war immerhin ein nachträglicher Gedanke) und es nicht genügend IPv4-Adressen gibt, um sie zu umgehen, geschweige denn für Mobilgeräte, daher die hohe NAT-Auslastung, sodass dies niemals der Fall sein wird verwendet werden. Was IPv6 betrifft und die Gründe für das Fehlen einer weit verbreiteten Bereitstellung schwieriger zu spekulieren sind, würde ich vermuten, dass die mobile Lösung schwierig zu implementieren sein könnte, da ein Großteil des Webs noch auf IPv4 läuft und daher die Übersetzung von IPv4 in IPv6 häufig verwendet wird diese Umgebung. Unabhängig davon, selbst wenn ein Mobilfunkanbieter das oben Genannte unterstützen würde, würden sowohl Ihr Heim- als auch Ihr Mobilfunkanbieter ein gewisses Maß an Unterstützung benötigen, und Heim-ISPs tun dies nicht.

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 beheben, aber noch nicht bereitgestellt wurden (zumindest nicht in großem Umfang).

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

Fred Thomsen
quelle
3

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

MPTCP kann mehrere Sub-TCP-Verbindungen herstellen. Wenn dies von Geräten in einer Verbindung unterstützt wird, kann die Verbindung auch dann beibehalten werden, wenn sich Ihre IP-Adresse ändert (Wifi 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

behzad
quelle
1

Es gibt keine Möglichkeit, eine TCP-Verbindung aufrechtzuerhalten, wenn sich Ihre IP-Adresse ändert (und dies ändert sich, wenn Sie von 3G zu WiFi wechseln). Sie benötigen jedoch keine ununterbrochene Verbindung für eine ununterbrochene Wiedergabe - die meisten "Radio" -Apps puffern einige Daten vor, damit die Musik auch dann wiedergegeben wird, wenn Sie für eine Weile die Verbindung verlieren.

Kibber
quelle