В чем разница между управлением потоком и контролем перегрузки в TCP?


85

В чем разница между управлением потоком и контролем перегрузки в TCP?

Этот вопрос можно разбить на две части:

  1. Какова общая цель контроля потока и перегрузки?
  2. Как решается задача?

Согласно Википедии , управление потоком TCP зависит от размера окна, указанного в сообщении ACK. Контроль перегрузки также зависит от сообщений подтверждения. Я хотел бы знать, в чем разница между двумя целями и как они работают.


47
Не вопрос домашнего задания. Скорее вопрос для подготовки к собеседованию. Что в нем "не по теме"? @EJP
GM Lucid

Ответы:


126

Что касается части 1, супер общий обзор:

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

Контроль перегрузки - это метод обеспечения того, чтобы каждый в сети имел «справедливый» доступ к сетевым ресурсам в любой момент времени. В смешанной сетевой среде каждый должен иметь возможность предполагать одинаковый общий уровень производительности. Обычный сценарий, помогающий понять это, - это офисная локальная сеть. У вас есть несколько сегментов LAN в офисе, каждый из которых выполняет свою работу в локальной сети, но тогда всем им может потребоваться выход по каналу WAN, который работает медленнее, чем составляющие сегменты LAN. Представьте, что в локальной сети 100 Мб подключений, которые в конечном итоге выходят через WAN-канал 5 Мб Там должен быть какой-то контроль перегрузки, чтобы гарантировать отсутствие проблем в большей сети.

По части 2:

Если это вопрос подготовки к собеседованию, как вы сказали выше, я бы подумал о том, чтобы потратить некоторое время на то, чтобы почитать о TCP / IP в целом. Не пользуйтесь Википедией. RTFM! Это ОЧЕНЬ стоит вашего времени. Вы можете возразить, что это самый важный протокол, на котором держится большая часть современного Интернета.

Что нужно прочитать о Flow Control: остановка и ожидание, скользящее окно, фреймы PAUSE.

Что нужно прочитать для контроля перегрузки: QoS (качество обслуживания), политики повторной передачи, политики окон.

Помимо этого, вы можете искать реализации любого конкретного поставщика (Cisco и т. Д.)


3
Хороший ответ, но есть как минимум одна ошибка: «кадры ПАУЗЫ» не используются в управлении перегрузкой, они являются механизмом управления потоком.
Angel

1
Вы абсолютно правы. Добавлено не в тот абзац, редактирую сейчас.
JP Doherty,

25

Управление потоком: отправитель отправит достаточно данных, которые могут быть размещены на стороне получателя.

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


22

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

  • Это гарантирует, что отправитель не перегружает получателя.
  • Это местное явление, в отличие от контроля за пробками.
  • Обычно это инициируется отправителем.

Контроль перегрузки:

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

5

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


5

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

Управление потоком, охватываемое от точки к точке, включает только отправителя и получателя.


2

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

  • Справедливость : голод не должен возникать для любого хоста, подключенного к сети, хотя терминология намного сложнее.
  • Эффективность : ссылки следует использовать на полную мощность, чтобы не вызывать перегрузки.

2

Управление потоком осуществляется на стороне получателя. Если отправитель отправляет пакеты, превышающие размер буфера получателя, в буфере получателя происходит переполнение. Чтобы избежать этого переполнения на стороне получателя, на стороне отправителя используется техника окон. Контроль перегрузки осуществляется на стороне отправителя. Это глобальное явление. Это происходит на роутере. Буфер маршрутизатора переполняется, когда многие отправители пытаются протолкнуть больше пакетов по той же ссылке.


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

0

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

  1. Когда буфер отправителя заполнен, мы предотвращаем отправку данных источником, чтобы данные не удалялись.
  2. В этом случае буфер приемника заполнен.
  3. Этого легко добиться с помощью протокола скользящего окна.

Контроль перегрузки

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

  2. Эта проблема связана с очередью роутера.

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


-4

Управление потоком: указывает, сколько сеть способна поглотить, окно перегрузки; Контроль перегрузки: показывает, сколько получатель может поглотить, объявленное окно; Max_window = min отправителя (объявленное окно, окно перегрузки);

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.