2012 11 04_computer_networks_lecture13

80
КОМПЬЮТЕРНЫЕ СЕТИ Лекция №13 Транспортный уровень. Введение. TCP, UDP, SCTP Санкт-Петербург, 2012 Александр Масальских rusalmas@gmail

description

 

Transcript of 2012 11 04_computer_networks_lecture13

Page 1: 2012 11 04_computer_networks_lecture13

КОМПЬЮТЕРНЫЕ СЕТИЛекция №13

Транспортный уровень. Введение. TCP, UDP, SCTP

Санкт-Петербург, 2012

Александр Масальских [email protected]

Page 2: 2012 11 04_computer_networks_lecture13

ТРАНСПОРТНЫЙ УРОВЕНЬ. ВВЕДЕНИЕ

Цель транспортного уровня – предоставление эффективных, надежных и экономичных (в плане использования канала и ресурсов) сервисов своим пользователям (процессам прикладного уровня)

Транспортная сущность или транспортный объект – сущность, выполняющая задачи транспортного уровня

Может быть в ядре ОС, в отдельно процессе, в библиотеке и т.д.

Page 3: 2012 11 04_computer_networks_lecture13

ТРАНСПОРТНЫЙ УРОВЕНЬ. ВВЕДЕНИЕ

Page 4: 2012 11 04_computer_networks_lecture13

ТРАНСПОРТНЫЙ УРОВЕНЬ. ВВЕДЕНИЕ

Сервисы транспортного уровня: Ориентированные на соединение НЕ требующие соединения

Транспортный уровень позволяет получить транспортный сервис более надёжный, чем полученный посредством сетевого уровня

Обеспечение независимости от технологий

Нижние четыре уровня – поставщик транспортных услуг

Всё что выше – пользователи транспортных услуг

Page 5: 2012 11 04_computer_networks_lecture13

ТРАНСПОРТНЫЙ УРОВЕНЬ. ВВЕДЕНИЕ Сетевая служба моделирует сервисы,

предоставляемые сетями со всеми их особенностями. Ориентированная на соединение транспортная служба надёжна

Транспортный уровень может предоставлять ненадёжный сервис (об этом позднее)

Сетевая служба используется только транспортными объектами, которые, в целом, унифицированы. Транспортная служба используется многими программами с разной реализацией

TDPU (Transport Protocol Data Unit) – модуль данных транспортного уровня

Page 6: 2012 11 04_computer_networks_lecture13

ПРИМИТИВЫ ТРАНСПОРТНОЙ СЛУЖБЫ

Page 7: 2012 11 04_computer_networks_lecture13

ПРИМИТИВЫ ТРАНСПОРТНОЙ СЛУЖБЫ

Page 8: 2012 11 04_computer_networks_lecture13

СОКЕТЫ БЕРКЛИ

Примитивы сокетов (гнёзд), используемые в ОС Berkeley UNIX для TCP (Transmission Control Protocol)

Page 9: 2012 11 04_computer_networks_lecture13

ЭЛЕМЕНТЫ ТРАНСПОРТНЫХ ПРОТОКОЛОВ

Транспортная служба реализуется транспортным протоколом

(a) Environment of the data link layer.(b) Environment of the transport layer.

Page 10: 2012 11 04_computer_networks_lecture13

ЭЛЕМЕНТЫ ТРАНСПОРТНЫХ ПРОТОКОЛОВ. АДРЕСАЦИЯ

Адресация прикладного процесса, выделение транспортного адреса

Порты – конечные точки TSAP (Transport Service Access Point) NSAP (Network Service Access Point)

Page 11: 2012 11 04_computer_networks_lecture13

ЭЛЕМЕНТЫ ТРАНСПОРТНЫХ ПРОТОКОЛОВ. АДРЕСАЦИЯ

Page 12: 2012 11 04_computer_networks_lecture13

ЭЛЕМЕНТЫ ТРАНСПОРТНЫХ ПРОТОКОЛОВ. АДРЕСАЦИЯ

Как узнать TSAP адрес?

Список известных (/etc/services)Протокол начального соединения (с

обрабатывающим сервером)Сервер имен или каталоговый сервер

Page 13: 2012 11 04_computer_networks_lecture13

