SlideShare a Scribd company logo
1 of 25
Сети и системы телекоммуникаций
Управление потоком и
перегрузкой в 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

What's hot

Сети и системы телекоммуникаций. Протокол IPv6
Сети и системы телекоммуникаций. Протокол IPv6Сети и системы телекоммуникаций. Протокол IPv6
Сети и системы телекоммуникаций. Протокол IPv6Andrey Sozykin
 
Сети и системы телекоммуникаций. Дополнительные функции коммутаторов
Сети и системы телекоммуникаций. Дополнительные функции коммутаторовСети и системы телекоммуникаций. Дополнительные функции коммутаторов
Сети и системы телекоммуникаций. Дополнительные функции коммутаторовAndrey Sozykin
 
Сети и системы телекоммуникаций. Протокол IP
Сети и системы телекоммуникаций. Протокол IPСети и системы телекоммуникаций. Протокол IP
Сети и системы телекоммуникаций. Протокол IPAndrey Sozykin
 
Сети и системы телекоммуникаций. Протокол UDP
Сети и системы телекоммуникаций. Протокол UDPСети и системы телекоммуникаций. Протокол UDP
Сети и системы телекоммуникаций. Протокол UDPAndrey Sozykin
 
Сети и системы телекоммуникаций. IP-адресация
Сети и системы телекоммуникаций. IP-адресацияСети и системы телекоммуникаций. IP-адресация
Сети и системы телекоммуникаций. IP-адресацияAndrey Sozykin
 
Сети и системы телекоммуникаций. Технология Ethernet
Сети и системы телекоммуникаций. Технология EthernetСети и системы телекоммуникаций. Технология Ethernet
Сети и системы телекоммуникаций. Технология EthernetAndrey Sozykin
 
Сети и системы телекоммуникаций. Физический уровень
Сети и системы телекоммуникаций. Физический уровеньСети и системы телекоммуникаций. Физический уровень
Сети и системы телекоммуникаций. Физический уровеньAndrey Sozykin
 
Сети и системы телекоммуникаций. Интерфейс сокетов
Сети и системы телекоммуникаций. Интерфейс сокетовСети и системы телекоммуникаций. Интерфейс сокетов
Сети и системы телекоммуникаций. Интерфейс сокетовAndrey Sozykin
 
Сети и системы телекоммуникаций. Сетевой уровень
Сети и системы телекоммуникаций. Сетевой уровеньСети и системы телекоммуникаций. Сетевой уровень
Сети и системы телекоммуникаций. Сетевой уровеньAndrey Sozykin
 
Сети и системы телекоммуникаций. Эталонные модели и стандартизация сетей
Сети и системы телекоммуникаций. Эталонные модели и стандартизация сетейСети и системы телекоммуникаций. Эталонные модели и стандартизация сетей
Сети и системы телекоммуникаций. Эталонные модели и стандартизация сетейAndrey Sozykin
 
Сети и системы телекоммуникаций. Введение в компьютерные сети
Сети и системы телекоммуникаций. Введение в компьютерные сетиСети и системы телекоммуникаций. Введение в компьютерные сети
Сети и системы телекоммуникаций. Введение в компьютерные сетиAndrey Sozykin
 
семейство протоколов
семейство протоколовсемейство протоколов
семейство протоколовliliya12345
 
Сети и системы телекоммуникаций. Основы организации сетей
Сети и системы телекоммуникаций. Основы организации сетейСети и системы телекоммуникаций. Основы организации сетей
Сети и системы телекоммуникаций. Основы организации сетейAndrey Sozykin
 
Tehnologii globalnyh-setey
Tehnologii globalnyh-seteyTehnologii globalnyh-setey
Tehnologii globalnyh-seteyezozbek
 
MPLS MPLS Inter-AS MPLS CSC
MPLS MPLS Inter-AS MPLS CSCMPLS MPLS Inter-AS MPLS CSC
MPLS MPLS Inter-AS MPLS CSCCisco Russia
 

What's hot (20)

Сети и системы телекоммуникаций. Протокол IPv6
Сети и системы телекоммуникаций. Протокол IPv6Сети и системы телекоммуникаций. Протокол IPv6
Сети и системы телекоммуникаций. Протокол IPv6
 
Сети и системы телекоммуникаций. Дополнительные функции коммутаторов
Сети и системы телекоммуникаций. Дополнительные функции коммутаторовСети и системы телекоммуникаций. Дополнительные функции коммутаторов
Сети и системы телекоммуникаций. Дополнительные функции коммутаторов
 
