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

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

Aug 08, 2015

Download

Education

Andrey Sozykin
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Сети и системы телекоммуникаций. Управление потоком и перегрузкой в TCP

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

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

ИМКН УрФУ

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

2

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

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

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

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

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

AIMD

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

План

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

3

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

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

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

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

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

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

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

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

4

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

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

Отправитель

Получатель

Приложение

Буфер

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

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

5

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

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

Отправитель

Получатель

Приложение

Буфер

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

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

6

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

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

Отправитель

Получатель

Приложение

Буфер

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

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

7

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

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

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

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

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

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

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

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

8

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

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

32 бита

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

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

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

Размер окнаFIN

SYN

RST

PSH

ACK

URG

Длина заголо

-вка

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

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

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

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

9

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

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

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

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

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

уменьшается

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

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

10

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

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

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

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

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

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

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

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

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

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

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

11

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

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

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

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

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

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

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

12

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

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

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

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

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

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

Буфер

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

13

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

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

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

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

порядок

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

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

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

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

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

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

14

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

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

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

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

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

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

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

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

15

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

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

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

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

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

A B C

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

16

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

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

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

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

AIMD

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

17

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

AIMD

Хост 1 Хост 2

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

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

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

18

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

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

азм

ер о

кна

Время

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

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

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

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

19

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

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

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

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

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

(Linux)

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

перегрузке

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

Compound TCP (Windows)

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

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

перегрузкой

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

а

TCP with Explicit Congestion Notification

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

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

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

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

20

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

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

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

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

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

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

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

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

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

21

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

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

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

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

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

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

значения

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

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

22

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

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

азм

ер о

кна

Время

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

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

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

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

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

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

23

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

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

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

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

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

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

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

24

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

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

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

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

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

AIMD

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

Итоги

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

25

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

Вопросы?