netem
Встроенный в ядро Linux инструмент, который намеренно ухудшает сеть: добавляет задержку, потери пакетов, джиттер, переупорядочивание и дублирование на интерфейсе. Всё ради тестирования.
Включается как дисциплина очереди через tc: команда tc qdisc add dev eth0 root netem delay 200ms loss 3% превращает лабораторную машину в нечто, ведущее себя как мобильное соединение в туннеле метро. Задержке можно задать разброс и корреляцию, чтобы она менялась правдоподобно, а не оставалась константой. Смысл в том, что почти вся разработка идёт в сетях с нулевой задержкой и нулевыми потерями, а это скрывает как раз те сбои, которые бьют по пользователям: слишком жёсткие таймауты, протоколы, рассчитывающие на упорядоченную доставку, и клиенты, никогда не проверявшиеся на медленном сервере. Фильтры tc позволяют затронуть лишь часть трафика.