ЭЛЕМЕНТЫ ТРАНСПОРТНЫХ ПРОТОКОЛОВ. АДРЕСАЦИЯ

Page 14: 2012 11 04_computer_networks_lecture13

ЭЛЕМЕНТЫ ТРАНСПОРТНЫХ ПРОТОКОЛОВ. УСТАНОВКА СОЕДИНЕНИЯ

Основная проблема при установке соединения: приходящие позднее дубликаты TPDU Одноразовые TSAP Идентификатор соединения в каждом TPDU Методы, уничтожающие заблудившиеся

пакеты Рассмотрим 3й вариант:1. Проектирование подсети с

ограничениями2. Помещение в каждый пакет счётчика

транзитных узлов3. Помещение timestamp в каждый пакет

Page 15: 2012 11 04_computer_networks_lecture13

ЭЛЕМЕНТЫ ТРАНСПОРТНЫХ ПРОТОКОЛОВ. УСТАНОВКА СОЕДИНЕНИЯ

Томлинсон в 1975 предложил метод, который потом усовершенствовали Саншайн и Далал (1978)

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

Часы идут когда хост зависает

Page 16: 2012 11 04_computer_networks_lecture13

ЭЛЕМЕНТЫ ТРАНСПОРТНЫХ ПРОТОКОЛОВ. УСТАНОВКА СОЕДИНЕНИЯ

Page 17: 2012 11 04_computer_networks_lecture13

ЭЛЕМЕНТЫ ТРАНСПОРТНЫХ ПРОТОКОЛОВ. УСТАНОВКА СОЕДИНЕНИЯ

Томлинсон в 1975 предложил метод «тройного рукопожатия», не требующий начала передачи с одинаковыми порядковыми номерами (свобода выбора метода синхронизации)

Page 18: 2012 11 04_computer_networks_lecture13

ЭЛЕМЕНТЫ ТРАНСПОРТНЫХ ПРОТОКОЛОВ. УСТАНОВКА СОЕДИНЕНИЯ

Three protocol scenarios for establishing a connection using a three-way handshake. CR denotes CONNECTION REQUEST. (a) Normal operation, (b) Old CONNECTION REQUEST appearing out of nowhere. (c) Duplicate CONNECTION REQUEST and duplicate ACK.

Page 19: 2012 11 04_computer_networks_lecture13

ЭЛЕМЕНТЫ ТРАНСПОРТНЫХ ПРОТОКОЛОВ. РАЗРЫВ СОЕДИНЕНИЯ

Four protocol scenarios for releasing a connection. (a) Normal case of a three-way handshake. (b) (b) final ACK lost.

6-14, a, b

Page 20: 2012 11 04_computer_networks_lecture13

ЭЛЕМЕНТЫ ТРАНСПОРТНЫХ ПРОТОКОЛОВ. РАЗРЫВ СОЕДИНЕНИЯ

(c) Response lost. (d) Response lost and subsequent DRs lost.

Page 21: 2012 11 04_computer_networks_lecture13

ЭЛЕМЕНТЫ ТРАНСПОРТНЫХ ПРОТОКОЛОВ. УПРАВЛЕНИЕ ПОТОКОМ И БУФЕРИЗАЦИЯ

На уровне ПД отправитель буферизирует все выходные кадры, т.к.может понадобиться их перепосылка

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

В случае с ненадёжно сетевой службой, отправитель должен буферизовать все исходящие TPDU

Если надёжная сетевая служба, возможны варианты: получатель должен буферизовать все приходящие TPDU если не может сразу обрабатывать

Page 22: 2012 11 04_computer_networks_lecture13

ЭЛЕМЕНТЫ ТРАНСПОРТНЫХ ПРОТОКОЛОВ. УПРАВЛЕНИЕ ПОТОКОМ И БУФЕРИЗАЦИЯ

a) Массив буферов равно длиныb) Буферы переменного размераc) Единый циклический буфер

Page 23: 2012 11 04_computer_networks_lecture13

ЭЛЕМЕНТЫ ТРАНСПОРТНЫХ ПРОТОКОЛОВ. УПРАВЛЕНИЕ ПОТОКОМ И БУФЕРИЗАЦИЯ

Алгоритм динамического скользящего окна

