Bufferbloat (раздувание буферов) — это лаги, которые появляются, когда ваш интернет-канал занят: роутер или модем ставит в очередь гораздо больше данных, чем следует, и каждый пакет, включая ваши действия в игре и голос в звонке, ждёт своей очереди. Скорость подключения выглядит нормально, но пинг может подскочить с 20 мс до нескольких сотен миллисекунд, как только кто-то запускает большую загрузку или выгрузку. Это одна из самых частых причин, по которым «быстрый» интернет всё равно кажется медленным и неотзывчивым.
Главное
- Bufferbloat — проблема задержки, а не пропускной способности.
- Характерный признак — пинг в норме в простое, но подскакивает во время загрузок, выгрузок или тестов скорости.
- Исходящий трафик (облачное резервное копирование, видеозвонки, обмен файлами) — частая причина, потому что канал отдачи уже.
- Самое эффективное решение — Smart Queue Management (SQM) на роутере с алгоритмами вроде fq_codel или CAKE.
- Один лишь более быстрый тариф обычно проблему не решает.
Откуда берётся bufferbloat
В каждом роутере, модеме и сетевом устройстве есть буферы — небольшие области памяти, которые временно хранят пакеты, если те поступают быстрее, чем их успевают отправить. Буферы полезны: они сглаживают короткие всплески и предотвращают лишние потери пакетов.
Проблема в размере. Память подешевела, и многие устройства выпускаются с буферами, вмещающими сотни миллисекунд, а иногда и секунды данных. Когда канал забит большой загрузкой или выгрузкой, буфер заполняется и остаётся полным.
TCP — протокол, на котором работает большинство загрузок, — наращивает скорость отправки, пока не обнаружит потерю пакетов. При огромном буфере пакеты долго не отбрасываются, а просто ждут. Поэтому TCP продолжает давить, очередь растёт, и каждый новый пакет встаёт в её конец. Игровой пакет, которому хватило бы 20 мс, может застрять за большим объёмом данных загрузки и прийти через 300 мс.
Почему обычно это происходит в роутере или модеме
Bufferbloat накапливается в узком месте — самом медленном звене на пути. В большинстве домов это соединение между модемом и провайдером, особенно в направлении отдачи. Домашняя сеть внутри может работать на 1 Гбит/с, но если по тарифу отдача 20 Мбит/с, пакеты скапливаются именно там. Узким местом может стать и Wi-Fi, если сигнал слабый.
Как проявляется bufferbloat
Поскольку тесты скорости часто показывают только загрузку и отдачу, bufferbloat прячется на виду. Типичные симптомы:
- Игры: скачки пинга, откаты персонажа и запоздалая регистрация попаданий, как только интернетом начинает пользоваться кто-то ещё. Целевые значения задержки — в статье какой пинг считается хорошим для игр.
- Видеозвонки: голос становится «роботизированным» или видео зависает, когда начинается облачное резервное копирование или выгрузка файлов.
- Сёрфинг: во время большой загрузки страницы начинают открываться лишь через несколько секунд, хотя сама загрузка идёт быстро.
- Умные колонки и голосовые ассистенты: заметно медленнее отвечают, когда сеть загружена.
Если проблема исчезает, как только загрузка заканчивается, вероятнее всего, виноват bufferbloat, а не слабый сигнал или медленный тариф.
Как проверить bufferbloat
Задача — сравнить задержку в простое и при полной нагрузке на канал. Для этого хватит уже имеющихся инструментов.
- По возможности подключите компьютер к роутеру по Ethernet, чтобы проблемы с Wi-Fi не искажали результаты.
- Приостановите тяжёлый трафик на других устройствах (стриминг, загрузки, резервное копирование).
- Измерьте задержку в простое с помощью нашего теста пинга или в терминале командой
ping 8.8.8.8(в macOS и Linux остановить можно сочетанием Ctrl+C; в Windows используйтеping -t 8.8.8.8). - Оставьте пинг работать в окне терминала и запустите в браузере полный тест скорости.
- Следите за временем пинга на этапе загрузки, а затем на этапе отдачи.
- Зафиксируйте прирост. Разница между пингом в простое и под нагрузкой — это и есть ваш bufferbloat.
Как читать результаты
| Рост пинга под нагрузкой | Что это значит | Что вы заметите |
|---|---|---|
| Менее 5 мс | Отлично, bufferbloat практически нет | Ничего: игры и звонки остаются плавными |
| 5–30 мс | Слабый | Большинство пользователей почти не замечают |
| 30–100 мс | Умеренный | Периодические лаги в играх и прерывистые звонки при загруженной сети |
| 100–300 мс | Сильный | Игры и звонки страдают, как только кто-то что-то скачивает |
| Более 300 мс | Очень сильный | Сёрфинг тормозит; приложения реального времени под нагрузкой непригодны |
Эти диапазоны — распространённые эмпирические ориентиры, а не официальный стандарт. Если на этапе отдачи скачок гораздо больше, чем на этапе загрузки, сосредоточьтесь на исправлении отдачи. Вместе с bufferbloat обычно растёт и джиттер, поэтому стоит прочитать также, что такое джиттер и потеря пакетов.
Как исправить bufferbloat
1. Включите SQM или умные очереди
Smart Queue Management (SQM) — самое эффективное решение. Эта функция делает две вещи: ограничивает трафик чуть ниже реальной скорости линии, чтобы очередь собиралась в роутере (который вы контролируете), а не в модеме или оборудовании провайдера, и использует современные алгоритмы управления очередями, такие как fq_codel или CAKE, которые держат очереди короткими и дают маленьким пакетам, критичным ко времени, честную возможность пройти.
Производители роутеров называют это по-разному, так что ищите:
- «Smart Queue Management», «SQM» или «Smart Queues»
- «Adaptive QoS» или «Управление пропускной способностью» с вариантами fq_codel или CAKE
- настройки «anti-bufferbloat» или «оптимизация задержки» в игровых роутерах
Альтернативные прошивки, например OpenWrt, поддерживают SQM на многих совместимых роутерах.
2. Правильно задайте скорость шейпинга
SQM работает, только если ограничивает трафик ниже вашей реальной скорости.
- Проведите несколько тестов скорости по Ethernet в разное время суток и запишите типичные значения загрузки и отдачи.
- Установите лимит загрузки в SQM примерно на 85–95% от измеренной скорости загрузки.
- Установите лимит отдачи примерно на 85–95% от измеренной скорости отдачи.
- Снова проверьте пинг под нагрузкой. Если скачки остались, ещё немного снизьте лимиты.
Вы жертвуете небольшой частью пиковой скорости ради стабильно низкой задержки — на такой обмен большинство геймеров и удалёнщиков соглашаются с радостью.
3. Используйте QoS для приоритета ключевых устройств
Если в роутере нет SQM, может помочь традиционный QoS (качество обслуживания), который отдаёт приоритет игровой консоли или рабочему ноутбуку. Он менее эффективен, чем SQM, потому что не уменьшает очередь, но может переместить важный трафик в её начало.
4. Контролируйте приложения, активно отправляющие данные
Облачное резервное копирование фото, синхронизация файлов, камеры видеонаблюдения, выгружающие записи, и выгрузки с игровых консолей могут забить узкий канал отдачи. Запланируйте их на ночь или ограничьте скорость отдачи в настройках приложения.
5. Проверьте модем и Wi-Fi
Некоторые старые кабельные модемы особенно подвержены bufferbloat при отдаче. Если вы арендуете оборудование у провайдера, спросите, есть ли более новая модель. Новые модемы DOCSIS 3.1 поддерживают Active Queue Management, что может снизить bufferbloat на отдаче. Слабое Wi-Fi-соединение тоже может создавать собственную очередь, так что улучшение сигнала помогает; см. Ethernet или Wi-Fi.
Поможет ли более быстрый тариф против bufferbloat?
Лишь отчасти. На более быстром тарифе канал заполняется реже, поэтому лаги вы, возможно, будете замечать реже. Но когда он всё же заполнится — из-за обновления игры, 4K-видео или большой облачной синхронизации, — слишком большой буфер поведёт себя точно так же. Многие переходят на более быстрый тариф, видят ускорение загрузок и всё равно обнаруживают, что игры лагают каждый раз, когда консоль качает патч.
Управление очередями устраняет причину, а пропускная способность лишь снижает частоту, с которой вы её провоцируете. Если вам важна задержка, SQM на приличном роутере часто даёт больший эффект, чем смена тарифа.
Итог
Bufferbloat объясняет, почему подключение может показывать высокую скорость в тесте, но ощущаться медленным: слишком большие очереди в модеме или роутере заставляют каждый пакет ждать, когда канал занят. Решение не в большей скорости, а в более умных очередях — в идеале SQM с fq_codel или CAKE, настроенный чуть ниже реальной скорости линии.
Начните с измерений. Запустите тест скорости, следя за пингом, сравните задержку в простое и под нагрузкой, и если разница больше примерно 30 мс, стоит включить умные очереди и проверить снова.