Протокол TCP: управление перегрузкой | Курс "Компьютерные сети"

Andrey Sozykin
24 Jan 201609:21

Summary

TLDRВ данной лекции Андрей Сазыкин рассказывает о протоколе TCP и его механизмах управления перегрузкой и потоком данных в сети. Основная проблема, с которой сталкивается протокол, заключается в предотвращении перегрузки сети излишним количеством отправляемых сегментов. В лекции описываются два типа окон: окно управления потоком и окно перегрузки, которые определяются в зависимости от загрузки сети и размера буфера получателя. Рассматриваются методы аддитивного увеличения и мультипликативного уменьшения размера окна, а также медленный старт. Указывается на сложность определения перегрузки из-за композитности сети и использования потерь сегментов в качестве сигнала перегрузки. В заключение, лекция затрагивает комбинацию медленного старта и аддитивного увеличения мультипликативного уменьшения для оптимального управления окном перегрузки и предотвращения сетевых коллапсов.

Takeaways

  • 📈 Управление перегрузкой сети - это процесс определения оптимального размера окна для передачи данных, чтобы избежать перегрузки и потерю данных.
  • 🔄 В прошлом использовался фиксированный размер окна (8 сегментов), но теперь он определяется динамически в зависимости от загрузки сети.
  • 📊 Окно перегрузки использует комбинацию методов аддитивного увеличения и мультипликативного уменьшения для определения количества сегментов, которые можно отправить.
  • 🚀 Метод медленного старта позволяет быстро увеличивать размер окна, экспоненциально увеличивая его на каждом подтверждении.
  • ⚠️ При потере сегмента метод медленного старта уменьшает размер окна до нуля, что может замедлить передачу данных.
  • 🔧 Комбинация медленного старта и аддитивного увеличения с мультипликативным уменьшением позволяет быстро заполнить пропускную способность канала, а затем увеличивать размер окна медленно.
  • 📉 Порог медленного старта определяется после сигнала о перегрузке, умножая текущий размер окна в два.
  • 📚 Основным сигналом перегрузки является потеря сегментов, что указывает на то, что сеть перегружена.
  • ⏱️ Задержка сегментов и явный сигнал от маршрутизатора также могут служить сигналами перегрузки сети.
  • 🔄 Метод аддитивного увеличения с мультипликативным уменьшением хорошо работал на медленных каналах, но на современных быстрых каналах он может быть менее эффективным.
  • 🔍 Следующая лекция будет посвящена работе других типов сигналов перегрузки и их влиянию на размер окна.

Q & A

  • Какой механизм используется для предотвращения перегрузки сети при передаче данных?

    -Для предотвращения перегрузки сети используется механизм управления окном перегрузки, который определяет, сколько сегментов можно отправить в сеть.

  • Что такое метод аддитивного увеличения и мультипликативного уменьшения?

    -Метод аддитивного увеличения и мультипликативного уменьшения - это метод определения размера окна перегрузки, при котором размер окна увеличивается на один сегмент с каждым подтверждением, а в случае перегрузки уменьшается в два раза.

  • Какой метод используется для быстрого заполнения доступной пропускной способности канала?

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

  • Что происходит, если произошла потеря сегмента при использовании метода медленного старта?

    -Если при использовании метода медленного старта произошла потеря сегмента, размер окна уменьшается до нуля, и процесс запускается заново.

  • Какой сигнал от маршрутизатора может указывать на перегрузку сети?

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

  • Какой метод комбинирует медленный старт и аддитивное увеличение мультипликативного уменьшения?

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

  • Чем определяется размер окна перегрузки?

    -Размер окна перегрузки определяется динамически в зависимости от того, насколько загружена сеть, и использует комбинацию методов аддитивного увеличения, мультипликативного уменьшения и медленного старта.

  • Какой был первый случай перегрузки сети в истории интернета?

    -Первый случай перегрузки сети в истории интернета произошел в 1986 году и назывался коллапс перегрузки.

  • null

    -null

  • Что делает получатель при отправке подтверждения в протоколе TCP?

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

  • Чем может быть сигналом перегрузки сети?

    -Сигналом перегрузки сети может быть потеря сегмента, которая указывает на то, что сеть перегружена, а не канал связи испытывает ошибки.

  • Какой метод оптимизирует размер окна перегрузки на быстрых и надежных каналах связи?

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

  • Какой порог определяется для медленного старта после сигнала о перегрузке?

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

Outlines

00:00

😀 Управление потоком и перегрузкой в сетях

