25
Сети и системы телекоммуникаций Управление потоком и перегрузкой в TCP ИМКН УрФУ

Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP

Embed Size (px)

Citation preview

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

Управление потоком и перегрузкой в TCP

ИМКН УрФУ

2

Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP

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

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

Алгоритм Нагля

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

AIMD

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

План

3

Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP

TCP должен обеспечивать• Гарантированную доставку данных• Эффективное использование канала связи

TCP должен хорошо работать как на медленных каналах связи с ошибками, так и на быстрых надежных каналах

Изменение размера скользящего окна – основной метод регулирования скорости в TCP

• Традиционный подход – фиксированный размер окна 8 сегментов TCP

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

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

4

Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP

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

Отправитель

Получатель

Приложение

Буфер

Транспортная подсистема

5

Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP

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

Отправитель

Получатель

Приложение

Буфер

Транспортная подсистема

6

Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP

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

Отправитель

Получатель

Приложение

Буфер

Транспортная подсистема

7

Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP

Предотвращение «затопления» быстрым отправителем медленного получателя

• Сеть может быть свободна, но приложение не готово получить данные

Транспортная подсистема работает с приложениями:

• Приложение не обязано забирать данные, как только они появились

• Транспортная подсистема не обязана передавать данные приложению или в сеть, как только она их получила

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

8

Сети и системы телекоммуникаций. Протокол TCP

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

32 бита

Порт отправителя Порт получателя

Порядковый номер

Номер подтверждения

Размер окнаFIN

SYN

RST

PSH

ACK

URG

Длина заголо

-вка

Контрольная сумма Указатель на срочные данные

Параметры (не обязательно)

Данные (не обязательно)

9

Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP

Для управления потоком TCP использует механизм скользящего окна

Получатель записывает в поле заголовка TCP «Размер окна» объем данных, которые он готов принять (свободное место в буфере)

Размер окна может меняться динамически• Приложение читает данные из буфера быстро – окно

растет• Приложение читает медленно, буфер заполнен – окно

уменьшается

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

10

Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP

Некоторые приложения читают и пишут данные маленькими порциями

Эмуляторы терминала telnet или ssh• При нажатии каждой клавиши данные передаются на

сервер – 1 байт данных• Для передачи 1 байта данных требуется передать IP-

пакет длиной 41 байт (20 байт заголовок IP, 20 байт заголовок TCP, 1 байт данных)

• Высокие накладные расходы

Отложенные подтверждения• Задержка отправки подтверждения до 500 мс в

надежде получить данные• Терминал за 500 мс выдает эхо, данные отправляются

вместе с подтверждением

Отложенные подтверждения

11

Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP

Получателю отправляется только первая порция маленьких данных

Остальные данные буферизируются, пока не придет подтверждение

Данные из буфера отправляются в одном сегменте

Продолжается накопление данные в буфере, пока не придет новое подтверждение

Алгоритм Нагля (Nagle’s algorithm)

12

Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP

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

• Отправляется большая порция данных• Многие сегменты будут отброшены сетью

Перегрузка (congestion) – состояние, при котором в сеть поступает больше пакетов, чем она способна передать

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

Маршрутизатор

Буфер

13

Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP

Коллапс перегрузки в Интернет (congestion collapse)

• Произошел в 1986 г. (теоретически предсказан в 1984)

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

порядок

Решение:• Учет загрузки сети при формировании размера

скользящего окна• Механизм – окно перегрузки• Традиционный подход – фиксированный размер 8

сегментов TCP• Предложенный подход – динамический размер окна в

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

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

14

Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP

Окно управления потоком:• Задается получателем (поле «Размер окна» в

заголовке TCP)• Размер определяется возможностями приложения

читать данные из буфера

Окно перегрузки:• Задается отправителем• Размер определяется загрузкой сети

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

Окна перегрузки и управления потоком

15

Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP

Эффективность• Сеть должна быть максимально загружена

Справедливость• Все хосты в сети получают примерно одинаковую

часть от пропускной способности сети

Характеристики загрузки сети

A B C

16

Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP

Additive increase/multiplicative decrease (Аддитивное увеличение, мультипликативное уменьшение)

• Метод, который используется в TCP для определения размера окна перегрузки

Типовые параметры:• a – максимальный размер сегмента (MSS)• b – ½

AIMD

17

Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP

AIMD

Хост 1 Хост 2

«Узкое» место

Computer Networks 5/Ehttp://computernetworks5e.org/

18

Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP

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

азм

ер о

кна

Время

Аддитивное увеличение

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

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

19

Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP

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

Сигнал Пример протокола

Достоинства и недостатки

Потеря пакета TCP New RenoCubic TCP

(Linux)

Хорошо распознаетсяПоздно узнаем о

перегрузке

Задержка пакета

Compound TCP (Windows)

Быстро узнаем о перегрузке

Задержка может быть вызвана не только

перегрузкой

Сигнал от маршрутизатор

а

TCP with Explicit Congestion Notification

Быстро узнаем о перегрузке

Необходима поддержка в маршрутизаторе

Computer Networks 5/Ehttp://computernetworks5e.org/

20

Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP

Проблема AIMD – медленный (линейный) рост размера окна перегрузки

• Приемлемо на медленных каналах• Неприемлемо на быстрых надежных каналах

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

• Первоначально размер окна перегрузки устанавливается маленьким (1 или 4 сегмента)

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

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

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

21

Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP

TCP использует совместно AIMD и медленный старт

• Работа начинается с медленного старта• После достижения «порога медленного старта» TCP

переходит на AIMD

Определение «порога медленного старта»• Медленный старт начинает работать без ограничения• Поступает сигнал о перегрузке• Порог медленного старта устанавливается в половину

текущего окна перегрузки• Окно перегрузки уменьшается до минимального

значения

Медленный старт и AIMD в TCP

22

Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP

Медленный старт и AIMD в TCPР

азм

ер о

кна

Время

Аддитивное увеличение

Порог медленного старта

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

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

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

23

Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP

Приложение просит много данных, но сеть перегружена:

• Окно управления потоком: 40Кбайт• Окно перегрузки: 20 Кбайт• Скользящее окно: 20 Кбайт

Сеть свободна, но приложение ограничивает скорость :

• Окно управления потоком: 20Кбайт• Окно перегрузки: 40 Кбайт• Скользящее окно: 20 Кбайт

Размер скользящего окна

24

Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP

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

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

Алгоритм Нагля

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

AIMD

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

Итоги

25

Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP

Вопросы?