В компьютерных сетях транспортный уровень — это концептуальное разделение методов в многоуровневой архитектуре протоколов в сетевом стеке в наборе интернет-протоколов и модели OSI . Протоколы этого уровня предоставляют сквозные коммуникационные услуги для приложений. [1] : §1.1.3 Он предоставляет такие услуги, как ориентированная на соединение связь , надежность , управление потоком и мультиплексирование .
Детали реализации и семантика транспортного уровня набора протоколов Интернета [ 1] , который является основой Интернета , и модели OSI общей сети различны. Все протоколы, используемые сегодня на этом уровне для Интернета, возникли в ходе разработки TCP/IP. В модели OSI транспортный уровень часто называют Уровнем 4 , или L4 [2], в то время как пронумерованные уровни не используются в TCP/IP.
Самым известным транспортным протоколом из набора протоколов Интернета является протокол управления передачей (TCP). Он используется для передач, ориентированных на соединение, тогда как протокол пользовательских датаграмм без соединения (UDP) используется для более простых передач сообщений. TCP является более сложным протоколом из-за его структуры с сохранением состояния , включающей надежные службы передачи и потоков данных. Вместе TCP и UDP охватывают по существу весь трафик в Интернете и являются единственными протоколами, реализованными в каждой крупной операционной системе. Дополнительные протоколы транспортного уровня, которые были определены и реализованы, включают протокол управления перегрузкой датаграмм (DCCP) и протокол передачи управления потоком (SCTP).
Услуги транспортного уровня передаются приложению через программный интерфейс к протоколам транспортного уровня. Услуги могут включать следующие функции: [4]
Транспортный уровень отвечает за доставку данных в соответствующий прикладной процесс на хост-компьютерах. Это включает статистическое мультиплексирование данных из различных прикладных процессов, т. е. формирование сегментов данных и добавление номеров портов источника и назначения в заголовок каждого сегмента данных транспортного уровня. Вместе с IP-адресами источника и назначения номера портов составляют сетевой сокет , т. е. идентификационный адрес коммуникации между процессами. В модели OSI эта функция поддерживается сеансовым уровнем .
Некоторые протоколы транспортного уровня, например TCP, но не UDP, поддерживают виртуальные каналы , т. е. обеспечивают ориентированную на соединение связь по базовой пакетно-ориентированной сети датаграмм . Поток байтов доставляется, скрывая пакетный режим связи для прикладных процессов. Это включает в себя установление соединения, разделение потока данных на пакеты, называемые сегментами, нумерацию сегментов и переупорядочивание неупорядоченных данных.
Наконец, некоторые протоколы транспортного уровня, например TCP, но не UDP, обеспечивают надежную связь «от конца до конца», т. е. восстановление после ошибок с помощью кода обнаружения ошибок и протокола автоматического запроса на повтор (ARQ). Протокол ARQ также обеспечивает управление потоком , которое может быть объединено с предотвращением перегрузки .
UDP — очень простой протокол, не предоставляющий ни виртуальных каналов, ни надежной связи, делегируя эти функции прикладной программе . Пакеты UDP называются датаграммами , а не сегментами.
TCP используется для многих протоколов, включая HTTP- браузер и передачу электронной почты. UDP может использоваться для многоадресной и широковещательной рассылки , поскольку повторные передачи на большое количество хостов невозможны. UDP обычно обеспечивает более высокую пропускную способность и меньшую задержку и поэтому часто используется для мультимедийной связи в реальном времени, где иногда допускается потеря пакетов, например, IP-телевидение и IP-телефония, а также для онлайн-игр.
Многие сети, не основанные на IP, такие как X.25 , Frame Relay и ATM , реализуют ориентированную на соединение связь на сетевом или канальном уровне, а не на транспортном уровне. В X.25, в модемах телефонных сетей и в беспроводных системах связи надежная связь между узлами реализуется на нижних уровнях протокола.
Спецификация протокола транспортного уровня в режиме соединения OSI определяет пять классов транспортных протоколов: TP0 , обеспечивающий наименьшее количество ошибок восстановления, до TP4 , который предназначен для менее надежных сетей.
Из-за окостенения протоколов TCP и UDP являются единственными широко используемыми транспортными протоколами в Интернете. [6] Чтобы избежать непереносимости промежуточных устройств , новые транспортные протоколы могут имитировать проводной образ допустимого протокола или быть инкапсулированными в UDP, принимая некоторые накладные расходы (например, из-за внешних контрольных сумм, которые стали избыточными из-за внутренних проверок целостности). [7] QUIC использует последний подход, восстанавливая надежный потоковый транспорт поверх UDP. [8]
В этом списке показаны некоторые протоколы, которые обычно размещаются на транспортных уровнях набора протоколов Интернета , набора протоколов OSI , NetWare IPX /SPX , AppleTalk и Fibre Channel .
Рекомендация ISO/IEC 8073/ITU-T X.224 «Информационные технологии — Взаимосвязь открытых систем — Протокол для предоставления транспортного сервиса в режиме соединения» определяет пять классов транспортных протоколов в режиме соединения, обозначенных как класс 0 (TP0) — класс 4 (TP4). Класс 0 не содержит восстановления после ошибок и был разработан для использования на сетевых уровнях, которые обеспечивают безошибочные соединения. Класс 4 наиболее близок к TCP, хотя TCP содержит функции, такие как постепенное закрытие, которое OSI назначает сеансовому уровню. Все классы протоколов в режиме соединения OSI обеспечивают ускоренные данные и сохранение границ записей. Подробные характеристики классов приведены в следующей таблице: [10]
Существует также транспортный протокол без установления соединения, определенный в рекомендации ISO/IEC 8602/ITU-T X.234. [11]