Вы могли бы дать dummynet выстрел:
Добавление задержки
Мы можем контролировать трафик, добавляя правила, которые соответствуют конкретным данным пакета, а затем отправлять пакеты через канал Dummynet с добавленной задержкой или потерей пакетов. Например, мы могли бы добавить задержку в 100 мс для всего трафика, направляющегося на xkcd.com, примерно так:
$ sudo ipfw pipe 1 config delay 100ms
$ sudo ipfw add 100 pipe 1 ip from any to xkcd.com
00100 pipe 1 ip from any to any dst-ip 107.6.106.82
Первая команда здесь настраивает канал Dummynet с идентификатором 1, создавая канал, если он еще не существует. Вторая команда создает правило с номером 100, которое сопоставляет пакеты с желаемым адресом назначения и направляет их по каналу. Обратите внимание, что любое правило, которое пытается передать пакеты через несуществующий канал, блокирует трафик и выдает ошибку, поэтому не забудьте настроить каналы перед их использованием. Повторное использование списка позволяет нам просматривать обновленный набор правил.
$ sudo ipfw list
00100 pipe 1 ip from any to 107.6.106.82
65535 allow ip from any to any
Pinging xkcd.com должен показывать время прохождения сигнала в обоих направлениях 100 мс плюс любое значение фактической текущей задержки через соединение.
$ ping xkcd.com
PING xkcd.com (107.6.106.82): 56 data bytes
64 bytes from 107.6.106.82: icmp_seq=0 ttl=55 time=117.092 ms
64 bytes from 107.6.106.82: icmp_seq=1 ttl=55 time=124.583 ms
64 bytes from 107.6.106.82: icmp_seq=2 ttl=55 time=117.916 ms
64 bytes from 107.6.106.82: icmp_seq=3 ttl=55 time=121.067 ms
В большинстве случаев мы хотели бы смоделировать полнодуплексное соединение, добавив соответствующее правило для пакетов, поступающих с удаленного хоста, чтобы задержка применялась в обоих направлениях. Когда мы закончим играть с нашим новым правилом, мы можем удалить его и канал следующим образом.
$ sudo ipfw delete 100
$ sudo ipfw pipe 1 delete
источник
Похоже, проект dummynet включает в себя двоичные файлы для Windows. Чтобы адаптировать команды, достаточно просто запустить команды ipfw
из командной строки с повышенными привилегиями. Например:
ipfw pipe 1 config delay 100ms
ipfw add 100 pipe 1 ip from any to server-ip
ipfw add 101 pipe 1 ip from server-ip to any