Jak symulować utratę pakietów na urządzeniu z Androidem?

11

Chciałbym zasymulować utratę pakietów na zrootowanym urządzeniu z Androidem, aby zobaczyć, jak różne poziomy wpływają na jakość przesyłania strumieniowego wideo. Próbowałem netem i iptables, bez powodzenia:

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

Czy format jest nieprawidłowy lub czy można w jakiś sposób dodać obsługę Netem?

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.

Czy jest jakaś alternatywa dla Androida?

fejd
źródło
3
Dobre pytanie! Moja myśl: alternatywnie, może połączyć się z routerem Wi-Fi i dławić połączenie tam, jeśli router ma jakość usług lub podobne?
Bryan Denny
W pewnym sensie
Bryan Denny
Konfiguracja routera jest prawdopodobnie właściwym sposobem, aby to zrobić, i mam tę symulację za pomocą WANem . Chciałbym jednak mieć przenośny sposób, który nie zależy od konfiguracji sieci lub interfejsu sieciowego. Zasadniczo chcę zrobić test jednostkowy, w którym uruchamiam streaming wideo, zwiększam utratę pakietów i ponownie uruchamiam ten sam film.
fejd

Odpowiedzi:

2

Ponieważ urządzenie jest zrootowane, możesz zainstalować serwer proxy. Użyłem TransparentProxy . Następnie skonfiguruj serwer proxy na innym komputerze w sieci lokalnej. Wskaż Przezroczysty serwer proxy na ten serwer proxy, a następnie ustaw przepustnicę na serwerze proxy. Kilka serwerów proxy, które mogą działać, to CharlesProxy lub Service Capture .

Jeśli to nie zadziała, możesz to zrobić z poziomu routera. Maszyna z systemem BSD lub Linux może działać jako router. Możesz też dostać wirtualne urządzenie lub bootowalną płytę CD, aby zrobić to za Ciebie.

Jim McKeeth
źródło
2

Możliwe jest ustawienie opóźnienia i prędkości sieci za pomocą funkcji kontrolnych emulatora standardowych narzędzi Android Developer.

Jeśli używasz Eclipse: Wybierz Window \ Open Perspective \ DDMS Na ekranie zobaczysz zakładkę o nazwie „Emulator Control”. W tej zakładce znajdziesz opcje Prędkości i Opóźnienia. „Ustawienia telefonii” u góry mają wybór prędkości i opóźnienia.

Istnieją inne sposoby modyfikacji tych ustawień (w tym skryptowanie ich w ustawieniach emulatora), ale jest to najprostszy sposób na uzyskanie dostępu do ustawień.

Booger
źródło