18  /  96

Сеть. Расстояние и пропускная способность сети

Просмотров: 1127 (Статистика ведётся с 06.02.2017)

Для типичного веб-приложения пропускная способность не особо важна (если только файлы не качать) - гораздо важнее latenсy, т.к. делается много небольших запросов по разным соединениям и TCP-окно просто не успевает раскачаться.

И разумеется, чем дальше клиент от веб-сервера, тем дольше. Но бывает что нельзя иначе или трудно. Именно поэтому придумали:

  • CDN
  • Динамическое проксирование (CDN-наоборот). Когда в регионе ставится, например nginx, открывающий постоянные коннекты на веб-сервер и терминирующий ssl. Понятно зачем? Именно - в разы ускоряется установление соединений от клиента с веб-прокси (хэндшейки начинают летать), а дальше используется прогретое TCP-соединение.

Еще можно увеличить TCP’s initial congestion window - это нередко помогает, т.к. веб-страничка отдается одним набором пакетов без подтверждения.

Пропускная способность

TCP-окошко соединения должно разогнаться сначала. Если веб-страница загружается меньше секунды - окошко может не успеть увеличиться. Средняя пропускная способность сети в мире - немного превышает 3 МБит/с. Вывод - нужно передавать через одно установленное соединение как можно больше, "разогрев" его.

Помочь тут может мультиплексирование HTTP-ресурсов внутри одного TCP-соединения: передача нескольких ресурсов вперемешку как в запросе, так и ответе. Эту технику даже включили в стандарт, но недоописали и в итоге она не взлетела (в chrome ее не так давно вообще убрали). Поэтому тут можно пока попробовать SPDY, ждать HTTP 2.0 или использовать-таки pipelining - но не из браузера, а из приложения напрямую.



4
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии