Netem - как задерживать пакеты, отправленные / полученные от некоторого хоста

Вы можете попытаться создать сеанс dbus вручную, введя команду:

eval `dbus-launch --sh-syntax`

это установит переменную среды DBUS_SESSION_BUS_PID (как а также другие). Теперь у вас должна быть возможность запустить команду xfconf-query .

После того, как вы закончите, вы можете "выйти" из этого сеанса с помощью:

kill -HUP $DBUS_SESSION_BUS_PID
0
22.03.2018, 22:01
1 ответ

Существует несколько хороших источников информации о том, как ввести задержку для входящих и исходящих пакетов. На этой вики-странице NetEm много информации. См. раздел «1.1 Эмуляция задержек глобальной сети» для получения информации о задержке исходящих пакетов и «2.3 Как я могу использовать netem для входящего трафика?» для входящих пакетов. Я попробовал их на своей установке, и у меня не было проблем с их работой.

Базовая задержка:

# netperf -H $my_ip -t TCP_RR -P 0 -- -r 64 -o RT_LATENCY
21.800

Задержка 100 мс только на стороне клиента (B):

# tc qdisc add dev $my_interface root netem delay 100ms

Результат:

# netperf -H $my_ip -t TCP_RR -P 0 -- -r 64 -o RT_LATENCY
102184.355

Задержка 100 мс только на стороне клиента (A):

Во-первых, создайте псевдо промежуточный функциональный блок -устройство IFB (Ethernet-мост также будет работать):

# modprobe ifb
# ip link set dev ifb0 up

Затем перенаправьте весь входящий трафик, чтобы сначала пройти через устройство IFB:

# tc qdisc add dev $my_interface ingress
# tc filter add dev $my_interface parent ffff: protocol ip u32 match u32 0 0 flowid 1:1 action mirred egress redirect dev ifb0

Теперь просто добавьте задержку для исходящего трафика устройства IFB, который теперь является входящим трафиком для моего _интерфейса:

# tc qdisc add dev ifb0 root netem delay 100ms

Результат:

# netperf -H $my_ip -t TCP_RR -P 0 -- -r 64 -o RT_LATENCY
154442.238

Применяя оба результата из:

# netperf -H $my_ip -t TCP_RR -P 0 -- -r 64 -o RT_LATENCY
333803.282

Как видите, задержка больше, чем добавленные 100 мс (или 200 мс в последнем примере )+ базовая задержка. NetEm вызывает задержку в определенном месте канала, поэтому более длительная, чем ожидалось, задержка может быть побочным эффектом, если задержка.

2
28.01.2020, 02:43

Теги

Похожие вопросы