¿Cómo simulo la pérdida de paquetes en un dispositivo Android?

11

Me gustaría simular la pérdida de paquetes en un dispositivo Android rooteado para ver cómo los diferentes niveles afectan la calidad de la transmisión de video. He probado netem e iptables, sin éxito:

netem :

# tc qdisc change dev rmnet0 root netem loss 0.1%
tc qdisc change dev rmnet0 root netem loss 0.1%
Android does not support qdisc 'netem'
Garbage instead of arguments "loss ...". Try "tc qdisc help".

¿El formato es incorrecto o es posible agregar soporte de netem de alguna manera?

iptables :

# iptables -A INPUT -m statistic --mode random --probability 0.01 -j DROP
iptables -A INPUT -m statistic --mode random --probability 0.01 -j DROP
iptables v1.3.7: Couldn't find match `statistic'

Try `iptables -h' or 'iptables --help' for more information.

¿Hay alguna otra alternativa en Android?

fejd
fuente
3
¡Buena pregunta! Mi pensamiento: como alternativa, ¿tal vez conectarse a un enrutador wifi y acelerar la conexión allí si su enrutador ofrece calidad de servicio o similar?
Bryan Denny
Algo relacionado, así es cómo capturar paquetes en un dispositivo Android rooteado
Bryan Denny
La configuración del enrutador es probablemente la forma correcta de hacerlo, y tengo esa simulación en su lugar usando WANem . Sin embargo, me gustaría tener una forma portátil que no dependa de la configuración de la red o de la interfaz de red. Básicamente, quiero hacer una prueba unitaria donde ejecuto la transmisión de video, aumente la pérdida de paquetes y vuelva a ejecutar el mismo video.
febrero

Respuestas:

2

Como su dispositivo está rooteado, puede instalar un Proxy. He usado TransparentProxy . Luego configure un proxy en otra máquina en su red local. Apunte TransparentProxy a ese proxy y luego configure su Proxy para acelerar. Algunos proxies que podrían funcionar incluyen CharlesProxy o Service Capture .

Si eso no funciona, puede hacerlo desde el nivel del enrutador. Una máquina con BSD o Linux puede funcionar como un enrutador. O puede obtener un dispositivo virtual o un CD de arranque para que lo haga por usted.

Jim McKeeth
fuente
2

Es posible establecer la latencia y la velocidad de la red utilizando las funciones de control del emulador de las herramientas estándar para desarrolladores de Android.

Si usa eclipse: Seleccione Window \ Open Perspective \ DDMS En la pantalla verá una pestaña llamada "Control de emulador". En esta pestaña, encontrará las opciones de Velocidad y Latencia. La 'Configuración de telefonía' en la parte superior tiene selecciones de velocidad y latencia.

Hay otras formas de modificar esta configuración (incluidas las secuencias de comandos en la configuración de su emulador), pero esta es la forma más sencilla de acceder a la configuración.

Moco
fuente