Сервисы, предоставляемые протоколами транспортного уровня

Транспортный уровень предоставляет услуги непосредственным прикладным процессам, выполняющимся на оконечных системах.

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

В и сущ 2 протокола транспортного уровня: TCP (надежная передача данных) и UDP(ненадежная передача данных). Единицы обмена транспортного уровня - сегменты.

Протокол IP на сетевом уровне обеспечивает логическое соединение между хостами и представляет транспортному уровню услуги с доставкой «по возможности» или с «максимальными усилиями». IP представляет ненадежную службу.

(Производится разбиение и сборка пакетов. )

Основной задачей TCP и UDP является 1) обеспечение обмена данными между процессами, выполняющимися на оконечных системах, при помощи службы обмена данными между оконечными системами, предоставляемой протоколом сетевого уровня, такое «продолжение» соединения между оконечными системами до уровня процессов называю мультиплексированием и демультиплексированием на транспортном уровне.

2) Обеспечивают отсутствие искажения данных при передаче, включая свои заголовки поля обнаружения ошибок.

TCP: 3) обеспечивает надежную передачу данных (контроль переполнения, порядковые номера, квитанции и таймеры)

4) контроль перегрузки - предотвращение слишком интенсивного трафика между парами оконченных систем, вызывающего перегрузку линий связи или маршрутизаторов.

 

Мультиплексирование и демультиплексирование, порты, сокеты.

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

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

Процесс, представляющий собой часть приложения имеет собственный сокет или «дверь», через которую осуществляется обмен данными с другими процессами. ТО транспортный уровень предает данные не процессу, а сокету. Т.к. принимающий хост может иметь несколько сокетов одновременно, каждый сокет имеет уникальный идентификатор (формат зависит от протокола TCP или UDP). Для направления каждого сегмента в свой сокет, сегмент содержит набор специальных полей. Транспортный уровень принимающего хоста анализирует содержание этих полей, идентифицирует сокет, которому предназначен сегмент, и передает ему данные сегмента. Процедура вручения данных сегменту носит название демультиплексирования. Сбор фрагментов данных, поступающих на транспортный уровень хоста-отправителя из различных сокетов, создание сегментов путем присоединения заголовка к каждому фрагменту и передача фрагментов сетевому уровню - мультиплексирование. Мультиплексирование на транспортном уровне требует наличия у сокетов уникальных идентификаторов, а у сегментов - специальных полей, содержащих номера сокетов, которым они предназначены. Сегменты транспортного уровня содержат поле номера порта отправителя и поле номера порта получателя. Номер порта представляет собой 16-разрядное число, принимающее значение от 0 до 65535. Номера от 0 до 1023 предназначены для использования в популярных протоколах прикладного уровня (HTTP, FTP…).

Протокол UDP.

Протокол UDP, выполняет минимум действий, необходимых для протокола транспортного уровня. Фактически его функции сводятся к операциям мультиплексирования и демультиплексирования, а также несложной проверки наличия ошибок в данных. ТО при использовании протокола UDP приложение почти напрямую взаимодействует с протоколом сетевого уровня IP. UDP получает сообщение от прикладного уровня, добавляет к ним поля портов отправителя и получателя для демультиплексирования приемной стороной, а также 2 других спец поля и предает полученный сегмент сетевому уровню. Сетевой уровень заключает сегмент в дейтаграмму и «по возможности» передает её хосту назначения. Если последний успешно получает сегмент, протокол UDP с помощью поля номера порта получателя направляет данные сегмента нужному процессу. UDP не предусматривает процедуру рукопожатия - протокол без установления соединения.

Преимущества UDP: Отсутствие процедуры установления соединения. Не вносит доп задержку в процесс передачи. Отсутствие информации о состоянии соединения. При поддержании инфу о соединение требуется выделение буферов для промежуточного хранения инфу о приеме и передаче, параметров контроля перегрузки, порядковых номеров и номеров квитанций. UDP не требует такого учета, это позволяет UDP-серверам обслуживать гораздо больше клиентов. Небольшой размер заголовка. Заголовок UDP-сегмента имеет длину 8 байт, в то время как длина TCP-заголовка - 20. Улучшенный механизм управления передачей данных приложением. При использовании UDP данные от приложения сразу упаковываются в сегмент и передаются сетевому уровню. При использовании TCP осуществляется контроль перегрузки (может приостановить процесс передачи данных), пересылка осущ до тех пор, пока не будет получено подтверждение. Т.к. приложения работающие в реальном времени, обычно налагают ограничения на мин скорость передачи данных, не допускают значительных задержек сегментов, но в то же время толерантны к потере данных, то используются службы протокола UDP в сочетании с собственными средствами обмена данными между процессами.

Поддерживается протоколом DNS, используется почти всеми мультимедиа приложениями: И-телефонией, видеоконференции в режиме реального времени, а также потоковым аудио и видео.

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

 

Структура UDP-сегмента:

32 бита
Номер порта отправителя Номер порта получателя
Длина Контрольная сумма
Прикладные данные (сообщение)

Данные приложения размещаются в поле данных сегмента. Заголовок состоит из 4 2-байтовых полей: Номера портов отправителя и получателя - направление данных сегмента нужному сокету. Контрольная сумма предназначена для проверки ошибок в полученных данных. Поле длины указывает на размер UDP-сегмента в байтах, включая заголовок.

Контрольная сумма UDP-сегмента: Предназначена для обнаружения ошибок, то есть определения были ли какие-либо биты сегмента искажены в процессе передачи. Протокол UDP на передающей стороне вычисляет дополнение до 1 суммы всех 16-разрядных слов сегмента, игнорируя происходящие по суммированию переполнения. Рез-т - в поле контрольной суммы сегмента. На приемной стороне производится суммирование всех слов сегмента, включая поле контрольной суммы. Если при передаче не произошло искажения ни 1 бита, рез-т суммирования все 1. Присутствие хотя бы 1 0 бита в сумме говорит о наличии ошибок в данных. Протокол UDP способен лишь обнаруживать ошибки, однако не располагает средствами их исправления (некоторые удаляют искаженный сегмент, а некоторые передают прикладному уровню с предупреждением).