Медленный старт

Поделись знанием:
Перейти к: навигация, поиск

Медленный старт — часть стратегии управления окном перегрузки (англ. congestion window), в TCP. Медленный старт используется совместно с другими алгоритмами для того чтобы избежать отправки большего количества данных, чем сеть способна передать. Алгоритм определяется [tools.ietf.org/html/rfc5681 RFC 5681]





Алгоритм

Медленный старт — один из алгоритмов, который TCP использует для контроля над нагрузкой сети. Иногда его еще называют фазой экспоненциального роста.

Во время фазы экспоненциального роста, алгоритм медленного старта работает за счет увеличения окна TCP каждый раз когда получено подтверждение, то есть увеличивает размер окна в зависимости от количества подтвержденных сегментов. Это происходит до тех пор, пока для какого-то сегмента не будет получено подтверждение или будет достигнуто какое-то заданное пороговое значение.

Если происходит потеря, TCP предполагает что это связано с перегрузкой сети и принимает меры по сокращению нагрузки на сеть. Как только порог достигнут, TCP входит в фазу линейного роста (предотвращения перегрузки). В эту фазу окно увеличивается на один сегмент для каждого RTT. Это происходит до тех пор, пока случаются потери.

Хотя алгоритм и называется «медленный старт», размер его окна перегрузки растет довольно энергично, гораздо энергичнее чем во время фазы линейного роста.[1] До того, как алгоритм медленного старта был добавлен в TCP, начальная фаза, направленная на предотвращение перегрузки, была намного быстрее.

Базовый медленный старт

Алгоритм начинается в экспоненциальной фазе роста, сначала с размером окна перегрузки ([en.wikipedia.org/wiki/Congestion_window 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), которая использует [en.wikipedia.org/wiki/Fast_retransmit быструю повторную передачу] последующей фазой предотвращения перегрузки. В алгоритме быстрого восстановления, во избежание перегрузки, когда пакет (после 3 полученных подтверждений) не получен, размер окна перегрузки сводится к порогу медленного старта, а не к меньшему начальному значению.

Проблемы

Алгоритм медленного старта предполагает, что отсутствие подтверждения происходит вследствие перегрузки сети. Хотя это предположение приемлемо для многих сетей, сегменты могут быть потеряны и по другим причинам, например, плохое качество канала передачи данных на канальном уровне. Таким образом, алгоритм медленного старта может плохо работать в ситуациях со слабым приемом - таких, как беспроводные сети.

Протокол медленного старта плохо подходит для короткоживущих соединений. Старые браузеры могут создавать много последовательных коротко живущих соединений с веб-сервером, и будет открывать и закрывать соединение для каждого запрашиваемого файла. Все это держало большинство подключений в режиме медленного старта, в результате которых было большое время отклика. Чтобы избежать этой проблемы, современные браузеры либо открывают несколько соединений одновременно или повторно используют одно соединение для всех файлов, запрошенных с конкретного веб-сервера. Тем не менее, соединения не могут быть повторно использованы для множества сторонних серверов, используемых веб-сайтами для реализации веб-рекламы, общих функций социальных сетей,[3] сценариев веб-аналитики.

Напишите отзыв о статье "Медленный старт"

Ссылки

  1. Jacobson, Van; Karels, MJ (1988). «[www.cord.edu/faculty/zhang/cs345/assignments/researchPapers/congavoid.pdf Congestion avoidance and control]». ACM SIGCOMM Computer Communication Review 18 (4): 314–329.
  2. Corbet, Jonathan [lwn.net/Articles/427104/ Increasing the TCP initial congestion window]. LWN. Проверено 10 октября 2012.
  3. Nick O'Neill. "[allfacebook.com/whats-making-your-site-go-slow-could-be-the-like-button_b24121 What's Making Your Site Go Slow? Could Be The Like Button]". AllFacebook, November 10, 2010. Retrieved on September 12, 2012.

Отрывок, характеризующий Медленный старт