Сети и системы телекоммуникаций. Протокол IP
Сети и системы телекоммуникаций. Протокол IPСети и системы телекоммуникаций. Протокол IP
Сети и системы телекоммуникаций. Протокол IP
 
Сети и системы телекоммуникаций. Протокол UDP
Сети и системы телекоммуникаций. Протокол UDPСети и системы телекоммуникаций. Протокол UDP
Сети и системы телекоммуникаций. Протокол UDP
 
Сети и системы телекоммуникаций. IP-адресация
Сети и системы телекоммуникаций. IP-адресацияСети и системы телекоммуникаций. IP-адресация
Сети и системы телекоммуникаций. IP-адресация
 
Сети и системы телекоммуникаций. Технология Ethernet
Сети и системы телекоммуникаций. Технология EthernetСети и системы телекоммуникаций. Технология Ethernet
Сети и системы телекоммуникаций. Технология Ethernet
 
Сети и системы телекоммуникаций. Физический уровень
Сети и системы телекоммуникаций. Физический уровеньСети и системы телекоммуникаций. Физический уровень
Сети и системы телекоммуникаций. Физический уровень
 
Сети и системы телекоммуникаций. Интерфейс сокетов
Сети и системы телекоммуникаций. Интерфейс сокетовСети и системы телекоммуникаций. Интерфейс сокетов
Сети и системы телекоммуникаций. Интерфейс сокетов
 
Сети и системы телекоммуникаций. Сетевой уровень
Сети и системы телекоммуникаций. Сетевой уровеньСети и системы телекоммуникаций. Сетевой уровень
Сети и системы телекоммуникаций. Сетевой уровень
 
Сети и системы телекоммуникаций. Эталонные модели и стандартизация сетей
Сети и системы телекоммуникаций. Эталонные модели и стандартизация сетейСети и системы телекоммуникаций. Эталонные модели и стандартизация сетей
Сети и системы телекоммуникаций. Эталонные модели и стандартизация сетей
 
Сети и системы телекоммуникаций. Введение в компьютерные сети
Сети и системы телекоммуникаций. Введение в компьютерные сетиСети и системы телекоммуникаций. Введение в компьютерные сети
Сети и системы телекоммуникаций. Введение в компьютерные сети
 
семейство протоколов
семейство протоколовсемейство протоколов
семейство протоколов
 
Сети и системы телекоммуникаций. Основы организации сетей
Сети и системы телекоммуникаций. Основы организации сетейСети и системы телекоммуникаций. Основы организации сетей
Сети и системы телекоммуникаций. Основы организации сетей
 
Стек протоколов ip
Стек протоколов ipСтек протоколов ip
Стек протоколов ip
 
Адресация в ip сетях
Адресация в ip сетяхАдресация в ip сетях
Адресация в ip сетях
 
Tehnologii globalnyh-setey
Tehnologii globalnyh-seteyTehnologii globalnyh-setey
Tehnologii globalnyh-setey
 
Сетевые службы
Сетевые службыСетевые службы
Сетевые службы
 
Linkmeup
LinkmeupLinkmeup
Linkmeup
 
MPLS MPLS Inter-AS MPLS CSC
MPLS MPLS Inter-AS MPLS CSCMPLS MPLS Inter-AS MPLS CSC
MPLS MPLS Inter-AS MPLS CSC
 
Модель OSI
Модель OSIМодель OSI
Модель OSI
 

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

«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)
«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)
«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)AvitoTech
 
Оптимизация мобильного трафика с Cisco ASR 5000.
Оптимизация мобильного трафика с Cisco ASR 5000.Оптимизация мобильного трафика с Cisco ASR 5000.
Оптимизация мобильного трафика с Cisco ASR 5000.Cisco Russia
 
UNEC__1683904139.pptx
UNEC__1683904139.pptxUNEC__1683904139.pptx
UNEC__1683904139.pptxAdnanOktar1
 
