Лекция №13 Транспортный уровень. Введение. Tcp, udp, sctp




НазваниеЛекция №13 Транспортный уровень. Введение. Tcp, udp, sctp
Дата конвертации31.05.2013
Размер445 b.
ТипЛекция


КОМПЬЮТЕРНЫЕ СЕТИ

Лекция №13

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

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

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

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

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



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



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

  • Сервисы транспортного уровня:

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

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

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

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



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

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

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

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

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



Примитивы транспортной службы



Примитивы транспортной службы



Сокеты Беркли

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



Элементы транспортных протоколов

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



Элементы транспортных протоколов. Адресация

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

  • Порты – конечные точки

  • TSAP (Transport Service Access Point)

  • NSAP (Network Service Access Point)



Элементы транспортных протоколов. Адресация



Элементы транспортных протоколов. Адресация

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

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


Элементы транспортных протоколов. Адресация



Элементы транспортных протоколов. Установка соединения

  • Основная проблема при установке соединения: приходящие позднее дубликаты TPDU

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

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

  • Помещение в каждый пакет счётчика транзитных узлов

  • Помещение timestamp в каждый пакет



Элементы транспортных протоколов. Установка соединения

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

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

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



Элементы транспортных протоколов. Установка соединения



Элементы транспортных протоколов. Установка соединения

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



Элементы транспортных протоколов. Установка соединения



Элементы транспортных протоколов. Разрыв соединения



Элементы транспортных протоколов. Разрыв соединения



Элементы транспортных протоколов. Управление потоком и буферизация

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

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

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

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



Элементы транспортных протоколов. Управление потоком и буферизация

  • Массив буферов равно длины

  • Буферы переменного размера

  • Единый циклический буфер



Элементы транспортных протоколов. Управление потоком и буферизация

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



Элементы транспортных протоколов. Управление потоком и буферизация

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

  • В 1975 Белсенс предложил метод управления потоком скользящего окна:

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


Элементы транспортных протоколов. Восходящие и нисходящие мультиплексирование



Элементы транспортных протоколов. Восстановление после сбоя

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



Транспортные протоколы Интернета: UDP

  • UDP, User Datagram Protocol, RFC 768

  • Позволяет приложениям отправлять инкапсулированные IP-дейтаграммы



Транспортные протоколы Интернета: UDP

  • Нет контроля потока

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

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



Вызов удалённой процедуры

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

  • Remote Procedure Call, RPC

  • Вызывается клиентская заглушка, параметры помещаются в стек

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

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

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



Вызов удалённой процедуры



Вызов удалённой процедуры

  • Проблемы при работе с указателями

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

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

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

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



Транспортный протокол масштаба реального времени

  • RTP, Real-Time Transport Protocol, RFC 1889

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

  • Уплотняет несколько потоков реального времени в один поток UDP пакетов

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



Транспортный протокол масштаба реального времени



Транспортный протокол масштаба реального времени



Транспортный протокол масштаба реального времени

  • RTCP, Real-Time Transport Protocol

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



Транспортные протоколы Интернета: TCP

  • TCP, Transmission Control Protocol

  • RFC 793, RFC 1122, RFC 1323

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

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



Транспортные протоколы Интернета: TCP



Транспортные протоколы Интернета: TCP

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

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

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



Транспортные протоколы Интернета: TCP

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

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

  • Поддержка срочных сообщений

  • 32 разрядный порядковый номер

  • Обмен происходит TCP-сегментами

  • Сегмент состоит из 20-байтного заголовка

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

  • Сегмент должен помещаться в MTU



Транспортные протоколы Интернета: TCP



Транспортные протоколы Интернета: TCP

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

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

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

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



Транспортные протоколы Интернета: TCP

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

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

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

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

  • SYN

  • FIN



Транспортные протоколы Интернета: TCP

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

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



Транспортные протоколы Интернета: TCP



Транспортные протоколы Интернета: TCP

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



Транспортные протоколы Интернета: TCP



Транспортные протоколы Интернета: TCP

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

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



Транспортные протоколы Интернета: TCP



Транспортные протоколы Интернета: TCP



Управление передачей в TCP



Управление передачей в TCP

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

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



Управление передачей в TCP

  • Алгоритм Нагля (1984):

    • Если данные поступают по 1 байту, передаётся только первый байт, остальные помещаются в буфер, пока не придёт подтверждение первого байта
  • Используется для передачи tinygrams (мелкограмм) в широких сетях.



Управление передачей в TCP

  • Синдром глупого окна (Clark, 1982):

    • Данные пересылаются крупными блоками, но принимающая сторона читает их посимвольно.


Борьба с перегрузкой в TCP

  • Две проблемы:

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



