1

У меня есть два приложения, которые обмениваются данными через UDP на одном и том же хосте, и я хотел бы отправлять пакеты с различными задержками (дрожанием), но не из пакетов заказов. У меня есть это правило для интерфейса обратной связи:переупорядочивающие пакеты интерфейса netec

sudo tc qdisc add dev lo root handle 1: netem delay 10ms 100ms 

Это похоже на успешное создание дрожания; тем не менее, есть пакеты заказов. В принципе, я хотел бы получить пакеты на стороне получателя в том порядке, в котором они отправляются от отправителя, с разной задержкой, т. е. с дрожанием.

Я пробовал некоторые основные команды переупорядочения. Когда я использую переупорядочить 100%, он выполняет переупорядочение, но в этом случае нет дрожания. Если я использую команду переупорядочения с чем-то меньшим, чем 100%, тогда есть пакеты без заказов.

Это говорит here, что если выполнить следующую команду, пакеты будут оставаться в порядке:

sudo tc qdisc add dev lo parent 1:1 pfifo limit 1000 

Но я все еще получаю из пакетов заказа. Буду признателен за любую оказанную помощь.

+0

Кстати, как вы настроили эмуляцию на том же хосте? (что есть 'lo' и' handle 1' и как я могу их добавить?) Я пытаюсь сделать то же самое. – mucaho

ответ

0

(§ 1) Согласно официальной документации - delay section этот код
# tc qdisc change dev eth0 root netem delay 100ms 10ms.

... приводит к тому, дополнительная задержка будет 100мс ± 10 м

В вашем коде второй ms аргумент командной строки больше первого.


(§ 2) Кроме того, под packet re-ordering section этот код
# tc qdisc change dev eth0 root netem delay 100ms 75ms

... вызовет некоторое изменение порядка. Если первый пакет получает случайную задержку в 100 мс (100 мс - 0 мс джиттер), а второй пакет отправляется через 1 мс и получает задержку в 50 мс (100 мс - 50 мс дрожание); второй пакет будет отправлен первым.


Образованные догадка: (не проверял)
Переключите положение ваших последних двух аргументов из
sudo tc qdisc add dev lo root handle 1: netem delay 10ms 100ms
в
sudo tc qdisc add dev lo root handle 1: netem delay 100ms 10ms

Хотя согласно (§ 2) все еще возможно, что ваши пакеты могут быть переупорядочены, если вы u отправляйте их обратно друг другу в возрасте до 20 мс: 1-й пакет получает 100 + 10 = 110 мс, второй пакет, который вы отправляете через 1 мс, получает 100-10 = 90 мс; Второй пакет поступит до 1-го.

+0

Спасибо за ответ - похоже, не удается избежать переупорядочения пакетов с помощью netem. Я пытался имитировать сценарии реального мира, где дрожание происходит довольно часто, но не так много переупорядочения пакетов. – Volverine