Тандемные DDoS-атаки. Проблематика уязвимостей в спецификации TCP IP (фундаме...
Тандемные DDoS-атаки. Проблематика уязвимостей в спецификации TCP IP (фундаме...Тандемные DDoS-атаки. Проблематика уязвимостей в спецификации TCP IP (фундаме...
Тандемные DDoS-атаки. Проблематика уязвимостей в спецификации TCP IP (фундаме...Fuenteovejuna
 
интернет
интернетинтернет
интернетmari10ko
 
Alexander Lyamin - Anatomy and metrology of DoS/DDoS
Alexander Lyamin - Anatomy and metrology of DoS/DDoSAlexander Lyamin - Anatomy and metrology of DoS/DDoS
Alexander Lyamin - Anatomy and metrology of DoS/DDoSDefconRussia
 
Тандемные DDoS-атаки (Артём Гавриченков)
Тандемные DDoS-атаки (Артём Гавриченков)Тандемные DDoS-атаки (Артём Гавриченков)
Тандемные DDoS-атаки (Артём Гавриченков)Ontico
 
Тандемные DDoS-атаки / Проблематика уязвимостей в спецификации TCP/IP (фундам...
Тандемные DDoS-атаки / Проблематика уязвимостей в спецификации TCP/IP (фундам...Тандемные DDoS-атаки / Проблематика уязвимостей в спецификации TCP/IP (фундам...
Тандемные DDoS-атаки / Проблематика уязвимостей в спецификации TCP/IP (фундам...HLL
 
Скорость с доставкой до пользователя / Анатолий Орлов (Self Employed), Денис ...
Скорость с доставкой до пользователя / Анатолий Орлов (Self Employed), Денис ...Скорость с доставкой до пользователя / Анатолий Орлов (Self Employed), Денис ...
Скорость с доставкой до пользователя / Анатолий Орлов (Self Employed), Денис ...Ontico
 
Скорость с доставкой до пользователя
Скорость с доставкой до пользователяСкорость с доставкой до пользователя
Скорость с доставкой до пользователяAnatoliy Orlov
 
Apparatnoe i programmnoe_obespechenie_seti
Apparatnoe i programmnoe_obespechenie_setiApparatnoe i programmnoe_obespechenie_seti
Apparatnoe i programmnoe_obespechenie_setiAndrey1245
 
2015-12-05 Анатолий Орлов - Скорость с доставкой до пользователя
2015-12-05 Анатолий Орлов - Скорость с доставкой до пользователя2015-12-05 Анатолий Орлов - Скорость с доставкой до пользователя
2015-12-05 Анатолий Орлов - Скорость с доставкой до пользователяHappyDev
 
Технические требования
Технические требованияТехнические требования
Технические требованияAnatol Alizar
 
Сравнение TCP/IP стека Windows Vista / Server 2008 и Windows XP / Server 2003
Сравнение TCP/IP стека Windows Vista / Server 2008 и Windows XP / Server 2003Сравнение TCP/IP стека Windows Vista / Server 2008 и Windows XP / Server 2003
Сравнение TCP/IP стека Windows Vista / Server 2008 и Windows XP / Server 2003Andrey Beshkov
 
Как не надо писать приложения, основанные на протоколе TCP (Артём Гавриченков)
Как не надо писать приложения, основанные на протоколе TCP (Артём Гавриченков)Как не надо писать приложения, основанные на протоколе TCP (Артём Гавриченков)
Как не надо писать приложения, основанные на протоколе TCP (Артём Гавриченков)Ontico
 
Порядок преодоления болота на маршруте: как не надо писать приложения, основа...
Порядок преодоления болота на маршруте: как не надо писать приложения, основа...Порядок преодоления болота на маршруте: как не надо писать приложения, основа...
Порядок преодоления болота на маршруте: как не надо писать приложения, основа...HLL
 
Решения для мониторинга ИТ-инфраструктуры. Как правильно сделать выбор? Часть 1
Решения для мониторинга ИТ-инфраструктуры.  Как правильно сделать выбор? Часть 1Решения для мониторинга ИТ-инфраструктуры.  Как правильно сделать выбор? Часть 1
Решения для мониторинга ИТ-инфраструктуры. Как правильно сделать выбор? Часть 1СвязьКомплект
 
High performance computing - принципы проектирования сети
High performance computing - принципы проектирования сетиHigh performance computing - принципы проектирования сети
High performance computing - принципы проектирования сетиMUK
 

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

«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)
«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)
«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)
 
Оптимизация мобильного трафика с Cisco ASR 5000.
Оптимизация мобильного трафика с Cisco ASR 5000.Оптимизация мобильного трафика с Cisco ASR 5000.
Оптимизация мобильного трафика с Cisco ASR 5000.
 
UNEC__1683904139.pptx
UNEC__1683904139.pptxUNEC__1683904139.pptx
UNEC__1683904139.pptx
 
Тандемные DDoS-атаки. Проблематика уязвимостей в спецификации TCP IP (фундаме...
Тандемные DDoS-атаки. Проблематика уязвимостей в спецификации TCP IP (фундаме...Тандемные DDoS-атаки. Проблематика уязвимостей в спецификации TCP IP (фундаме...
Тандемные DDoS-атаки. Проблематика уязвимостей в спецификации TCP IP (фундаме...
 
интернет
интернетинтернет
интернет
 
Alexander Lyamin - Anatomy and metrology of DoS/DDoS
Alexander Lyamin - Anatomy and metrology of DoS/DDoSAlexander Lyamin - Anatomy and metrology of DoS/DDoS
Alexander Lyamin - Anatomy and metrology of DoS/DDoS
 
Lyamin zn2013
Lyamin zn2013Lyamin zn2013
Lyamin zn2013
 
Тандемные DDoS-атаки (Артём Гавриченков)
Тандемные DDoS-атаки (Артём Гавриченков)Тандемные DDoS-атаки (Артём Гавриченков)
Тандемные DDoS-атаки (Артём Гавриченков)
 
Тандемные DDoS-атаки / Проблематика уязвимостей в спецификации TCP/IP (фундам...
Тандемные DDoS-атаки / Проблематика уязвимостей в спецификации TCP/IP (фундам...Тандемные DDoS-атаки / Проблематика уязвимостей в спецификации TCP/IP (фундам...
Тандемные DDoS-атаки / Проблематика уязвимостей в спецификации TCP/IP (фундам...
 
Скорость с доставкой до пользователя / Анатолий Орлов (Self Employed), Денис ...
Скорость с доставкой до пользователя / Анатолий Орлов (Self Employed), Денис ...Скорость с доставкой до пользователя / Анатолий Орлов (Self Employed), Денис ...
Скорость с доставкой до пользователя / Анатолий Орлов (Self Employed), Денис ...
 
Скорость с доставкой до пользователя
Скорость с доставкой до пользователяСкорость с доставкой до пользователя
Скорость с доставкой до пользователя
 
Apparatnoe i programmnoe_obespechenie_seti
Apparatnoe i programmnoe_obespechenie_setiApparatnoe i programmnoe_obespechenie_seti
Apparatnoe i programmnoe_obespechenie_seti
 
Сети
СетиСети
Сети
 
2015-12-05 Анатолий Орлов - Скорость с доставкой до пользователя
2015-12-05 Анатолий Орлов - Скорость с доставкой до пользователя2015-12-05 Анатолий Орлов - Скорость с доставкой до пользователя
2015-12-05 Анатолий Орлов - Скорость с доставкой до пользователя
 
Технические требования
Технические требованияТехнические требования
Технические требования
 
Сравнение TCP/IP стека Windows Vista / Server 2008 и Windows XP / Server 2003
Сравнение TCP/IP стека Windows Vista / Server 2008 и Windows XP / Server 2003Сравнение TCP/IP стека Windows Vista / Server 2008 и Windows XP / Server 2003
Сравнение TCP/IP стека Windows Vista / Server 2008 и Windows XP / Server 2003
 
Как не надо писать приложения, основанные на протоколе TCP (Артём Гавриченков)
Как не надо писать приложения, основанные на протоколе TCP (Артём Гавриченков)Как не надо писать приложения, основанные на протоколе TCP (Артём Гавриченков)
Как не надо писать приложения, основанные на протоколе TCP (Артём Гавриченков)
 
Порядок преодоления болота на маршруте: как не надо писать приложения, основа...
Порядок преодоления болота на маршруте: как не надо писать приложения, основа...Порядок преодоления болота на маршруте: как не надо писать приложения, основа...
Порядок преодоления болота на маршруте: как не надо писать приложения, основа...
 
Решения для мониторинга ИТ-инфраструктуры. Как правильно сделать выбор? Часть 1
Решения для мониторинга ИТ-инфраструктуры.  Как правильно сделать выбор? Часть 1Решения для мониторинга ИТ-инфраструктуры.  Как правильно сделать выбор? Часть 1
Решения для мониторинга ИТ-инфраструктуры. Как правильно сделать выбор? Часть 1
 
High performance computing - принципы проектирования сети
High performance computing - принципы проектирования сетиHigh performance computing - принципы проектирования сети
High performance computing - принципы проектирования сети
 

Сети и системы телекоммуникаций. Управление потоком и перегрузкой в 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