Борьба с перегрузкой в TCP

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

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

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

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



Борьба с перегрузкой в TCP

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

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

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



Борьба с перегрузкой в TCP



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

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



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

  • Алгоритм Джекобсона, 1988

  • RTT (Round-Trip Time) – наименьшее время получения подтверждения для данного соединения

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

  • Время ожидания RTT + 4 D

  • Обработка динамически изменяемой RTT при повторной передаче сегмента

  • Алгоритм Карна – не обновлять RTT для переданных повторно пакетов, удваивать время ожидания, пока пакеты не начнут приходить с первой попытки



Беспроводные сети и TCP UDP

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

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

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

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



Транзакционный TCP



Протокол SCTP

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

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



Протокол SCTP

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



Протокол SCTP

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

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

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

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



Протокол SCTP

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

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


Протокол SCTP. Множественная адресация

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



Протокол SCTP. Множественная адресация



Протокол SCTP. Множественная адресация

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



Протокол SCTP. Множественная адресация

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



Протокол SCTP. Многопотоковая передача данных

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



Протокол SCTP. Многопотоковая передача данных

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



Протокол SCTP. Многопотоковая передача данных

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



Протокол SCTP. Многопотоковая передача данных

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



Протокол SCTP. Безопасность устанавливаемого подключения



Протокол SCTP. Формирование кадров сообщения

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

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



Протокол SCTP. Формирование кадров сообщения



Протокол SCTP. Настраиваемая неупорядоченная передача данных

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

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



Протокол SCTP. Поэтапное завершение передачи данных

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



Протокол SCTP. Поэтапное завершение передачи данных



Протокол SCTP. Поэтапное завершение передачи данных



Похожие:

Лекция №13 Транспортный уровень. Введение. Tcp, udp, sctp iconЛекция №10 Сетевой уровень. Введение. Маршрутизация
Сетевой уровень должен обеспечить независимость предоставления своих сервисов от низлежащих технологий
Лекция №13 Транспортный уровень. Введение. Tcp, udp, sctp iconОсновные тенденции в конфигурациях проводных сетей Цифровой транспортный уровень становится почти обязательным для крупного оператора
Цифровой транспортный уровень становится почти обязательным для крупного оператора
Лекция №13 Транспортный уровень. Введение. Tcp, udp, sctp iconИсследование характеристик lt-кодов в канале со стираниями Орлов Никита План План Пакетные сети tcp udp fec
Код был создан Майклом Лаби (Michael Luby) в 1998 г. Свое название он получил от “Luby Transform” (преобразование Лаби). Однако опубликованы...
Лекция №13 Транспортный уровень. Введение. Tcp, udp, sctp iconПротокол sctp (1/3) Протокол управления потоковой передачей (Stream Control Transmission Protocol) транспортный протокол, обеспечивающий
Разработка имитационной модели функционирования протокола управления потоковой передачей
Лекция №13 Транспортный уровень. Введение. Tcp, udp, sctp iconСетевое программирование История tcp/IP
В 1974 году Bob Kahn и Vinton Cerf, создали улучшенный протокол, названный ими Transfer Control Protocol (tcp)
Лекция №13 Транспортный уровень. Введение. Tcp, udp, sctp iconВведение в сетевые технологии для пользователей и администраторов грид антон Теслюк
Вопросы производительности при передаче больших массивов данных tcp congestion Control
Лекция №13 Транспортный уровень. Введение. Tcp, udp, sctp iconЯзыки и методы конструирования программ
...
Лекция №13 Транспортный уровень. Введение. Tcp, udp, sctp iconЛекция №5 Уровень передачи данных или канальный уровень
Первая фаза. Установка соединения, инициализация переменных и счетчиков для слежения за тем, какие кадры уже приняты, а какие ещё...
Лекция №13 Транспортный уровень. Введение. Tcp, udp, sctp iconЛекция №3 Канальная и пакетная коммутация. Международные стандарты. Стандартизация в телекоммуникациях. Эталонные модели. Osi. Tcp/IP
Канальная и пакетная коммутация. Международные стандарты. Стандартизация в телекоммуникациях. Эталонные модели. Osi. Tcp/IP
Лекция №13 Транспортный уровень. Введение. Tcp, udp, sctp iconЛекция №11 Сетевой уровень. Качество обслуживания. Объединение сетей. Ipv4
Сетевой уровень. Качество обслуживания Последовательность пакетов, предающихся от источника к приемника, называется потоком
Разместите кнопку на своём сайте:
dok.opredelim.com


База данных защищена авторским правом ©dok.opredelim.com 2015
обратиться к администрации
dok.opredelim.com
Главная страница