В компьютерных сетях транспортный уровень представляет собой концептуальное разделение методов многоуровневой архитектуры протоколов сетевого стека в наборе протоколов Интернета и модели 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 , IPX/SPX NetWare , AppleTalk и Fibre Channel .
Рекомендация ISO/IEC 8073/ITU-T X.224 «Информационные технологии — Взаимодействие открытых систем — Протокол для предоставления транспортных услуг в режиме соединения» определяет пять классов транспортных протоколов в режиме соединения, обозначенных от класса 0 (TP0) до класса 4. (ТП4). Класс 0 не содержит восстановления после ошибок и был разработан для использования на сетевых уровнях, обеспечивающих безошибочные соединения. Класс 4 наиболее близок к TCP, хотя TCP содержит такие функции, как плавное закрытие, которые OSI назначает сеансовому уровню. Все классы протоколов режима соединения OSI обеспечивают ускоренную передачу данных и сохранение границ записей. Подробные характеристики классов приведены в следующей таблице: [10]
Существует также транспортный протокол без установления соединения, определенный в Рекомендации ISO/IEC 8602/ITU-T X.234. [11]