Page 24: 2012 11 04_computer_networks_lecture13

ЭЛЕМЕНТЫ ТРАНСПОРТНЫХ ПРОТОКОЛОВ. УПРАВЛЕНИЕ ПОТОКОМ И БУФЕРИЗАЦИЯ

Мы предполагали, что единственное ограничение – количество свободного буферного пространства, но есть и пропускная способность сети.

В 1975 Белсенс предложил метод управления потоком скользящего окна: Если сеть может обработать c TDPU/sec а

время цикло равно r (передача, распространение, ожидание в очередях, возврат подтверждения), то размер окна отправителя должен быть cr.

Page 25: 2012 11 04_computer_networks_lecture13

ЭЛЕМЕНТЫ ТРАНСПОРТНЫХ ПРОТОКОЛОВ. ВОСХОДЯЩИЕ И НИСХОДЯЩИЕ МУЛЬТИПЛЕКСИРОВАНИЕ

(a) Upward multiplexing. (b) Downward multiplexing.

Page 26: 2012 11 04_computer_networks_lecture13

ЭЛЕМЕНТЫ ТРАНСПОРТНЫХ ПРОТОКОЛОВ. ВОССТАНОВЛЕНИЕ ПОСЛЕ СБОЯ

Восстановление от сбоя уровня N может быть осуществлено только уровнем N+1 и только при условии, что на более высоком уровне сохраняется достаточно количество информации о состоянии процесса

Page 27: 2012 11 04_computer_networks_lecture13

ТРАНСПОРТНЫЕ ПРОТОКОЛЫ ИНТЕРНЕТА: UDP

UDP, User Datagram Protocol, RFC 768 Позволяет приложениям отправлять

инкапсулированные IP-дейтаграммы

Page 28: 2012 11 04_computer_networks_lecture13

ТРАНСПОРТНЫЕ ПРОТОКОЛЫ ИНТЕРНЕТА: UDP

Нет контроля потока Нет контроля ошибок

UDP предоставляет интерфейс для IP путём демультиплексирования нескольких процессов, использующих порты

Page 29: 2012 11 04_computer_networks_lecture13

ВЫЗОВ УДАЛЁННОЙ ПРОЦЕДУРЫ

В 1984 году Биррел и Нельсн предложили метода, позволяющий программам вызывать процедуры, расположенные на других хостах

Remote Procedure Call, RPC1. Вызывается клиентская заглушка,

параметры помещаются в стек2. Параметры клиентской заглушки

упаковываются (маршалинг) и происходит системный вызов передачи

3. Ядро системы передаёт сообщение с клиента на сервер

4. Входящий пакет передаётся серверной заглушке

Page 30: 2012 11 04_computer_networks_lecture13

ВЫЗОВ УДАЛЁННОЙ ПРОЦЕДУРЫ

Page 31: 2012 11 04_computer_networks_lecture13

ВЫЗОВ УДАЛЁННОЙ ПРОЦЕДУРЫ

1. Проблемы при работе с указателями2. Проблемы с языками со слабой

типизацией (нельзя маршализовать, т.к. не определить размеры)

3. Не всегда можно распознать параметры (printf)

4. Проблема с глобальными переменными

o Часто применяется с UDP

Page 32: 2012 11 04_computer_networks_lecture13

ТРАНСПОРТНЫЙ ПРОТОКОЛ МАСШТАБА РЕАЛЬНОГО ВРЕМЕНИ

RTP, Real-Time Transport Protocol, RFC 1889 Транспортный протокол для

мультимедийных приложений Уплотняет несколько потоков реального

времени в один поток UDP пакетов Каждый пакет, посылаемый RTP имеет

номер, на единицу превышающий номер предшественника

Page 33: 2012 11 04_computer_networks_lecture13

ТРАНСПОРТНЫЙ ПРОТОКОЛ МАСШТАБА РЕАЛЬНОГО ВРЕМЕНИ

(a) The position of RTP in the protocol stack. (b) Packet nesting.

Page 34: 2012 11 04_computer_networks_lecture13

ТРАНСПОРТНЫЙ ПРОТОКОЛ МАСШТАБА РЕАЛЬНОГО ВРЕМЕНИ

