Bufferbloat: проблема лагів на швидкому інтернеті
Хтось починає завантаження — і ваш відеодзвінок розсипається, хоча Мбіт/с більш ніж достатньо. Це не проблема швидкості, а проблема черги.
Що насправді відбувається
Кожен роутер і модем має буфер — зал очікування для пакетів, коли лінія на мить переповнена. Невеликі буфери корисні, але багато домашніх пристроїв постачаються з буферами, що у сотні разів завеликі.
Коли велике передавання займає весь канал, ці буфери теж заповнюються. Тоді кожен пакет, зокрема маленькі термінові пакети дзвінка, гри чи кліку, стоїть у черзі за мегабайтами великих даних. Затримка зростає з 20 мс до 300, 600, інколи понад 1000 мс. Це і є bufferbloat.
Характерні ознаки
Усе працює добре, доки хтось не починає вивантажувати фото, оновлювати гру чи створювати хмарну копію. Тоді дзвінки заїкаються, відео знову буферизується, сторінки ледве відкриваються, а ігри лагають. Зупиніть передавання — і все миттєво відновиться.
Оскільки причиною є ваш власний трафік, звичайні тести на вільній лінії не бачать bufferbloat: завантаження, віддача й пінг без навантаження можуть виглядати бездоганно.
Як це виміряти
Потрібно виміряти затримку під час повного завантаження лінії. Саме це робить наш тест: запити йдуть паралельно з етапами завантаження та віддачі, після чого ви отримуєте завантажену затримку для кожного напрямку й оцінку bufferbloat від A до F. Оцінка C або гірша означає, що застосунки реального часу страждатимуть, коли лінія зайнята.
Виправлення за порядком ефективності
Справжнє лікування — Smart Queue Management на роутері: алгоритми fq_codel або CAKE навмисно тримають черги малими. Шукайте налаштування SQM, Smart Queues або QoS із fq_codel/CAKE та встановіть обмежувач трохи нижче виміряної швидкості. Оцінка часто стрибає з D до A.
Якщо роутер не має SQM, можна ввімкнути вбудований режим «anti-bufferbloat» або ігровий QoS (якість буває від пристойної до суто декоративної), замінити роутер на модель із SQM, зокрема з OpenWrt, або перевести коробку провайдера в режим мосту й поставити такий роутер за нею.
Що не допоможе: купити більше Мбіт/с. Ширший канал із тими самими роздутими буферами просто заповниться швидше.