ݺߣ

ݺߣShare a Scribd company logo
Сети и системы телекоммуникаций
Управление потоком и
перегрузкой в TCP
ИМКН УрФУ
Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP
Скорость передачи данных с использованием
протокола TCP
Управление потоком в TCP
Алгоритм Нагля
Управление перегрузкой в TCP
AIMD
Медленный старт
План
2
Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP
TCP должен обеспечивать
• Гарантированную доставку данных
• Эффективное использование канала связи
TCP должен хорошо работать как на медленных
каналах связи с ошибками, так и на быстрых
надежных каналах
Изменение размера скользящего окна – основной
метод регулирования скорости в TCP
• Традиционный подход – фиксированный размер окна 8
сегментов TCP
• Современный подход – динамический размер окна в
зависимости от требований приложения и загрузки
сети
Скорость передачи данных в TCP
3
Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP
Скорость передачи данных в TCP
4
Отправитель
Получатель
Приложение
Буфер
Транспортная
подсистема
Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP
Управление потоком
5
Отправитель
Получатель
Приложение
Буфер
Транспортная
подсистема
Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP
Управление перегрузкой
6
Отправитель
Получатель
Приложение
Буфер
Транспортная
подсистема
Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP
Предотвращение «затопления» быстрым
отправителем медленного получателя
• Сеть может быть свободна, но приложение не готово
получить данные
Транспортная подсистема работает с
приложениями:
• Приложение не обязано забирать данные, как только
они появились
• Транспортная подсистема не обязана передавать
данные приложению или в сеть, как только она их
получила
Управление потоком в TCP
7
Сети и системы телекоммуникаций. Протокол TCP
Управление потоком в TCP
8
32 бита
Порт отправителя Порт получателя
Порядковый номер
Номер подтверждения
Размер окна
F
I
N
S
Y
N
R
S
T
P
S
H
A
C
K
U
R
G
Длина
заголо
-вка
Контрольная сумма Указатель на срочные данные
Параметры (не обязательно)
Данные (не обязательно)
Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP
Для управления потоком TCP использует механизм
скользящего окна
Получатель записывает в поле заголовка TCP
«Размер окна» объем данных, которые он готов
принять (свободное место в буфере)
Размер окна может меняться динамически
• Приложение читает данные из буфера быстро – окно
растет
• Приложение читает медленно, буфер заполнен – окно
уменьшается
Управление потоком в TCP
9
Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP
Некоторые приложения читают и пишут данные
маленькими порциями
Эмуляторы терминала telnet или ssh
• При нажатии каждой клавиши данные передаются на
сервер – 1 байт данных
• Для передачи 1 байта данных требуется передать IP-
пакет длиной 41 байт (20 байт заголовок IP, 20 байт
заголовок TCP, 1 байт данных)
• Высокие накладные расходы
Отложенные подтверждения
• Задержка отправки подтверждения до 500 мс в
надежде получить данные
• Терминал за 500 мс выдает эхо, данные отправляются
вместе с подтверждением
Отложенные подтверждения
10
Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP
Получателю отправляется только первая порция
маленьких данных
Остальные данные буферизируются, пока не
придет подтверждение
Данные из буфера отправляются в одном сегменте
Продолжается накопление данные в буфере, пока
не придет новое подтверждение
Алгоритм Нагля (Nagle’s algorithm)
11
Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP
Приложение может быть готово принять данные,
но сеть перегружена
• Отправляется большая порция данных
• Многие сегменты будут отброшены сетью
Перегрузка (congestion) – состояние, при котором
в сеть поступает больше пакетов, чем она
способна передать
Управление перегрузкой
12
Маршрутизатор
Буфер
Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP
Коллапс перегрузки в Интернет (congestion
collapse)
• Произошел в 1986 г. (теоретически предсказан в 1984)
• Каналы связи загружены полностью
• Скорость передачи данных между хостами падала на
порядок
Решение:
• Учет загрузки сети при формировании размера
скользящего окна
• Механизм – окно перегрузки
• Традиционный подход – фиксированный размер 8
сегментов TCP
• Предложенный подход – динамический размер окна в
зависимости от нагрузки на сеть
Коллапс перегрузки
13
Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP
Окно управления потоком:
• Задается получателем (поле «Размер окна» в заголовке
TCP)
• Размер определяется возможностями приложения
читать данные из буфера
Окно перегрузки:
• Задается отправителем
• Размер определяется загрузкой сети
Размер скользящего окна определяется меньшим
из окон перегрузки или управления потоком
Окна перегрузки и управления
потоком
14
Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP
Эффективность
• Сеть должна быть максимально загружена
Справедливость
• Все хосты в сети получают примерно одинаковую часть
от пропускной способности сети
Характеристики загрузки сети
15
A B C
Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP
Additive increase/multiplicative decrease
(Аддитивное увеличение, мультипликативное
уменьшение)
• Метод, который используется в TCP для определения
размера окна перегрузки
Типовые параметры:
• a – максимальный размер сегмента (MSS)
• b – ½
AIMD
16
Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP
AIMD
17
Хост 1 Хост 2
«Узкое» место
Computer Networks 5/E
http://computernetworks5e.org/
Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP
Размер окна AIMD
18
Размерокна
Время
Аддитивное
увеличение
Сигнал о
перегрузке
Мультипликативное
уменьшение
Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP
Сигнал о перегрузке
19
Сигнал Пример
протокола
Достоинства и
недостатки
Потеря пакета TCP New Reno
Cubic TCP
(Linux)
Хорошо распознается
Поздно узнаем о перегрузке
Задержка
пакета
Compound TCP
(Windows)
Быстро узнаем о перегрузке
Задержка может быть
вызвана не только
перегрузкой
Сигнал от
маршрутизатора
TCP with
Explicit
Congestion
Notification
Быстро узнаем о перегрузке
Необходима поддержка в
маршрутизаторе
Computer Networks 5/E
http://computernetworks5e.org/
Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP
Проблема AIMD – медленный (линейный) рост
размера окна перегрузки
• Приемлемо на медленных каналах
• Неприемлемо на быстрых надежных каналах
Медленный старт - альтернативный метод
управления размером окна перегрузки:
• Первоначально размер окна перегрузки
устанавливается маленьким (1 или 4 сегмента)
• При каждом получении подтверждения отправляется 2
сегмента
• После сигнала о перегрузке начинаем с начала
Медленный старт обеспечивает
экспоненциальный рост размера окна
перегрузки
Медленный старт
20
Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP
TCP использует совместно AIMD и медленный
старт
• Работа начинается с медленного старта
• После достижения «порога медленного старта» TCP
переходит на AIMD
Определение «порога медленного старта»
• Медленный старт начинает работать без ограничения
• Поступает сигнал о перегрузке
• Порог медленного старта устанавливается в половину
текущего окна перегрузки
• Окно перегрузки уменьшается до минимального
значения
Медленный старт и AIMD в TCP
21
Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP
Медленный старт и AIMD в TCP
22
Размерокна
Время
Аддитивное
увеличение
Порог медленного
старта
Медленный старт
Сигнал о перегрузке
Мультипликативное
уменьшение
Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP
Приложение просит много данных, но сеть
перегружена:
• Окно управления потоком: 40Кбайт
• Окно перегрузки: 20 Кбайт
• Скользящее окно: 20 Кбайт
Сеть свободна, но приложение ограничивает
скорость :
• Окно управления потоком: 20Кбайт
• Окно перегрузки: 40 Кбайт
• Скользящее окно: 20 Кбайт
Размер скользящего окна
23
Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP
Скорость передачи данных с использованием
протокола TCP
Управление потоком в TCP
Алгоритм Нагля
Управление перегрузкой в TCP
AIMD
Медленный старт
Итоги
24
Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP
Вопросы?
25