Page 35: 2012 11 04_computer_networks_lecture13

ТРАНСПОРТНЫЙ ПРОТОКОЛ МАСШТАБА РЕАЛЬНОГО ВРЕМЕНИ

RTCP, Real-Time Transport Protocol Управляющий протокол для RTP,

обеспечивает обратную связь по задержкам, джиттеру, пропускной способности, перегрузке и т.д.

Page 36: 2012 11 04_computer_networks_lecture13

ТРАНСПОРТНЫЕ ПРОТОКОЛЫ ИНТЕРНЕТА: TCP

TCP, Transmission Control Protocol RFC 793, RFC 1122, RFC 1323 Транспортная сущность, принимающая

поток байт от процессов, разбивает его на части и передаёт посредством IP транспорта, восстанавливая на удалённом хосте поток байт

TCP призван обеспечить надёжность

Page 37: 2012 11 04_computer_networks_lecture13

ТРАНСПОРТНЫЕ ПРОТОКОЛЫ ИНТЕРНЕТА: TCP

Page 38: 2012 11 04_computer_networks_lecture13

ТРАНСПОРТНЫЕ ПРОТОКОЛЫ ИНТЕРНЕТА: TCP

У каждого совета есть номер (адрес), состоящий из IP адреса хоста и 16-битного номера, локального по отношению к хосту, называемого портом

Есть популярные порты (до 1024), зарезервированные стандартными сервисами (www.iana.org)

В UNIX системах применяется inetd демон, связанный с несколькими портами и принимающий соединения, запуская затем нужный демон

Page 39: 2012 11 04_computer_networks_lecture13

ТРАНСПОРТНЫЕ ПРОТОКОЛЫ ИНТЕРНЕТА: TCP

TCP является полнодуплексным двухточечным протоколом

TCP предоставляет передачу байтового потока (не сообщений)

Поддержка срочных сообщений 32 разрядный порядковый номер Обмен происходит TCP-сегментами Сегмент состоит из 20-байтного заголовка Сегмент с заголовком, должен влезать в

65515 байтное поле полезной нагрузки IP Сегмент должен помещаться в MTU

Page 40: 2012 11 04_computer_networks_lecture13

ТРАНСПОРТНЫЕ ПРОТОКОЛЫ ИНТЕРНЕТА: TCP

Page 41: 2012 11 04_computer_networks_lecture13

ТРАНСПОРТНЫЕ ПРОТОКОЛЫ ИНТЕРНЕТА: TCP

Порт отправителя и порт получателя – идентификаторы локальных точек соединения. Номер порта вместе с IP образуют 48-битный идентификатор конечной точки

Порядковый номер и Номер подтверждения. 32 разрядные, номер подтверждения относится к следующему ожидаемому байту

Длина TCP-заголовка, содержит размер TCP заголовка, выраженный в 32 битный словах, необходимо из-за Options

Неиспользуемое 6-битное поле

Page 42: 2012 11 04_computer_networks_lecture13

ТРАНСПОРТНЫЕ ПРОТОКОЛЫ ИНТЕРНЕТА: TCP

URG – 1 в случае использования указателя на срочные данные

ACK – 1 в случае наличия осмысленного номера подтверждения

PSH – флаг, с помощью которого отправитель просит получателя доставить данные приложению сразу после получения пакета

RST – Сброс состояния соединения, отказ от неверного сегмента, отказ от установки соединения

SYN FIN

Page 43: 2012 11 04_computer_networks_lecture13

ТРАНСПОРТНЫЕ ПРОТОКОЛЫ ИНТЕРНЕТА: TCP

Размер окна – сколько байт может быть послано после байта, получившего подтверждение, может быть равным 0, если получатель имеет проблемы

Контрольная сумма – содержит контрольную сумму заголовка, данных и псевдозаголовка. Устанавливается равным 0, поле данных дополняется нулевым байтом, если его длина не четна. Алгоритм вычисления складывает все 16-ти разрядные слова в дополнительном коде и вычисляет дополнение до всей суммы.

Page 44: 2012 11 04_computer_networks_lecture13

ТРАНСПОРТНЫЕ ПРОТОКОЛЫ ИНТЕРНЕТА: TCP

The pseudoheader included in the TCP checksum.

