Назад в библиотеку

Что такое медленный старт TCP?

Автор: Robert G.

Автор перевода: В. В. Гончаров
Источник: https://blog.stackpath.com/tcp-slow-start/

Определение

Медленный старт TCP - это алгоритм, который уравновешивает скорость сети при подключение. Медленный старт постепенно увеличивает объем передаваемых данных, пока не будет найдена максимальная пропускная способность сети.

Обзор

Одним из наиболее распространенных способов оптимизации скорости соединения является   увеличение скорости канала (то есть увеличить пропускную способность).   Однако любая ссылка может стать перегруженной, если устройство пытается отправить слишком много данных. Пересыщение ссылки известно как перегрузка, и это может привести к медленной связи или даже потери данных.

Медленный старт предотвращает перегрузку сети, регулируя количество данных, отправленных по нему. Он согласовывает связь между отправителем и получателем, определяя количество данных, которые могут быть переданы с каждым пакетом, и медленно увеличивает объем данных, пока пропускная способность сети не достигнута. Это обеспечивает передачу как можно большего объема данных без засорения сети.

Как работает медленный старт TCP

Медленный старт TCP является одним из первых шагов в процессе контроля перегрузки.   Он уравновешивает объем данных, которые может передать отправитель (известный как окно перегрузки), с объемом данных, которые может принять получатель (известный как окно получателя). Нижнее из этих двух значений становится максимальным объемом данных, которые отправителю разрешено передавать до получения подтверждения от получателя.

Шаг за шагом, вот как работает медленный старт:

  1. Отправитель пытается связаться с получателем. Исходный пакет отправителя содержит небольшое окно перегрузки, которое определяется на основе максимального окна отправителя.;
  2. Получатель подтверждает пакет и отвечает своим собственным размером окна. Если получатель не отвечает, отправитель знает, что не нужно продолжать ли отправку данных;
  3. После получения подтверждения отправитель увеличивает размер окна следующего пакета. Размер окна постепенно увеличивается до тех пор, пока получатель не сможет больше не подтверждать каждый пакет или пока не будет достигнут предел окна отправителя или получателя.

Как только лимит был определен, работа медленного старта завершена. Другие алгоритмы управления перегрузкой используются для поддержания скорости соединения.

Пример медленного старта TCP

Отправитель часто настраивают свое окно медленного старта, чтобы максимизировать передачу данных. Начальный параметр окна перегрузки (initcwnd) может иметь   значительное влияние на скорость сети. Когда получатель должен отправить меньше подтверждений отправителю, больше данных может быть передано быстрее.

Большинство крупных провайдеров CDN по умолчанию имеют значение initcwnd, равное 10, что означает, что будет передано 10 пакетов, прежде чем запрашивать подтверждение. Cachefly имеет initcwnd = 70, по сравнению с initcwnd Microsoft, равным 2. Для сравнения MaxCDN имеет initcwnd около 30. Хороший баланс будет определяться типом передаваемых данных и общей скоростью сети.

Преимущества медленного старта TCP

Медленный старт обеспечивает скорость и целостность сети, одновременно защищая отправителя и получателя.

  1. Пользователи испытывают непрерывные соединения, так как пакеты больше не отбрасываются из-за перегрузки;
  2. Пользователи также испытывают более быструю загрузку, так как медленный старт находит и использует максимальную скорость соединения;
  3. Предприятия видят меньше "заторов" в сети, так как медленный старт регулирует пропускная способность и предотвращает необходимость повторной передачи отправителю данные.

Вывод

Скорость интернет-соединения не зависит исключительно от пропускной способности. В В общем, увеличение скорости от 5 Мбит до 10 Мбит приводит только к 5% - ному увеличению времени загрузки страницы. Смысл заключается во времени, которое требуется отправителю для передачи сообщения получателю, и именно здесь начинается медленный старт.

Оптимизируя использование пропускной полосы, медленный старт облегчает подключение пользователей   к веб-сервисам.