Емуляція широкої затримки мережі
Це найпростіший приклад, він просто додає фіксовану кількість затримки до всіх пакетів, що виходять з локальної Ethernet.
# tc qdisc add dev eth0 root netem delay 100ms
Тепер простий тест пінг для розміщення в локальній мережі повинен показати збільшення 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% від останнього. Це не справжня статистична кореляція, а наближення.
Затримка розподілу
Зазвичай затримка в мережі неоднакова. Для опису варіації затримки частіше використовувати щось на зразок звичайного розподілу. Нетемна дисципліна може скласти таблицю, щоб вказати нерівномірний розподіл.
# tc qdisc change dev eth0 root netem delay 100ms 20ms distribution normal
Фактичні таблиці (нормальні, парето, паротонормальні) генеруються як частина компіляції iproute2 та розміщуються в / usr / lib / tc; тому можливо з певними зусиллями зробити власний розподіл на основі експериментальних даних.
tc
це навіть є на сучасних системах SLES та RHEL.