Транспортный уровень предоставляет сервисы для доставки данных, используя следующие операции.
- Разделение на сегменты данных, полученных от приложения
- Добавление заголовка для определения каждого сегмента и управления им
- Использование информации в заголовке для повторной сборки сегментов в данные приложения
- Передача скомпонованных данных соответствующему приложению
UDP и TCP — это распространённые протоколы транспортного уровня.
Датаграммы UDP и сегменты TCP имеют заголовки, добавленные перед данными; они включают в себя номер порта источника и номер порта назначения. Такие номера портов позволяют направлять данные соответствующему приложению, которое запущено на конечном компьютере.
Протокол TCP не отправляет данные в сеть до тех пор, пока не получит подтверждения готовности узла назначения принять их. После этого TCP обрабатывает поток данных и повторно пересылает все сегменты, которые не были подтверждены как полученные узлом назначения. Чтобы обеспечить надёжность, TCP использует рукопожатие, таймеры, сообщения подтверждений и динамическое изменение окна. Тем не менее, обеспечение надёжности приводит к дополнительным нагрузкам на сеть, поскольку требует использования больших заголовков сегментов и пересылки большего количества трафика между узлами источника и назначения.
В случае если требуется быстрая доставка данных приложения по сети, либо если пропускная способность сети не в состоянии поддерживать дополнительную нагрузку, связанную с пересылкой управляющих сообщений между системами источника и назначения, тогда UDP будет более предпочтительным протоколом транспортного уровня для разработчиков. Поскольку UDP не отслеживает или не подтверждает получение датаграмм на узле назначения (а просто передаёт полученные датаграммы на уровень приложений по мере их поступления), он не отправляет утраченные датаграммы повторно. Тем не менее, это вовсе не означает, что сам по себе обмен данными будет ненадёжным; протоколы уровня приложений могут иметь механизмы и сервисы, которые обрабатывают утраченные или отложенные датаграммы, если это необходимо для приложения.
Разработчик приложения выбирает протокол транспортного уровня, который наилучшим образом соответствует требованиям приложения. Важно помнить, что все другие уровни также участвуют в процессе обмена данными по сети и оказывают влияние на её производительность.