Презентация лекции "Управление потоком и перегрузкой в TCP".
План лекции:
Скорость передачи данных с использованием протокола TCP
Управление потоком в TCP
Алгоритм Нагля
Управление перегрузкой в TCP
AIMD
Медленный старт
1 of 25
Downloaded 28 times
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