130просмотров
6 декабря 2025 г.
Score: 143
Что такое netem
netem (аббревиатура от Network Emulator) — это qdisc (queueing discipline) в Linux — часть подсистемы управления трафиком (tc из iproute2)
Его задача симулировать реальные сетевые проблемы: задержки, потери пакетов, дубликации, неправильный порядок, ограничение пропускной способности и т.д. Это важно, когда ты тестируешь, например, протоколы, приложения или сетевые устройства, и хочешь увидеть, как они поведут себя в плохой сети. Когда и зачем использовать • Тестирование протоколов — например, TCP, QUIC, VoIP, если хочешь увидеть, как они ведут себя при потере и/или задержке. • Разработка приложений, особенно сетевых, чтобы убедиться, что сценарии «плохой сети» обрабатываются корректно. • Реалистичная нагрузка — эмуляция загруженных сетей или мобильных сетей, где часто бывают потери, задержки, «хвосты» задержек. • Обучение и демо — показать, как сеть влияет на производительность, какие паттерны возникают. Примеры • Добавить фиксированную задержку sudo tc qdisc add dev eth0 root netem delay 100ms Добавить задержку + джиттер с корреляцией. Эта команда, которая эмулирует не просто «плохую» сеть, а нестабильную сеть с памятью. Гораздо ближе к реальным условиям (например, к мобильным сетям 3G/4G/5G или перегруженным каналам). sudo tc qdisc change dev eth0 root netem delay 100ms 10ms 25%