В этом параграфе рассказывается о том, как в сетях управляют потоком и перегрузкой. Обсуждаются механизмы управления потоком, такие как использование размера окна, и проблемы, которые могут возникнуть, если сеть перегружена. Рассказывается о протоколе TCP и его способах предотвращения перегрузки сети, включая использование методов аддитивного увеличения и мультипликативного уменьшения размера окна. Также упоминается исторический случай 1986 года, связанный с коллапсом перегрузки в интернете.

05:00

😉 Сигналы перегрузки и методы управления окном

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

Mindmap

Keywords

💡Протокол TCP

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

💡Управление перегрузкой

Управление перегрузкой - это процесс определения и контроля объема данных, отправляемых в сеть, чтобы избежать их перегрузки. В видео рассказывают о том, как с помощью определения размера 'окна перегрузки' можно предотвращать потерю данных и снижение производительности сети.

💡ОКНО

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

💡ОКНО УПРАВЛЕНИЯ ПЕРЕГРУЗКОЙ

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

💡АДДИТИВНОЕ УВЕЛИЧЕНИЕ

Аддитивное увеличение - это метод управления размером окна перегрузки, при котором размер окна увеличивается на определенное значение (обычно размер одного сегмента) при каждом получении подтверждения. В контексте видео, этот метод используется для медленного и стабильного увеличения объема передаваемых данных.

💡МНОТИПЛИКАТИВНОЕ УМЕНЬШЕНИЕ

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

💡МЕДЛЕННЫЙ СТАРТ

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

💡ПОТЕРЯ СЕГМЕНТОВ

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

💡СИГНАЛЫ ПЕРЕГРУЗКИ

Сигналы перегрузки - это механизмы, которые позволяют узнавать об_overloaded сети и принимать меры для её устранения. В видео рассматриваются различные типы сигналов, включая потерю сегментов, задержку сегментов и явный сигнал от маршрутизатора.

💡ТИСЕ ПИ

ТИСЕ ПИ (TCP) - это протокол, связанный с управлением потоком и перегрузкой в сетях. В контексте видео, ТИСЕ ПИ используется для определения размера окна на основе размера буфера получателя и текущей загрузки сети.

💡СПЕЦИФИКАЦИЯ ОКНА

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

Highlights

Привет, меня зовут Андрей Сазыкин. Курс по сети и системам телекоммуникаций.

Тема лекции: протокол TCP, управление перегрузкой.

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

История: в 1986 году произошло событие, известное как коллапс перегрузки в интернете.

Введение динамического определения количества сегментов, которые можно отправить в сеть.

Окно перегрузки и окно управления потоком: два типа механизмов для управления сетевым трафиком.

Метод аддитивного увеличения и мультипликативного уменьшения размера окна перегрузки.

Сигналы перегрузки: потеря сегментов и задержка сегментов.

Медленный старт: экспоненциальное увеличение размера окна перегрузки.

Комбинация медленного старта и аддитивного увеличения мультипликативного уменьшения.

Порог медленного старта определяется после сигнала о перегрузке.

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

Влияние медленных и надежных каналов связи на работу метода аддитивного увеличения.

Современные быстрые и надежные каналы связи и их влияние на методы управления окном.

Следующую лекцию будет посвящена работе сигналов перегрузки и их типов.

Заключение лекции: управление перегрузкой и оптимизация размера окна для эффективного сетевого обмена.

Transcripts

00:00

привет меня зовут андрей сазыкин это

00:02

курс сети и системы телекоммуникаций

00:05

тема лекции протокол tcp управление

00:08

перегрузкой на прошлой лекции мы

00:11

рассматривали управление потоком в тисе

00:13

пи этот способ предотвращения отправки

00:16

все слишком большого количества

00:17

сегментов которые не могут быть приняты

00:20

получателем у которого просто

00:22

недостаточно и вместо в буфере

00:24

получатель при отправке каждого

00:26

подтверждения указывает также в сегменте

00:29

размер окна

00:29

количество байт которые он может принять

00:32

отправлять больше данных в сеть не имеет

00:35

смысл но может быть и другая проблема в

00:39

буфере получателя может быть достаточно

00:41

свободного места но сеть через которые

00:44

передаются данные

00:45

перегружена одновременно большое

00:48

количество компьютеров решили передавать

00:50

данные маршрутизаторы не способны

00:53

передать такое большое количество

00:54

пакетов и единицу времени и они

00:57

вынуждены их отбрасывать пакет в этом

00:59

случае происходит так называемая

01:01

перегрузка отправителей передают в сеть

01:03

большое количество данных

01:05

однако большая часть из этих данных

01:07

