Почему мобильный интернет тормозит даже при полном сигнале
Пять палочек, LTE в углу экрана, а ютуб крутит загрузку. Сигнал тут ни при чём. Дело в том, как устроена передача данных, и в одном старом решении, которое отлично работает на проводе и подводит в эфире.
Палочки показывают не то
Индикатор сигнала — это уровень приёма от вышки. Он говорит одно: вышка близко, слышно её хорошо. Между «слышно вышку» и «быстро грузится сайт» лежит ещё несколько вещей: сколько народу висит на этой же соте, сколько пакетов теряется по дороге, какая задержка до сервера. Полный сигнал не обещает ни одной из них.
Главная засада — потери пакетов
Данные идут не сплошным ручьём, а кусочками-пакетами. На проводе пакет теряется редко. В эфире — постоянно: помехи, переключение между вышками на ходу, чужой трафик в той же соте. Само по себе это не беда, потерянный кусок пересылается заново.
Беда в том, как на потерю реагирует TCP — протокол, на котором держится большая часть интернета. TCP осторожный: он принимает потерю за признак того, что сеть забита, и сбрасывает скорость, чтобы её разгрузить. На проводе это правильное поведение. В эфире — нет: пакет пропал не от перегрузки, а от помехи, но TCP всё равно ужимается, а потом медленно разгоняется обратно. Несколько потерь подряд — и скорость просела в разы, хотя «трубы» свободны.
Вот почему видео встаёт, а спидтест в тот же момент рисует приличные цифры. Спидтест короткий, а реальная загрузка длинная и успевает поймать просадку.
Что с этим делают
Лечат на уровне протокола. Появились транспорты поверх UDP, которые управляют скоростью иначе: отличают помеху от перегрузки и не наказывают соединение за первую. Самый известный — QUIC, на нём работает половина Google и YouTube. На дёрганой сети он держится заметно ровнее старого TCP, и как раз поэтому ролики на ютубе грузятся плавнее, чем многое другое.
Лекарство, выходит, не в том, чтобы поймать ещё одну палочку, а в том, чтобы перестать сбрасывать скорость из-за помех, в которых соединение не виновато.
Коротко
- Палочки — про связь с вышкой, не про скорость.
- Тормозит обычно из-за потерь пакетов, а не из-за слабого сигнала.
- TCP принимает потери за перегрузку и режет скорость; на сотовой это бьёт сильнее всего.
- Транспорты поверх UDP (QUIC и родственники) с этим справляются лучше.
Нейтрино