Знакомая ситуация
Вы запускаете загрузку большого файла или синхронизацию облака, и вдруг звонок начинает «квакать», страницы открываются с паузой, а в игре пинг взлетает со 20 до 500 миллисекунд. Как только загрузка заканчивается, всё приходит в норму. При этом скорость по тесту хорошая, а канал вроде бы не перегружен. Это классические признаки bufferbloat, буквально «раздувания буфера».
Проблема не в нехватке скорости, а в том, как оборудование ведёт себя при её насыщении.
Термин появился в 2010 году: инженеры заметили, что рост объёмов памяти в сетевых устройствах, вместо улучшения ситуации, ухудшил её. Исторически буферы стали огромными, потому что память стала доступной, а логику управления ими никто не обновил.
Механика: очередь, которая не хочет отбрасывать
Роутер и модем принимают пакеты быстрее, чем могут отправить в узкий канал, и складывают лишние в буфер. Небольшая очередь полезна, она сглаживает всплески. Но производители часто делают буферы очень большими, чтобы избежать потерь. Когда канал забит, очередь растёт, и каждый новый пакет вынужден ждать за сотнями предыдущих.
Потерь при этом нет, значит, TCP не получает сигнала притормозить и продолжает наращивать скорость, ещё больше заполняя буфер. Вырастает задержка, иногда до секунды и выше, хотя скорость остаётся максимальной.
Схожая проблема наблюдается и в мобильных сетях, и на Wi-Fi, где к очередям добавляются повторные передачи. Отсюда и ощущение, что интернет «то работает, то нет», хотя в среднем показатели нормальные.
Как измерить
Запустите пинг до стабильного сервера в одном окне, а в другом начните загрузку крупного файла или тест скорости, нагружающий канал. Если значение задержки во время нагрузки вырастает в разы по сравнению с покоем, вы наблюдаете bufferbloat. Обратите внимание, что нужно проверять и загрузку вниз, и отправку вверх: исходящий канал у домашних подключений уже, и проблема выражена там сильнее.
Некоторые онлайн-тесты скорости отдельно показывают задержку под нагрузкой и выставляют оценку. Ориентир: рост в пределах нескольких десятков миллисекунд приемлем, сотни это заметная проблема.
Как уменьшить
Самый действенный способ: умное управление очередью на роутере, алгоритмы вроде fq_codel или CAKE, которые следят за временем ожидания пакетов и отбрасывают их раньше, чтобы отправители снижали скорость. Они встроены в ряд современных прошивок роутеров в разделе QoS или «управление трафиком».
Ключевая настройка: ограничить скорость загрузки и отправки чуть ниже реальной пропускной способности (например, на 5–10 процентов). Тогда очередь формируется на вашем роутере, где управление умное, а не в неуправляемом буфере модема. Если такой возможности нет, ограничивайте скорость в программах, которые создают нагрузку.
Можно попробовать и более простые способы: настроить в программе для загрузки ограничение скорости, выбрать время с меньшей нагрузкой, а для звонков временно останавливать облачные синхронизации. Это менее удобно, чем автоматическое управление, но для дома нередко достаточно.
Что помогает мало, а что нет
Увеличение скорости подключения уменьшает проблему, потому что канал реже насыщается, но полностью не устраняет. Кабель вместо Wi-Fi не влияет на очередь в узком месте. Смена DNS, чистка кэша и перезагрузка дают лишь временный эффект. Реальные решения связаны с управлением очередями и разумным ограничением скорости.
Если ничего не помогает, стоит уточнить у провайдера возможности оборудования и рассмотреть роутер с поддержкой современных алгоритмов очередей.