– Служу. – Он помолчал немного.
– Так зачем же вы служите?
– А вот зачем. Отец мой один из замечательнейших людей своего века. Но он становится стар, и он не то что жесток, но он слишком деятельного характера. Он страшен своей привычкой к неограниченной власти, и теперь этой властью, данной Государем главнокомандующим над ополчением. Ежели бы я два часа опоздал две недели тому назад, он бы повесил протоколиста в Юхнове, – сказал князь Андрей с улыбкой; – так я служу потому, что кроме меня никто не имеет влияния на отца, и я кое где спасу его от поступка, от которого бы он после мучился.
– А, ну так вот видите!
– Да, mais ce n'est pas comme vous l'entendez, [но это не так, как вы это понимаете,] – продолжал князь Андрей. – Я ни малейшего добра не желал и не желаю этому мерзавцу протоколисту, который украл какие то сапоги у ополченцев; я даже очень был бы доволен видеть его повешенным, но мне жалко отца, то есть опять себя же.
Князь Андрей всё более и более оживлялся. Глаза его лихорадочно блестели в то время, как он старался доказать Пьеру, что никогда в его поступке не было желания добра ближнему.
– Ну, вот ты хочешь освободить крестьян, – продолжал он. – Это очень хорошо; но не для тебя (ты, я думаю, никого не засекал и не посылал в Сибирь), и еще меньше для крестьян. Ежели их бьют, секут, посылают в Сибирь, то я думаю, что им от этого нисколько не хуже. В Сибири ведет он ту же свою скотскую жизнь, а рубцы на теле заживут, и он так же счастлив, как и был прежде. А нужно это для тех людей, которые гибнут нравственно, наживают себе раскаяние, подавляют это раскаяние и грубеют от того, что у них есть возможность казнить право и неправо. Вот кого мне жалко, и для кого бы я желал освободить крестьян. Ты, может быть, не видал, а я видел, как хорошие люди, воспитанные в этих преданиях неограниченной власти, с годами, когда они делаются раздражительнее, делаются жестоки, грубы, знают это, не могут удержаться и всё делаются несчастнее и несчастнее. – Князь Андрей говорил это с таким увлечением, что Пьер невольно подумал о том, что мысли эти наведены были Андрею его отцом. Он ничего не отвечал ему.
– Так вот кого мне жалко – человеческого достоинства, спокойствия совести, чистоты, а не их спин и лбов, которые, сколько ни секи, сколько ни брей, всё останутся такими же спинами и лбами.
– Нет, нет и тысячу раз нет, я никогда не соглашусь с вами, – сказал Пьер.


Вечером князь Андрей и Пьер сели в коляску и поехали в Лысые Горы. Князь Андрей, поглядывая на Пьера, прерывал изредка молчание речами, доказывавшими, что он находился в хорошем расположении духа.
Он говорил ему, указывая на поля, о своих хозяйственных усовершенствованиях.
Пьер мрачно молчал, отвечая односложно, и казался погруженным в свои мысли.
Пьер думал о том, что князь Андрей несчастлив, что он заблуждается, что он не знает истинного света и что Пьер должен притти на помощь ему, просветить и поднять его. Но как только Пьер придумывал, как и что он станет говорить, он предчувствовал, что князь Андрей одним словом, одним аргументом уронит всё в его ученьи, и он боялся начать, боялся выставить на возможность осмеяния свою любимую святыню.
– Нет, отчего же вы думаете, – вдруг начал Пьер, опуская голову и принимая вид бодающегося быка, отчего вы так думаете? Вы не должны так думать.
– Про что я думаю? – спросил князь Андрей с удивлением.
– Про жизнь, про назначение человека. Это не может быть. Я так же думал, и меня спасло, вы знаете что? масонство. Нет, вы не улыбайтесь. Масонство – это не религиозная, не обрядная секта, как и я думал, а масонство есть лучшее, единственное выражение лучших, вечных сторон человечества. – И он начал излагать князю Андрею масонство, как он понимал его.
Он говорил, что масонство есть учение христианства, освободившегося от государственных и религиозных оков; учение равенства, братства и любви.
– Только наше святое братство имеет действительный смысл в жизни; всё остальное есть сон, – говорил Пьер. – Вы поймите, мой друг, что вне этого союза всё исполнено лжи и неправды, и я согласен с вами, что умному и доброму человеку ничего не остается, как только, как вы, доживать свою жизнь, стараясь только не мешать другим. Но усвойте себе наши основные убеждения, вступите в наше братство, дайте нам себя, позвольте руководить собой, и вы сейчас почувствуете себя, как и я почувствовал частью этой огромной, невидимой цепи, которой начало скрывается в небесах, – говорил Пьер.