Page 45: 2012 11 04_computer_networks_lecture13

ТРАНСПОРТНЫЕ ПРОТОКОЛЫ ИНТЕРНЕТА: TCP

Options – предоставляет дополнительные возможности, например, максимальный размер поля полезной нагрузи. RFC 1323 – масштаб окна, позволяющий увеличить окно до 2^30 байт (около Гб) RFC 1106 – выборочный повтор, вместо возврата.

Page 46: 2012 11 04_computer_networks_lecture13

ТРАНСПОРТНЫЕ ПРОТОКОЛЫ ИНТЕРНЕТА: TCP

(a) TCP connection establishment in the normal case.(b) Call collision.

6-31

Page 47: 2012 11 04_computer_networks_lecture13

ТРАНСПОРТНЫЕ ПРОТОКОЛЫ ИНТЕРНЕТА: TCP

Для разрыва соединения требуется 4 сегмента: по одному с битом FIN и по одному с битом ACK в каждом направлении. Первый бит ACK и второй бит FIN могут содержаться в 1 сегменте, так что можно сократить до 3 сегментов

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

Page 48: 2012 11 04_computer_networks_lecture13

ТРАНСПОРТНЫЕ ПРОТОКОЛЫ ИНТЕРНЕТА: TCP

The states used in the TCP

connection management finite state machine.

Page 49: 2012 11 04_computer_networks_lecture13

ТРАНСПОРТНЫЕ ПРОТОКОЛЫ ИНТЕРНЕТА: TCP

Page 50: 2012 11 04_computer_networks_lecture13

УПРАВЛЕНИЕ ПЕРЕДАЧЕЙ В TCP

Page 51: 2012 11 04_computer_networks_lecture13

УПРАВЛЕНИЕ ПЕРЕДАЧЕЙ В TCP

Пример с интерактивным текстовым редактором, реагирующим на каждое нажатие.

Символ прибывает к передающей TCP-сущности, та создаёт 21 байтовый TCP сегмент, передаёт IP тот создаёт 41-байтовую IP-дейтаграмму. На принимающей стороне отвечают 40 байт подтверждения (20 IP 20 TCP заголовки). Когда редактор прочтёт байт, снова 40 байтный пакет с информацией о смещении окна. Потом редактор отправит 41 байт с ECHO. Итого 1 символ c клавиатуры передаётся обменом 162 байтов.

Page 52: 2012 11 04_computer_networks_lecture13

УПРАВЛЕНИЕ ПЕРЕДАЧЕЙ В TCP

Алгоритм Нагля (1984):Если данные поступают по 1 байту,

передаётся только первый байт, остальные помещаются в буфер, пока не придёт подтверждение первого байта

Используется для передачи tinygrams (мелкограмм) в широких сетях.

Page 53: 2012 11 04_computer_networks_lecture13

УПРАВЛЕНИЕ ПЕРЕДАЧЕЙ В TCP

Синдром глупого окна (Clark, 1982): Данные пересылаются крупными блоками, но

принимающая сторона читает их посимвольно.

Page 54: 2012 11 04_computer_networks_lecture13

БОРЬБА С ПЕРЕГРУЗКОЙ В TCP

Две проблемы: Низкая пропускная способность Низкая ёмкость получателя

Отправитель имеет 2 окна: окно, предоставленное получателем и окно перегрузки. Руководствуется меньшим.

Page 55: 2012 11 04_computer_networks_lecture13

БОРЬБА С ПЕРЕГРУЗКОЙ В TCP

При установке соединения размер окна перегрузки устанавливается равным максимальному сегменту в этом соединении

Далее передаётся максимальный сегмент, если период ожидания не истёк и получен подтверждение на сегмент, к размеру окна добавляется размер сегмента

Процесс экспоненциального роста продолжается пока не будет достигнут размер окна получателя или не сработает тайм-аут

Алгоритм затяжного пуска, или медленного пуска

Page 56: 2012 11 04_computer_networks_lecture13

БОРЬБА С ПЕРЕГРУЗКОЙ В TCP

Используется 3 параметр – пороговое значение (изначально оно 64 Кбайт)

Если возник тайм-аут, пороговое значение устанавливается равным половине текущего размера окна перегрузки, окно перегрузки возвращается к размеру максимального сегмента

