Материал подготовлен в рамках курса «Сетевой инженер. Продвинутый уровень».
Привет, Хабр!
Знакомая картина: канал гигабитный, загружен наполовину, а стоит начать качать большой файл — и пинг под нагрузкой подскакивает с пяти миллисекунд до пятисот, видеозвонок рассыпается, игра лагает. Пропускной способности вагон, потерь нет, а задержка взлетает. И первое, что приходит в голову — «мало буфера, надо больше», — ровно неправильное.
Потому что причина в обратном. Задержка растёт именно из‑за того, что буфера слишком много. Это bufferbloat — раздутые буферы, которые копят пакеты вместо того, чтобы вовремя дать понять отправителю «притормози». Явление контринтуитивное: инженеры десятилетиями увеличивали буферы, считая, что больше памяти под пакеты — всегда лучше, и получили сеть, где под нагрузкой всё тонет в задержке.