Примеры
Эмуляция задержек глобальной сети
Это самый простой пример, он просто добавляет фиксированную задержку ко всем пакетам, выходящим из локального Ethernet.
# tc qdisc add dev eth0 root netem delay 100ms
Теперь простой тест ping для размещения в локальной сети должен показать увеличение на 100 миллисекунд. Задержка ограничена разрешающей способностью ядра (Гц). В большинстве систем 2.4 системные часы работают с частотой 100 Гц, что допускает задержки с шагом 10 мс. На 2.6 это значение параметра конфигурации составляет от 1000 до 100 Гц.
Более поздние примеры просто меняют параметры без перезагрузки qdisc
Реальные глобальные сети показывают изменчивость, поэтому можно добавлять случайные отклонения.
# tc qdisc change dev eth0 root netem delay 100ms 10ms
Это приводит к тому, что добавленная задержка составляет 100 ± 10 мс. Изменение задержки в сети не является чисто случайным, поэтому для эмуляции также существует значение корреляции.
# tc qdisc change dev eth0 root netem delay 100ms 10ms 25%
Это приводит к тому, что добавленная задержка составляет 100 ± 10 мс, а следующий случайный элемент зависит от 25% от последнего. Это не истинная статистическая корреляция, а приблизительное значение.
Задержка распределения
Как правило, задержка в сети не является равномерной. Для описания изменения задержки чаще используется нечто вроде нормального распределения. Дисциплина netem может взять таблицу для определения неравномерного распределения.
# tc qdisc change dev eth0 root netem delay 100ms 20ms distribution normal
Фактические таблицы (normal, pareto, paretonormal) генерируются как часть компиляции iproute2 и помещаются в / usr / lib / tc; так что можно с некоторыми усилиями создать собственный дистрибутив на основе экспериментальных данных.
Потеря пакета
Случайная потеря пакета указывается в команде 'tc' в процентах. Наименьшее возможное ненулевое значение:
2 −32 = 0,0000000232%
# tc qdisc change dev eth0 root netem loss 0.1%
Это приводит к случайному выбрасыванию 1/10 процента пакетов (то есть 1 из 1000).
Также может быть добавлена необязательная корреляция. Это заставляет генератор случайных чисел быть менее случайным и может использоваться для эмуляции потерь пакета.
# tc qdisc change dev eth0 root netem loss 0.3% 25%
Это приведет к потере 0,3% пакетов, и каждая последующая вероятность зависит на четверть от последней.
Проба n = 0,25 × Проба n-1 + 0,75 × Случайная