отбрасываются маршрутизаторами и не

01:09

доходит до получателей таким образом

01:12

большая часть каналов сети занята но

01:15

полезные данные от отправителя до

01:17

получателя почти не доходит первый раз

01:20

такая ситуация произошла в интернет в

01:23

1986 году она называлась коллапс

01:26

перегрузки хотя теоретически она была

01:29

предсказана раньше чтобы решить эту

01:31

проблему стали учитывать

01:33

загрузку сети при формировании размера

01:36

кто то есть при определении количества

01:39

сегментов которые можно отправить в сеть

01:41

не дожидаясь получения подтверждения

01:43

если раньше до коллапса перегрузки

01:47

такое количество сегментов всегда была

01:49

одинаковы 8 штук то после коллапса

01:52

перегрузки решили что это количество

01:55

нужно

01:56

для динамически в зависимости от того

01:58

загружено сеть или нет и для того чтобы

02:01

определить количество сегментов которые

02:03

можно отправить все

02:05

используются так называемые окно

02:07

перегрузки таким образом в 10 у нас есть

02:10

два типа окна окно управление потоком

02:13

которые мы рассматривали на прошлом

02:15

акции размер этого окна задаются

02:17

получателем зависимости от того сколько

02:20

места в буфере и передается отправителю

02:23

в сегментах с подтверждением окно

02:26

перегрузки существует на стороне

02:28

отправителя его размер рассчитывается

02:31

отправителем в зависимости от того какая

02:34

нагрузка на сеть они от того сколько

02:36

данных может принять приложение

02:38

приложение может быть готова принять

02:40

много данных но всей загружены в этом

02:44

случае отправлять как много данных не

02:46

имеет смысла оба типа окна

02:48

окно в управлении потоком и окно

02:50

перегрузки используются для решения

02:52

более общей задачи управлению скорости

02:56

передачи данных в эти себе

02:57

если размер скользящего окна будет

03:00

слишком маленьким то все мы будем

03:03

отправлять маленькое количество

03:04

сегментов сеть будет не загружено

03:07

полностью и скорость передачи будет

03:09

маленькой ниже чем возможно с другой

03:12

стороны если мы будем отправлять в сеть

03:14

большое количество сегментов то сеть

03:17

может оказаться перегруженной

03:19

маршрутизаторы начнут отбрасывать наши

03:22

сегменты их нужно будет отправлять

03:24

заново и скорость передачи данных

03:27

опять окажется низкой таким образом нам

03:30

нужно определить оптимальный размер окна

03:32

для того чтобы мы могли передавать

03:34

данные по сети

03:35

избегая загрузки и приложение могло

03:38

принять эти данные и записать их в свой

03:41

буфер в тисе пи

03:42

для определения размера окна перегрузки

03:45

используется метод аддитивного

03:47

увеличения мультипликативного кулиш

03:49

не суметь до заключается в том что при

03:52

получении каждого подтверждения мы

03:55

прибавляем к размеру окна некоторые

03:57

значения как правило это размер одного

04:00

сегмента тисе пи

04:01

а если перегрузка произошла та у мы

04:04

умножаем размер окна на некоторые

04:07

значения как правило это одна вторая то

04:10

есть в тисе пи при перегрузке размер

04:12

окна уменьшается в два раза вот график

04:15

работы метода аддитивного увеличения

04:18

мультипликативного уменьшения мы

04:20

начинаем передавать данные поступают

04:22

подтверждение размер окна увеличивается

04:24

происходит аддитивное увеличение затем в

04:28

сети произошла перегрузка размер окна

04:31

уменьшается в два раза произошло

04:34

мультипликативным уменьшение затем

04:36

данные снова передаются размера к нам

04:39

прикажут получение каждого подтверждения

04:42

увеличивается на один сегмент аддитивные

04:44

увеличения и так происходит пока не

04:47

произойдет следующее перегрузка таким

04:50

образом размер окна у нас напоминают

04:52

зубья пилы

04:54

как отправитель не узнает о том что в

04:56

сети произошла перегрузка это достаточно

05:00

сложная задача потому что сеть может

05:02

быть составной и перегрузка может

05:04

происходить не на том сегменте сети

05:06

который подключен к отправителю

05:08

а на каком-то сегменте между

05:10

отправителем и получателем которые

05:12

находятся достаточно далеко от того и

05:15

другого чаще всего на практике в

05:17

качестве сигнала перегрузки используются

05:19

потеря сегмент считается что сейчас

05:22

каналу связи уже хорошего качества и

05:24

если произошла потеря сегмента то не

05:27

