Протоколы транспортного уровня UDP, TCP И SCTP: достоинства и недостатки [А. Лейкин] (pdf) читать постранично

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

ПРОВОДНЫЕ СЕТИ

Протоколы
транспортного уровня
UDP, TCP И SCTP:

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

А.Лейкин, ст. преподаватель СПбГУТ

В статье рассматриваются три основных протокола транспортного уровня: UDP, TCP и SCTP, их преимущества и недостатки. Анализируется логика работы протоколов и ситуации, при которых предпочтительно использовать тот или иной протокол. Также приведено соответствие стека TCP/IP модели
OSI и примеры приложений, использующих данные протоколы.

В течение почти 20 лет пользователи, имевшие дело со стеком TCP/IP, работали с одним
из двух транспортных протоколов: TCP и UDP.
Однако наступило время, когда для некоторых
приложений потребовалась функциональность,
выходящую за рамки той, которую в состоянии
предоставить эти два протокола. В 2000 году
организация IETF (Internet Engineering Task
Force) одобрила в качестве стандарта протокол
передачи с управлением потоком SCTP (Stream
Control Transmission Protocol), который стал
активно внедряться в сетях не так давно.
Протокол SCTP был создан в рамках проекта,
начатого рабочей группой SIGTRAN, и в первую
очередь предназначался для транспортировки
сигнальной информации ОКС-7 по IP-сетям.
Строгие требования ОКС-7 к параметрам потерь
и соблюдению очередности следования сообщений привели к созданию нового транспортного
протокола, свободного от недостатков UDP и TCP [1].
IETF предлагает использовать его в качестве протокола транспортного уровня общего назначения,
объединяющего функции TCP и UDP над уровнем
IP, поскольку и другие приложения могут использовать некоторые возможности этого протокола.

62

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

Протокол UDP
Протокол дейтаграмм пользователя UDP (User
Datagram Protocol) был описан в документе
RFC 768 и принят IETF в 1980 году [2]. Он не ориентирован на создание соединения, его главное
отличие – отсутствие гарантии доставки и поддержки упорядоченности передаваемых сообщений до места назначения (порядок сообщений
может быть изменен из-за особенностей работы
и капризов IP-сети)). Эти отличия – следствие

ПЕРВАЯ МИЛЯ

5/2013

Прикладной уровень

6

Уровень представления

5

Сеансовый уровень

4

Транспортный уровень

Транспортный уровень

3

Сетевой уровень

Уровень сетевого взаимодействия

2

Канальный уровень

ПРОВОДНЫЕ СЕТИ

7

Уровень приложений

Уровень сетевых интерфейсов
1

Физический уровень

Модель ВОС (OSI)

Модель TCP/IP

Рис.1. Соответствие стека TCP/IP модели ВОС (OSI)

логики работы протокола. Приложение, использующее UDP, формирует один пакет, который
передается в IP-дейтаграмме. Если дейтаграмма
дублируется в сети, то на принимающий узел
могут быть доставлены два ее экземпляра. Если
же клиент UDP отправляет две дейтаграммы
в одно и то же место назначения, то их порядок может быть изменен сетью, и они будут
доставлены с нарушением исходного порядка.
Поэтому в приложениях, использующих UDP,
разработчики должны реализовывать функции,
в некоторой степени компенсирующие ненадежность этого протокола: тайм-ауты, повторную передачу, обработку потерянных дейтаграмм и порядковые номера для сопоставления
ответов запросам. Этот подход позволяет протоколу гораздо быстрее и эффективнее доставлять данные для приложений, которым требуется большая пропускная способность сети связи
или малое время доставки данных. Но из-за
отсутствия контроля перегрузок, возрастающего объема неконтролируемой высокоскоростной нагрузки и использования общей сетевой

инфраструктуры с другими сервисами создается
реальная опасность перегрузки сети, которая
ведет к значительному падению ее производительности. Частично данную проблему призван
решить относительно молодой протокол DCCP
(Datagram Congestion Control Protocol), описанный в RFC 4340. Этот протокол – альтернатива
UDP для приложений, которым необходим сервис одноадресной негарантированной доставки
дейтаграмм, высокая скорость работы и реализованные на транспортном уровне механизмы
для отслеживания перегрузок в сети без необходимости создавать их на уровне приложений.
К сожалению, объем статьи не позволяет остановиться на нем более подробно.

Протокол TCP
Протокол управления передачей TCP (Transmission Control Protocol), разработанный по
заказу агентства перспективных исследовательских программ ARPA, был опубликован в