Далее алгоритм затяжного пуска, но линейный

Page 57: 2012 11 04_computer_networks_lecture13

БОРЬБА С ПЕРЕГРУЗКОЙ В TCP

Page 58: 2012 11 04_computer_networks_lecture13

УПРАВЛЕНИЕ ТАЙМЕРАМИ В TCP

Наиболее важен таймер повторной передачи. Каким он должен быть?

Page 59: 2012 11 04_computer_networks_lecture13

УПРАВЛЕНИЕ ТАЙМЕРАМИ В TCP

Алгоритм Джекобсона, 1988 RTT (Round-Trip Time) – наименьшее время

получения подтверждения для данного соединения

D – отклонение, сглаженная переменная (среднее линейное отклонение)

Время ожидания RTT + 4 D Обработка динамически изменяемой RTT

при повторной передаче сегмента Алгоритм Карна – не обновлять RTT для

переданных повторно пакетов, удваивать время ожидания, пока пакеты не начнут приходить с первой попытки

Page 60: 2012 11 04_computer_networks_lecture13

БЕСПРОВОДНЫЕ СЕТИ И TCP UDP

Подразумевается, что таймауты вызваны не потерей пакетов, а перегрузкой сети

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

Непрямой протокол TCP (разбиение на 2 отдельных соединения). Базовая станция просто копирует из одного в другое

Решение Балакришнана – агент, перепосылающий со стороны проводной сети, замечая задержки в подтверждении, без участия отправителя

Page 61: 2012 11 04_computer_networks_lecture13

ТРАНЗАКЦИОННЫЙ TCP

(a) RPC using normal TPC.(b) RPC using T/TCP.

Page 62: 2012 11 04_computer_networks_lecture13

ПРОТОКОЛ SCTP Протокол передачи с управлением потоком

(Stream Control Transmission Protocol, SCTP) − это надежный транспортный протокол, который обеспечивает стабильную, упорядоченную (с сохранением порядка следования пакетов) передачу данных между двумя конечными точками (подобно TCP). Кроме того, протокол обеспечивает сохранение границ отдельных сообщений (подобно UDP).

Однако в отличие от протоколов TCP и UDP протокол SCTP имеет дополнительные преимущества, такие как поддержка множественной адресации (multihoming) и многопоточности (multi-streaming) - каждая из этих возможностей увеличивает доступность узла передачи данных.

Page 63: 2012 11 04_computer_networks_lecture13

ПРОТОКОЛ SCTP

Протокол SCTP представляет собой надежный универсальный протокол транспортного уровня для сетей IP. Несмотря на то, что протокол изначально разрабатывался для передачи телефонных сигналов (RFC 2960), SCTP имеет дополнительные преимущества − он лишен некоторых ограничений протокола TCP, обладая при этом возможностями протокола UDP. Протокол SCTP предоставляет возможности, обеспечивающие высокую доступность, повышенную надежность и улучшенную безопасность сокетов.

Page 64: 2012 11 04_computer_networks_lecture13

ПРОТОКОЛ SCTP

Двумя наиболее популярными протоколами транспортного уровня являются протоколы TCP и UDP:

Протокол TCP - это надежный протокол, который гарантирует последовательную упорядоченную передачу данных и обеспечивает управление нагрузкой в сети.

Протокол UDP, ориентированный на работу с сообщениями, не предоставляет никаких гарантий ни по очередности доставки сообщений, ни по контролю перегрузки.

Тем не менее UDP является быстрым протоколом и обеспечивает сохранение границ сообщений.

Page 65: 2012 11 04_computer_networks_lecture13

ПРОТОКОЛ SCTP

SCTP обеспечивает надежную упорядоченную передачу данных подобно протоколу TCP, но ориентирован на передачу сообщений подобно протоколу UDP. Кроме того, протокол SCTP предоставляет дополнительные возможности: множественная адресация; многопотоковая передача данных; безопасность устанавливаемого подключения; формирование кадров сообщений; настраиваемая неупорядоченная передача

данных; поэтапное завершение работы.

Page 66: 2012 11 04_computer_networks_lecture13

ПРОТОКОЛ SCTP. МНОЖЕСТВЕННАЯ АДРЕСАЦИЯ

