Автор: Robert G.
Автор перевода: В. В. Гончаров
Источник: https://blog.stackpath.com/tcp-slow-start/
Медленный старт TCP - это алгоритм, который уравновешивает скорость сети при подключение. Медленный старт постепенно увеличивает объем передаваемых данных, пока не будет найдена максимальная пропускная способность сети.
Одним из наиболее распространенных способов оптимизации скорости соединения является увеличение скорости канала (то есть увеличить пропускную способность). Однако любая ссылка может стать перегруженной, если устройство пытается отправить слишком много данных. Пересыщение ссылки известно как перегрузка, и это может привести к медленной связи или даже потери данных.
Медленный старт предотвращает перегрузку сети, регулируя количество данных, отправленных по нему. Он согласовывает связь между отправителем и получателем, определяя количество данных, которые могут быть переданы с каждым пакетом, и медленно увеличивает объем данных, пока пропускная способность сети не достигнута. Это обеспечивает передачу как можно большего объема данных без засорения сети.
Медленный старт TCP является одним из первых шагов в процессе контроля перегрузки. Он уравновешивает объем данных, которые может передать отправитель (известный как окно перегрузки), с объемом данных, которые может принять получатель (известный как окно получателя). Нижнее из этих двух значений становится максимальным объемом данных, которые отправителю разрешено передавать до получения подтверждения от получателя.
Шаг за шагом, вот как работает медленный старт:
Как только лимит был определен, работа медленного старта завершена. Другие алгоритмы управления перегрузкой используются для поддержания скорости соединения.
Отправитель часто настраивают свое окно медленного старта, чтобы максимизировать передачу данных. Начальный параметр окна перегрузки (initcwnd) может иметь значительное влияние на скорость сети. Когда получатель должен отправить меньше подтверждений отправителю, больше данных может быть передано быстрее.
Большинство крупных провайдеров CDN по умолчанию имеют значение initcwnd, равное 10, что означает, что будет передано 10 пакетов, прежде чем запрашивать подтверждение. Cachefly имеет initcwnd = 70, по сравнению с initcwnd Microsoft, равным 2. Для сравнения MaxCDN имеет initcwnd около 30. Хороший баланс будет определяться типом передаваемых данных и общей скоростью сети.
Медленный старт обеспечивает скорость и целостность сети, одновременно защищая отправителя и получателя.
Скорость интернет-соединения не зависит исключительно от пропускной способности. В В общем, увеличение скорости от 5 Мбит до 10 Мбит приводит только к 5% - ному увеличению времени загрузки страницы. Смысл заключается во времени, которое требуется отправителю для передачи сообщения получателю, и именно здесь начинается медленный старт.
Оптимизируя использование пропускной полосы, медленный старт облегчает подключение пользователей к веб-сервисам.