Как имитировать потерю пакетов на устройстве Android?

11

Я хотел бы смоделировать потерю пакетов на рутованном устройстве Android, чтобы увидеть, как различные уровни влияют на качество потокового видео. Я пробовал netem и iptables, но безуспешно

Нетем :

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

Неправильный формат или можно как-то добавить поддержку 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.

Есть ли другая альтернатива в Android?

Fejd
источник
3
Хороший вопрос! Моя мысль: в качестве альтернативы, возможно, подключиться к маршрутизатору Wi-Fi и ограничить подключение там, если ваш маршрутизатор обеспечивает качество обслуживания или подобное?
Брайан Денни
В некотором роде, вот как перехватывать
Брайан Денни
Конфигурация маршрутизатора, вероятно, является правильным способом сделать это, и у меня есть эта симуляция на месте с помощью WANem . Тем не менее, я хотел бы иметь портативный способ, который не зависит от конфигурации сети или сетевого интерфейса в этом отношении. По сути, я хочу провести модульное тестирование, где я запускаю потоковое видео, увеличиваю потери пакетов и снова запускаю то же видео.
Fejd

Ответы:

2

Поскольку ваше устройство рутировано, вы можете установить прокси. Я использовал TransparentProxy . Затем настройте прокси на другом компьютере в вашей локальной сети. Направьте TransparentProxy на этот прокси и затем установите прокси на газ. Несколько прокси, которые могут работать, включают CharlesProxy или Service Capture .

Если это не сработает, вы можете перейти на уровень маршрутизатора. Машина под управлением BSD или Linux может функционировать как маршрутизатор. Или вы можете получить виртуальное устройство или загрузочный компакт-диск, чтобы сделать это для вас.

Джим Маккит
источник
2

Задать задержку и скорость сети можно с помощью функций управления эмулятором стандартных инструментов разработчика Android.

При использовании eclipse: выберите Window \ Open Perspective \ DDMS. На экране вы увидите вкладку «Управление эмулятором». На этой вкладке вы найдете параметры скорости и задержки. «Настройки телефонии» в самом верху имеют выбор скорости и задержки.

Существуют и другие способы изменения этих настроек (включая их использование в настройках эмулятора), но это самый простой способ получить доступ к настройкам.

козявка
источник