Медленный старт — часть стратегии управления окном перегрузки (англ. congestion window), в TCP. Медленный старт используется совместно с другими алгоритмами для того чтобы избежать отправки большего количества данных, чем сеть способна передать. Алгоритм определяется RFC 5681
Медленный старт — один из алгоритмов, который TCP использует для контроля над нагрузкой сети. Иногда его еще называют фазой экспоненциального роста.
Во время фазы экспоненциального роста, алгоритм медленного старта работает за счет увеличения окна TCP каждый раз когда получено подтверждение, то есть увеличивает размер окна в зависимости от количества подтвержденных сегментов. Это происходит до тех пор, пока для какого-то сегмента не будет получено подтверждение или будет достигнуто какое-то заданное пороговое значение.
Если происходит потеря, TCP предполагает что это связано с перегрузкой сети и принимает меры по сокращению нагрузки на сеть. Как только порог достигнут, TCP входит в фазу линейного роста (предотвращения перегрузки). В эту фазу окно увеличивается на один сегмент для каждого RTT. Это происходит до тех пор, пока случаются потери.
Хотя алгоритм и называется «медленный старт», размер его окна перегрузки растет довольно энергично, гораздо энергичнее чем во время фазы линейного роста.[1] До того, как алгоритм медленного старта был добавлен в TCP, начальная фаза, направленная на предотвращение перегрузки, была намного быстрее.
Алгоритм начинается в экспоненциальной фазе роста, сначала с размером окна перегрузки (congestion window — CWND) 1, 2 или 10[2] сегментов и увеличивает его на один размер сегмента (segment size — SS) для каждого полученного ACK. Если приемник посылает ACK для каждого сегмента, такое поведение эффективно удваивает размер окна после каждого цикла сети. Если приемник поддерживает подтверждения с опозданием, темпы роста будут ниже, но все равно рост окна будет увеличивается, как минимум, на один MSS каждого времени приема-передачи. Такое поведение продолжается до тех пор, пока размер окна перегрузки (CWND) не достигнет размера объявленного окна приемника или пока не произойдет потеря.
Когда происходит потеря, половина текущего CWND сохраняется в виде порога медленного старта (SSThresh) и медленный старт начинается снова от своего первоначального CWND. Как только CWND достигает SSThresh, TCP переходит в режим предотвращения перегрузки, где каждый ACK увеличивает CWND на SS * SS / CWND. Это приводит к линейному увеличению CWND.
Существует вариация алгоритма медленного старта, известная как быстрое восстановление (Fast Recovery), которая использует быструю повторную передачу последующей фазой предотвращения перегрузки. В алгоритме быстрого восстановления, во избежание перегрузки, когда пакет (после 3 полученных подтверждений) не получен, размер окна перегрузки сводится к порогу медленного старта, а не к меньшему начальному значению.
Алгоритм медленного старта предполагает, что отсутствие подтверждения происходит вследствие перегрузки сети. Хотя это предположение приемлемо для многих сетей, сегменты могут быть потеряны и по другим причинам, например, плохое качество канала передачи данных на канальном уровне. Таким образом, алгоритм медленного старта может плохо работать в ситуациях со слабым приемом - таких, как беспроводные сети.
Протокол медленного старта плохо подходит для короткоживущих соединений. Старые браузеры могут создавать много последовательных коротко живущих соединений с веб-сервером, и будет открывать и закрывать соединение для каждого запрашиваемого файла. Все это держало большинство подключений в режиме медленного старта, в результате которых было большое время отклика. Чтобы избежать этой проблемы, современные браузеры либо открывают несколько соединений одновременно или повторно используют одно соединение для всех файлов, запрошенных с конкретного веб-сервера. Тем не менее, соединения не могут быть повторно использованы для множества сторонних серверов, используемых веб-сайтами для реализации веб-рекламы, общих функций социальных сетей,[3] сценариев веб-аналитики.
|coauthors=
(справка)Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .