Como simulo a perda de pacotes em um dispositivo Android?


11

Gostaria de simular a perda de pacotes em um dispositivo Android com raiz para ver como os diferentes níveis afetam a qualidade da transmissão de vídeo. Eu tentei netem e iptables, sem sucesso:

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".

O formato está errado ou é possível adicionar suporte ao netem de alguma forma?

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.

Existe alguma outra alternativa no Android?


3
Boa pergunta! Meu pensamento: como alternativa, talvez conecte-se a um roteador wifi e estrangule a conexão lá se o seu roteador faz qualidade de serviço ou similar?
Bryan Denny

Tipo de relacionado, aqui é como capturar pacotes em um dispositivo Android enraizada: vbsteven.be/blog/...
Bryan Denny

A configuração do roteador é provavelmente a maneira correta de fazê-lo, e eu tenho essa simulação no local usando o WANem . No entanto, eu gostaria de ter uma maneira portátil que não dependa da configuração de rede ou da interface de rede. Basicamente, quero fazer um teste de unidade em que corro o streaming de vídeo, aumente a perda de pacotes e o mesmo vídeo novamente.
fejd

Respostas:


2

Como seu dispositivo está enraizado, você pode instalar um Proxy. Eu usei o TransparentProxy . Em seguida, configure um proxy em outra máquina na sua rede local. Aponte TransparentProxy para esse proxy e defina seu Proxy como acelerador. Alguns proxies que podem funcionar incluem CharlesProxy ou Service Capture .

Se isso não funcionar, você poderá encontrá-lo no nível do roteador. Uma máquina executando BSD ou Linux pode funcionar como um roteador. Ou você pode obter um appliance virtual ou um CD inicializável para fazer isso por você.


2

É possível definir a latência e velocidade da rede usando as funções de controle do emulador das ferramentas padrão do desenvolvedor Android.

Se estiver usando o eclipse: Selecione Janela \ Abrir perspectiva \ DDMS Na tela, você verá uma guia chamada "Controle do emulador". Nesta guia, você encontrará as opções de Velocidade e latência. As 'Configurações de telefonia' na parte superior têm seleções de velocidade e latência.

Existem outras maneiras de modificar essas configurações (incluindo a criação de scripts na configuração do emulador), mas essa é a maneira mais simples de acessar as configurações.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.