Как имитировать пропускную способность и задержку в localhost с помощью dummynet (ipfw)

Я использую веб-сервер в localhost:8080 и я пытаюсь использовать dummynet (ipfw) для имитации задержки и низкой пропускной способности этого сервера, но почему-то я не могу заставить его работать.

Когда я использую команду

sudo ipfw add pipe 1 all from any to any
sudo ipfw pipe 1 config bw 400Kbit/s delay 100ms

а затем пинговать локальный хост

ping localhost

Я получаю эти результаты:

PING localhost (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=686.512 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=848.309 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=409.890 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=410.988 ms
64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=424.014 ms
64 bytes from 127.0.0.1: icmp_seq=5 ttl=64 time=411.002 ms
64 bytes from 127.0.0.1: icmp_seq=6 ttl=64 time=409.175 ms
64 bytes from 127.0.0.1: icmp_seq=7 ttl=64 time=417.517 ms

Мои проблемы:

  1. Почему время обхода пинга (~400 мс) примерно в 4 раза больше, чем указанная мной задержка (100 мс)

  2. Ограничение пропускной способности, похоже, не работает. Когда я пытаюсь загрузить тестовый файл 6 Мб с адреса http://localhost:8080/Testfile в Chrome я получаю файл мгновенно, а не в желаемом темпе

1 ответ

Не могу ответить #1, но для #2 - у вас могут быть более четкие результаты тестирования вашей загрузки с другого компьютера в вашей сети.

Вы бы установили драйверы dummynet для своей сетевой карты. Моя теория такова: если ваш браузер связывается с localhost, он может обойти эту сетевую карту (или ловушки, в которых dummynet вводит задержку?)

По сути, я не смог заставить dummynet вводить задержку чему-либо на одном и том же сервере. Например, у меня есть две службы, и они мгновенно общаются друг с другом. Все остальное на другой машине получает время ожидания.

Вы можете попробовать Fiddler - http://helephant.com/2012/07/11/simulating-network-latency-with-fiddler/ - который, похоже, также вносит задержку в localhost.

Другие вопросы по тегам