По сравнению с протоколом TCP поддержка протоколом SCTP множественной адресации обеспечивает приложениям повышенную готовность. Хост, подключенный к нескольким сетевым интерфейсам и потому имеющий несколько IP адресов, называется multi-homed хост. В протоколе TCP соединением называется канал между двумя конечными точками (в данном случае сокет между интерфейсами двух хостов). Протокол SCTP вводит понятие ассоциации, которая устанавливается между двумя хостами и в рамках которой возможна организация взаимодействия между несколькими интерфейсами каждого хоста.

Page 67: 2012 11 04_computer_networks_lecture13

ПРОТОКОЛ SCTP. МНОЖЕСТВЕННАЯ АДРЕСАЦИЯ

Page 68: 2012 11 04_computer_networks_lecture13

ПРОТОКОЛ SCTP. МНОЖЕСТВЕННАЯ АДРЕСАЦИЯ

Протокол SCTP отслеживает состояние маршрутов в ассоциации с помощью встроенного механизма контрольных сообщений; при нарушении маршрута передача данных продолжается по альтернативному маршруту. При этом приложению даже не обязательно знать о фактах нарушения и восстановления маршрута.

Page 69: 2012 11 04_computer_networks_lecture13

ПРОТОКОЛ SCTP. МНОЖЕСТВЕННАЯ АДРЕСАЦИЯ Переключение на резервный канал также может

обеспечивать непрерывность связи для сетевых приложений. Для примера рассмотрим ноутбук, который имеет беспроводный интерфейс 802.11 и интерфейс Ethernet. Пока ноутбук подключен к док-станции, предпочтительнее использовать более скоростной интерфейс Ethernet (в протоколе SCTP используется термин основной адрес); при нарушении этого соединения (в случае отключения от док-станции), будет использоваться соединение по беспроводному интерфейсу. При повторном подключении к док-станции будет обнаружено соединение по интерфейсу Ethernet, через который будет продолжен обмен данными. Таким образом, протокол SCTP реализует эффективный механизм, обеспечивающий высокую готовность и повышенную надежность.

Page 70: 2012 11 04_computer_networks_lecture13

ПРОТОКОЛ SCTP. МНОГОПОТОКОВАЯ ПЕРЕДАЧА ДАННЫХ

В некоторой степени ассоциация протокола SCTP похожа на соединение протокола TCP. Отличие состоит в том, что протокол SCTP поддерживает несколько потоков в рамках одной ассоциации. Все потоки являются независимыми, но принадлежат одной ассоциации.

Page 71: 2012 11 04_computer_networks_lecture13

ПРОТОКОЛ SCTP. МНОГОПОТОКОВАЯ ПЕРЕДАЧА ДАННЫХ

Каждому потоку ассоциации присваивается номер, который включается в передающиеся пакеты SCTP. Важность многопотоковой передачи обусловлена тем, что блокировка какого-либо потока (например, из-за ожидания повторной передачи при потере пакета) не оказывает влияния на другие потоки в ассоциации. В общем случае данная проблема получила название блокировка головы очереди (head-of-line blocking). Протокол TCP уязвим для подобных блокировок.

Page 72: 2012 11 04_computer_networks_lecture13

ПРОТОКОЛ SCTP. МНОГОПОТОКОВАЯ ПЕРЕДАЧА ДАННЫХ

Каким образом множество потоков обеспечивают лучшую оперативность при передаче данных? Например, в протоколе HTTP данные и служебная информация передаются по одному и тому же сокету. Web-клиент запрашивает файл, и сервер посылает файл назад к клиенту по тому же самому соединению. Многопотоковый HTTP-сервер сможет обеспечить более быструю передачу, так как множество запросов может обслуживаться по независимым потокам одной ассоциации. Такая возможность позволяет распараллелить ответы сервера. Это если и не повысит скорость отображения страницы, то позволит обеспечить ее лучшее восприятие благодаря одновременной загрузке кода HTML и графических изображений.

Page 73: 2012 11 04_computer_networks_lecture13

ПРОТОКОЛ SCTP. МНОГОПОТОКОВАЯ ПЕРЕДАЧА ДАННЫХ