из-за ошибки канала а из-за того что

05:30

сеть перегружена поэтому нужно уменьшить

05:32

размер окна для того чтобы избежать

05:34

дальнейшей перегрузке

05:36

есть также и другие типы сигналов этого

05:39

задержка сегмента и сигнал от

05:42

маршрутизатора но в мы их рассмотрим в

05:44

следующей лекции

05:45

метод аддитивного увеличения

05:47

мультипликативного

05:48

решение хорошо работал на медленных

05:50

каналов связи

05:51

которые были во времена создания сети

05:54

интернет но у нас современных быстрых и

05:57

надежных каналов связи

05:58

этот метод работает плохо с помощью

06:01

аддитивного увеличения размер окна

06:03

перегрузкой увеличивается очень медленно

06:06

для того чтобы решить эту проблему

06:08

был предложен другой метод управления

06:10

размерам окна

06:11

так называемый медленный старт при

06:14

медленном старте размер окна

06:15

увеличивается на каждое подтверждение ни

06:18

на один сегмент

06:19

она 2 благодаря этому происходит

06:22

экспоненциальное увеличение размера окна

06:24

сначала мы отправляем один сегмент

06:27

получили подтверждение отправляем 2

06:30

сегмента получаю 2 подтверждения на

06:32

каждое подтверждение отправляем по два

06:35

сегмента всего 4 потом 8 потом 16 и так

06:39

далее то есть несмотря на название

06:40

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

06:43

увеличивается

06:44

гораздо быстрее чем при аддитивном

06:46

увеличение мультипликативным уменьшение

06:49

недостаток метода заключается в том что

06:51

если произошла потеря сегмента то размер

06:54

окна уменьшается до нуля

06:56

таким образом медленный старт быстро

06:58

разгоняется но также быстро тормозит в

07:01

цепи используется комбинация медленного

07:04

старта и аддитивного увеличения

07:06

мультипликативного уменьшения сначала

07:08

используется медленный старт для того

07:11

чтобы быстро заполнить доступную

07:12

пропускную способность канала после того

07:15

как размер окна достиг определенного

07:17

значения так называемый паров медленного

07:20

старта происходит переход на аддитивное

07:23

увеличение мультипликативной уменьшение

07:26

и дальше уже используется этот метод

07:28

размер окна увеличивается медленно но

07:31

если пришел сигнал о перегрузке размер

07:34

окна

07:35

уменьшается в два раза а не снижается до

07:38

нуля порог медленного старта

07:40

определяется следующим образом сначала

07:42

запускается медленный старт и работает

07:45

до того пока не поступит сигнал о

07:47

перегрузке после этого размера к нам при

07:50

котором пришел сигнала перегрузки девица

07:53

в два раза и это значение выбираются

07:56

порога медленно

07:57

астарта таким образом формируется

07:59

достаточный запас размера окна для того

08:02

чтобы не произошла перегрузка которые

08:04

при аддитивном увеличение скорее всего

08:07

не будет достигнут если конечно загрузка

08:09

сети останется на том же самом уровне

08:11

итак мы рассмотрели управление

08:14

перегрузкой в 10

08:15

это предотвращение отправки в сеть

08:17

слишком большого количества сегментов

08:19

которые приведут к перегрузке для того

08:22

чтобы справиться с этой проблемы

08:24

используются окно перегрузки которая

08:27

определяет сколько сегментов можно

08:29

отправить в сеть если раньше размер окна

08:31

перегрузки был фиксированным 8 сегментов

08:34

то сейчас он определяется динамический в

08:37

зависимости от того насколько загружена

08:40

сеть тисе пи для определения размера

08:42

окна перегрузки использует комбинацию

08:45

двух методов аддитивное увеличение

08:48

мультипликативного и уменьшение

08:49

и медленный старт сначала работает

08:52

медленный старт затем происходит переход

08:55

на объективные увеличение

08:57

мультипликативных уменьшению основным

09:00

сигналом и перегрузки

09:01

являются потеря сегментов в сети но

09:04

также существуют и другие сигналы эта

09:07

задержка сегментов и явный сигнал от

09:10

маршрутизатор как работают эти типы

09:12

сигналов о перегрузке мы рассмотрим на

09:15

следующей лекции а на сегодня всем

09:17

спасибо что смотрели до свидания

Rate This

5.0 / 5 (0 votes)

Связанные теги
ТелекоммуникацииПротоколыTCPУправление окнамиПерегрузка сетиПотоковый контрольАддитивное увеличениеМультипликативное уменьшениеМедленный стартСетевые технологииЛекция