Pregunta Datos de enlace descendente de la ruta de Android a través de WiFi y datos de enlace ascendente a través de la red móvil


En Android, es posible enrutar todo el tráfico de datos entrantes a través de WiFi y todo el tráfico saliente a través de la red móvil.

Encontré una respuesta en stackoverflow Cómo funcionan tanto Wifi como Mobile Data simultáneamente en Android para el dispositivo OBD2. Pero sí enruta los datos para un solo host.

También hay una aplicación. SuperDownload que usa wifi y red móvil para lograr velocidades de descarga más rápidas. Estoy tratando de hacer algo como esto.

En android WiFi y red móvil no funciona simultáneamente. ¿Es posible hacer que funcione rooteando el dispositivo? (SuperDownload requiere root).


6
2017-07-14 04:52


origen


Respuestas:


No es fácil lo que harías.

Primero en primer lugar, debe mantener ambas interfaces de red, esto es posible pero es un truco porque Android no lo admite. Para ello debes encenderlo.

connectivityManager.startUsingNetworkFeature(ConnectivityManager.TYPE_MOBILE, "feature");

El nombre de la función está relacionado con su hardware, debería ser HabilitarHIPRI. El problema es que después de que enciendes la interfaz, esto disminuirá después de un tiempo, por esta razón debes realizar una solicitud http cada 20-30 segundos para mantenerla activa. De esta manera la interfaz permanecerá encendida.

Para la ruta, debes agregar una ruta estática

connectivityManager.requestRouteToHost(ConnectivityManager.TYPE_MOBILE_HIPRI, ipAddressInt);

Donde el ipAddressInt es la dirección que desea conectar en 3G. Normalmente, las rutas se envían a través de WiFi, por lo que para su GET (descarga en WiFi) no hay problema, pero debe agregar una ruta para subir.

Y ahora hay 2 problemas,

  • primero es que de esta manera en 3G la resolución de DNS desaparece, puede trabajar en IP pero debe tener un servidor con IP estática,
  • segundo, no estoy seguro de si funciona en un puerto específico (esa es la única idea que tengo en este momento para hacerlo ...).

Por supuesto deberías implementar otro hilo que mantenga viva la interfaz.


1
2017-09-15 08:26



Creo que es imposible en absoluto. Piense, ¿cómo su destino puede encontrar la ruta de respuestas para entregarlo?

Permítanme ser más claro, cuando traten de buscar algo de la red (por ejemplo, una página web), deben poner su dirección IP y su dirección IP de destino en un paquete y enviarlo a la red (wifi o 3g) y el La red lo enrutará a su destino. Cuando su respuesta estuvo lista, el destino invierte el proceso y coloca su dirección IP como dirección de destino y su dirección IP como origen y la libera a la red. Nuevamente, la red utilizando esta información lo encontrará y le entregará un paquete. Por lo tanto, nunca puede enviar información a una red (por ejemplo, wifi) y recibir la respuesta de otra red (por ejemplo, 3g).

Nota: Si todos los enrutadores intermedios se dieron cuenta de su objetivo (enviar y recibir desde y hacia dos redes diferentes), será posible hacerlo. En la actualidad, en algunos protocolos de enrutamiento, especialmente en enrutadores de borde, que suelen usar los gobiernos, se trabaja en algo similar a su objetivo para permitirles superar la velocidad limitada de los medios de transmisión, p. Fibra óptica (para tener más de 10/100 gbps).


1
2017-09-15 07:42



Preguntas populares