More Related Content

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

  • 1. Сети и системы телекоммуникаций Управление потоком и перегрузкой в TCP ИМКН УрФУ
  • 2. Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP Скорость передачи данных с использованием протокола TCP Управление потоком в TCP Алгоритм Нагля Управление перегрузкой в TCP AIMD Медленный старт План 2
  • 3. Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP TCP должен обеспечивать • Гарантированную доставку данных • Эффективное использование канала связи TCP должен хорошо работать как на медленных каналах связи с ошибками, так и на быстрых надежных каналах Изменение размера скользящего окна – основной метод регулирования скорости в TCP • Традиционный подход – фиксированный размер окна 8 сегментов TCP • Современный подход – динамический размер окна в зависимости от требований приложения и загрузки сети Скорость передачи данных в TCP 3
  • 4. Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP Скорость передачи данных в TCP 4 Отправитель Получатель Приложение Буфер Транспортная подсистема
  • 5. Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP Управление потоком 5 Отправитель Получатель Приложение Буфер Транспортная подсистема
  • 6. Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP Управление перегрузкой 6 Отправитель Получатель Приложение Буфер Транспортная подсистема
  • 7. Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP Предотвращение «затопления» быстрым отправителем медленного получателя • Сеть может быть свободна, но приложение не готово получить данные Транспортная подсистема работает с приложениями: • Приложение не обязано забирать данные, как только они появились • Транспортная подсистема не обязана передавать данные приложению или в сеть, как только она их получила Управление потоком в TCP 7
  • 8. Сети и системы телекоммуникаций. Протокол TCP Управление потоком в TCP 8 32 бита Порт отправителя Порт получателя Порядковый номер Номер подтверждения Размер окна F I N S Y N R S T P S H A C K U R G Длина заголо -вка Контрольная сумма Указатель на срочные данные Параметры (не обязательно) Данные (не обязательно)
  • 9. Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP Для управления потоком TCP использует механизм скользящего окна Получатель записывает в поле заголовка TCP «Размер окна» объем данных, которые он готов принять (свободное место в буфере) Размер окна может меняться динамически • Приложение читает данные из буфера быстро – окно растет • Приложение читает медленно, буфер заполнен – окно уменьшается Управление потоком в TCP 9
  • 10. Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP Некоторые приложения читают и пишут данные маленькими порциями Эмуляторы терминала telnet или ssh • При нажатии каждой клавиши данные передаются на сервер – 1 байт данных • Для передачи 1 байта данных требуется передать IP- пакет длиной 41 байт (20 байт заголовок IP, 20 байт заголовок TCP, 1 байт данных) • Высокие накладные расходы Отложенные подтверждения • Задержка отправки подтверждения до 500 мс в надежде получить данные • Терминал за 500 мс выдает эхо, данные отправляются вместе с подтверждением Отложенные подтверждения 10
  • 11. Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP Получателю отправляется только первая порция маленьких данных Остальные данные буферизируются, пока не придет подтверждение Данные из буфера отправляются в одном сегменте Продолжается накопление данные в буфере, пока не придет новое подтверждение Алгоритм Нагля (Nagle’s algorithm) 11
  • 12. Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP Приложение может быть готово принять данные, но сеть перегружена • Отправляется большая порция данных • Многие сегменты будут отброшены сетью Перегрузка (congestion) – состояние, при котором в сеть поступает больше пакетов, чем она способна передать Управление перегрузкой 12 Маршрутизатор Буфер
  • 13. Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP Коллапс перегрузки в Интернет (congestion collapse) • Произошел в 1986 г. (теоретически предсказан в 1984) • Каналы связи загружены полностью • Скорость передачи данных между хостами падала на порядок Решение: • Учет загрузки сети при формировании размера скользящего окна • Механизм – окно перегрузки • Традиционный подход – фиксированный размер 8 сегментов TCP • Предложенный подход – динамический размер окна в зависимости от нагрузки на сеть Коллапс перегрузки 13
  • 14. Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP Окно управления потоком: • Задается получателем (поле «Размер окна» в заголовке TCP) • Размер определяется возможностями приложения читать данные из буфера Окно перегрузки: • Задается отправителем • Размер определяется загрузкой сети Размер скользящего окна определяется меньшим из окон перегрузки или управления потоком Окна перегрузки и управления потоком 14
  • 15. Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP Эффективность • Сеть должна быть максимально загружена Справедливость • Все хосты в сети получают примерно одинаковую часть от пропускной способности сети Характеристики загрузки сети 15 A B C
  • 16. Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP Additive increase/multiplicative decrease (Аддитивное увеличение, мультипликативное уменьшение) • Метод, который используется в TCP для определения размера окна перегрузки Типовые параметры: • a – максимальный размер сегмента (MSS) • b – ½ AIMD 16
  • 17. Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP AIMD 17 Хост 1 Хост 2 «Узкое» место Computer Networks 5/E http://computernetworks5e.org/
  • 18. Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP Размер окна AIMD 18 Размерокна Время Аддитивное увеличение Сигнал о перегрузке Мультипликативное уменьшение
  • 19. Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP Сигнал о перегрузке 19 Сигнал Пример протокола Достоинства и недостатки Потеря пакета TCP New Reno Cubic TCP (Linux) Хорошо распознается Поздно узнаем о перегрузке Задержка пакета Compound TCP (Windows) Быстро узнаем о перегрузке Задержка может быть вызвана не только перегрузкой Сигнал от маршрутизатора TCP with Explicit Congestion Notification Быстро узнаем о перегрузке Необходима поддержка в маршрутизаторе Computer Networks 5/E http://computernetworks5e.org/
  • 20. Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP Проблема AIMD – медленный (линейный) рост размера окна перегрузки • Приемлемо на медленных каналах • Неприемлемо на быстрых надежных каналах Медленный старт - альтернативный метод управления размером окна перегрузки: • Первоначально размер окна перегрузки устанавливается маленьким (1 или 4 сегмента) • При каждом получении подтверждения отправляется 2 сегмента • После сигнала о перегрузке начинаем с начала Медленный старт обеспечивает экспоненциальный рост размера окна перегрузки Медленный старт 20
  • 21. Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP TCP использует совместно AIMD и медленный старт • Работа начинается с медленного старта • После достижения «порога медленного старта» TCP переходит на AIMD Определение «порога медленного старта» • Медленный старт начинает работать без ограничения • Поступает сигнал о перегрузке • Порог медленного старта устанавливается в половину текущего окна перегрузки • Окно перегрузки уменьшается до минимального значения Медленный старт и AIMD в TCP 21
  • 22. Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP Медленный старт и AIMD в TCP 22 Размерокна Время Аддитивное увеличение Порог медленного старта Медленный старт Сигнал о перегрузке Мультипликативное уменьшение
  • 23. Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP Приложение просит много данных, но сеть перегружена: • Окно управления потоком: 40Кбайт • Окно перегрузки: 20 Кбайт • Скользящее окно: 20 Кбайт Сеть свободна, но приложение ограничивает скорость : • Окно управления потоком: 20Кбайт • Окно перегрузки: 40 Кбайт • Скользящее окно: 20 Кбайт Размер скользящего окна 23
  • 24. Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP Скорость передачи данных с использованием протокола TCP Управление потоком в TCP Алгоритм Нагля Управление перегрузкой в TCP AIMD Медленный старт Итоги 24
  • 25. Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP Вопросы? 25