Многопотоковая передача − это важнейшая особенность протокола SCTP, особенно в том, что касается одновременной передачи данных и служебной информации в рамках протокола. В протоколе TCP данные и служебная информация передаются по одному соединению. Это может стать причиной проблем, так как служебные пакеты из-за передачи данных будут передаваться с задержкой. Если служебные пакеты и пакеты данных передаются по независимым потокам, то служебная информация будет обрабатываться своевременно, что, в свою очередь, приведет к лучшему использованию доступных ресурсов.

Page 74: 2012 11 04_computer_networks_lecture13

ПРОТОКОЛ SCTP. БЕЗОПАСНОСТЬ УСТАНАВЛИВАЕМОГО ПОДКЛЮЧЕНИЯ

Page 75: 2012 11 04_computer_networks_lecture13

ПРОТОКОЛ SCTP. ФОРМИРОВАНИЕ КАДРОВ СООБЩЕНИЯ При формировании кадров сообщения

обеспечивается сохранение границ сообщения в том виде, в котором оно передается сокету; это означает, что если клиент посылает серверу 100 байт, за которыми следуют 50 байт, то сервер воспринимает 100 байт и 50 байт за две операции чтения. Точно так же функционирует протокол UDP, это является особенностью протоколов, ориентированных на работу с сообщениями.

Протокол SCTP обеспечивает формирование кадров при передаче данных. Когда узел выполняет запись в сокет, его корреспондент с гарантией получает блок данных того же размера

Page 76: 2012 11 04_computer_networks_lecture13

ПРОТОКОЛ SCTP. ФОРМИРОВАНИЕ КАДРОВ СООБЩЕНИЯ

Page 77: 2012 11 04_computer_networks_lecture13

ПРОТОКОЛ SCTP. НАСТРАИВАЕМАЯ НЕУПОРЯДОЧЕННАЯ ПЕРЕДАЧА ДАННЫХ

Сообщения по протоколу SCTP передаются с высокой степенью надежности, но необязательно в нужном порядке. Протокол TCP гарантирует, что данные будут получены именно в том порядке, в котором они отправлялись (это хорошо, учитывая, что TCP – это потоковый протокол). Протокол UDP не гарантирует упорядоченную доставку. При необходимости вы можете настроить потоки в протоколе SCTP так, чтобы они принимали неупорядоченные сообщения.

Эта особенность может быть востребована в протоколах, ориентированных на работу с сообщениями, так как запросы в них независимы и последовательность поступления данных не очень важна. Кроме того, вы можете настроить использование неупорядоченной передачи по номеру потока в ассоциации, т.е. принимая сообщения по потокам.

Page 78: 2012 11 04_computer_networks_lecture13

ПРОТОКОЛ SCTP. ПОЭТАПНОЕ ЗАВЕРШЕНИЕ ПЕРЕДАЧИ ДАННЫХ

В отличие от протокола UDP, функционирование которого не предполагает установления соединения, протоколы TCP и SCTP являются протоколами с установлением соединения. Оба эти протокола требуют выполнения процедуры установления и разрыва соединения между корреспондентами. Рассмотрим отличия между процедурой закрытия сокетов протокола SCTP и процедурой частичного закрытия (half-close) протокола TCP.

Page 79: 2012 11 04_computer_networks_lecture13

ПРОТОКОЛ SCTP. ПОЭТАПНОЕ ЗАВЕРШЕНИЕ ПЕРЕДАЧИ ДАННЫХ

Page 80: 2012 11 04_computer_networks_lecture13

ПРОТОКОЛ SCTP. ПОЭТАПНОЕ ЗАВЕРШЕНИЕ ПЕРЕДАЧИ ДАННЫХ

Параметр UDP TCP SCTP

Установка соединения

Нет Да Да

Надежная передача

Нет Да Да

Сохранение границ сообщения

Да Нет Да

Упорядоченная доставка

Нет Да Да

Неупорядоченная доставка

Да Нет Да

Контрольные суммы данных

Да Да Да

Размер контрольной суммы (бит)

16 16 32

Путь MTU Нет Да Да

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

Нет Да Да

Многопоточность

Нет Нет Да

Поддержка множественных интерфейсов

Нет Нет Да

Связка потоков

Нет Да Да