9 votos

¿Cómo puede android mantener una conexión TCP al cambiar de proveedor de la red?

Tengo curiosidad sobre cómo android puede mantener una conexión TCP viva mientras estoy cambiando de 3G (datos móviles) WiFi y viceversa.

Te estoy pidiendo esto después de que vi que tenía una secuencia ininterrumpida de radio pensado TuneIn radio.

¿llama que válido sólo para TuneIn (a través de una solución de código) o es una característica interesante de la API de Android?

Gracias de antemano por cualquier ayuda.

--mi crimen es la curiosidad :)

7voto

Floern Puntos 266

Una conexión TCP no puede ser mantenido con vida durante un cambio de la red, ya que obtener una nueva dirección IP, haciendo que todas las conexiones que se termina.

TCP se basa en IP para obtener los datos entregados. Si usted cambia de redes también puede cambiar su dirección IP pública que es utilizado por la conexión TCP para dejar TuneIn entregar los datos a usted. Esto invalida la conexión actual y obliga a establecer una nueva.

Pero todavía hay una oportunidad de conseguir un ininterrumpido flujo de audio. El TuneIn app más probable es que los búferes de la corriente de los dos o tres segundos para compensar la conexión de hipo o incluso una reconexión.

4voto

behzad Puntos 21

Uno de los más recientes soluciones a este problema es MPTCP (Multi-Path TCP) . Pero esta es también aún no están ampliamente compatible (de Apple iOS7 apoya Multipath TCP para su tráfico generado por Siri).

MPTCP puede establecer múltiples sub conexiones TCP y si es compatible con los dispositivos en una conexión, La conexión puede mantenerse incluso si tu IP cambia (de Wifi a 3G/4G y viceversa).

Si usted quiere saber más acerca de MPTCP, lea el siguiente artículo: http://queue.acm.org/detail.cfm?id=2591369

3voto

user26270 Puntos 1460

Mientras que las respuestas dadas hasta ahora se cumplen en la práctica actual y, ciertamente, cuando se cambia entre su proveedor de internet móvil y hogar del proveedor de internet, IPv4 e IPv6 tienen soluciones de movilidad, IPv4 por la extensión y el IPv6 de forma nativa. Permiten a un usuario móvil estática casa dirección IP dinámico y un móvil de la dirección IP que permite conexiones TCP se mantiene mientras se mueve de una red a otra. Los detalles se pueden encontrar en el Rfc a continuación:

Wikipedia

Mobile IP para IPv4 RFC

IPv6 RFC

Tan lejos como el actual de la implementación de estas soluciones de movilidad de ir, yo no soy consciente de ninguna, y yo no soy capaz de encontrar más información. Supongo IPv4 de la movilidad de la solución es demasiado engorroso para implementar (fue una idea de último momento, después de todo) y no hay suficientes direcciones IPv4 a ir todo como es, y mucho menos para móviles de ahí el pesado NAT utilización, de modo que no va a ser nunca utilizado. Como para IPv6 y las razones de su falta de implementación generalizada es más difícil especular sobre, me imagino que con mucho de la web todavía en IPv4 y por lo tanto el uso pesado de IPv4 a IPv6 de la traducción, la solución móvil podría ser difícil de implementar en este entorno. Independientemente, incluso si un proveedor de telefonía móvil no soporta el anterior, tanto en su casa y móvil proveedor necesitan algún tipo de apoyo, y el hogar de los Isp no tienen ningún incentivo monetario en este sentido.

TL;DR conexiones TCP hacer pausa en su teléfono cuando el cambio de redes (y por lo tanto los proveedores de la red); sin embargo, existen soluciones de movilidad que solucionar este problema, pero no han sido implementados (al menos no publicamente).

PS UN mejor prueba de la conexión TCP rotura es de voz o video llamada (más datos obviamente). La música y las películas se pueden almacenar en búfer y la dirección IP de la transición no es de llamar la atención; sin embargo, las llamadas no.

1voto

Kibber Puntos 31

No hay ninguna manera de mantener viva una conexión TCP si cambia su dirección IP (y cambiará al pasar de 3G a WiFi). Aunque no necesitan conexión ininterrumpida para reproducción ininterrumpida - aplicaciones más "de radio" prebuffer algunos datos para mantener la música incluso cuando se pierde la conexión durante un tiempo.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X