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

Уровень в моделях OSI и TCP/IP, предоставляющий услуги связи между хостами для приложений.

Четыре маркированных сложенных блока. Синий блок с надписью «транспорт» — второй сверху.
Транспортный уровень в стеке интернет-протоколов.

В компьютерных сетях транспортный уровень — это концептуальное разделение методов в многоуровневой архитектуре протоколов в сетевом стеке в наборе интернет-протоколов и модели OSI . Протоколы этого уровня предоставляют сквозные коммуникационные услуги для приложений. [1] : §1.1.3  Он предоставляет такие услуги, как ориентированная на соединение связь , надежность , управление потоком и мультиплексирование .

Детали реализации и семантика транспортного уровня набора протоколов Интернета [ 1] , который является основой Интернета , и модели OSI общей сети различны. Все протоколы, используемые сегодня на этом уровне для Интернета, возникли в ходе разработки TCP/IP. В модели OSI транспортный уровень часто называют Уровнем 4 , или L4 [2], в то время как пронумерованные уровни не используются в TCP/IP.

Самым известным транспортным протоколом из набора протоколов Интернета является протокол управления передачей (TCP). Он используется для передач, ориентированных на соединение, тогда как протокол пользовательских дейтаграмм без соединения (UDP) используется для более простых передач сообщений. TCP является более сложным протоколом из-за его структуры с сохранением состояния, включающей надежные службы передачи и потоков данных. Вместе TCP и UDP охватывают по существу весь трафик в Интернете и являются единственными протоколами, реализованными в каждой крупной операционной системе. Дополнительные протоколы транспортного уровня, которые были определены и реализованы, включают протокол управления перегрузкой дейтаграмм (DCCP) и протокол передачи управления потоком (SCTP).

Услуги

Услуги транспортного уровня передаются приложению через программный интерфейс к протоколам транспортного уровня. Услуги могут включать следующие функции: [4]

  • Коммуникация, ориентированная на соединение : [5] Обычно приложению проще интерпретировать соединение как поток данных , чем иметь дело с базовыми моделями без установления соединения, такими как модель датаграмм протокола пользовательских датаграмм (UDP) и интернет-протокола (IP).
  • Доставка в том же порядке: сетевой уровень обычно не гарантирует, что пакеты данных будут прибывать в том же порядке, в котором они были отправлены, но часто это желательная функция. Обычно это делается с помощью нумерации сегментов, когда получатель передает их приложению по порядку. Это может привести к блокировке заголовка очереди .
  • Надежность : пакеты могут быть потеряны во время транспортировки из-за перегрузки сети и ошибок. С помощью кода обнаружения ошибок , такого как контрольная сумма , транспортный протокол может проверить, что данные не повреждены, и подтвердить правильность получения, отправив сообщение ACK или NACK отправителю. Автоматические схемы повторного запроса могут использоваться для повторной передачи потерянных или поврежденных данных.
  • Управление потоком : Скорость передачи данных между двумя узлами иногда должна управляться, чтобы предотвратить передачу быстрым отправителем большего количества данных, чем может поддерживать буфер принимающих данных , что приводит к переполнению буфера. Это также может быть использовано для повышения эффективности путем уменьшения опустошения буфера .
  • Избежание перегрузки : контроль перегрузки может контролировать входящий трафик в телекоммуникационную сеть, чтобы избежать перегрузки , пытаясь избежать переподписки на любые возможности обработки или связи промежуточных узлов и сетей и предпринимая шаги по сокращению ресурсов, такие как снижение скорости отправки пакетов . Например, автоматические повторные запросы могут удерживать сеть в перегруженном состоянии; этой ситуации можно избежать, добавив предотвращение перегрузки к управлению потоком, включая медленный старт . Это поддерживает потребление полосы пропускания на низком уровне в начале передачи или после повторной передачи пакета.
  • Мультиплексирование : порты могут предоставлять несколько конечных точек на одном узле. Например, имя в почтовом адресе является своего рода мультиплексированием и различает разных получателей одного и того же местоположения. Каждое компьютерное приложение будет прослушивать информацию на своих собственных портах, что позволяет использовать более одной сетевой службы одновременно. Это часть транспортного уровня в модели TCP/IP , но сеансового уровня в модели OSI.

Анализ

Транспортный уровень отвечает за доставку данных в соответствующий прикладной процесс на хост-компьютерах. Это включает статистическое мультиплексирование данных из различных прикладных процессов, т. е. формирование сегментов данных и добавление номеров портов источника и назначения в заголовок каждого сегмента данных транспортного уровня. Вместе с 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 .

Сравнение протоколов транспортного уровня Интернета

ОсобенностьУДПUDP-LiteТКПМногопутевой TCPСКТПДЦКПРУДП [а]
Размер заголовка пакета8 байт8 байт20–60 байт50–90 байт12 байт [б]12 или 16 байт14+ байт
Типичные накладные расходы на пакет данных8 байт8 байт20 байт?? байт44–48+ байт [c]12 или 16 байт14 байт
Пакетная сущность транспортного уровняДейтаграммаДейтаграммаСегментСегментДейтаграммаДейтаграммаДейтаграмма
Ориентированный на соединениеНетНетДаДаДаДаДа
Надежный транспортНетНетДаДаДаНетДа
Ненадежный транспортДаДаНетНетДаДаДа
Сохранять границу сообщенияДаДаНетНетДаДаДа
ДоставкаНеупорядоченныйНеупорядоченныйЗаказаноЗаказаноУпорядочено / НеупорядоченоНеупорядоченныйНеупорядоченный
Контрольная сумма данныхНеобязательныйДаДаДаДаДаНеобязательный
Размер контрольной суммы16 бит16 бит16 бит16 бит32 бита16 бит16 бит
Частичная контрольная суммаНетДаНетНетНетДаНет
MTU путиНетНетДаДаДаДа?
Управление потокомНетНетДаДаДаНетДа
Контроль за перегрузкойНетНетДаДаДаДа?
Явное уведомление о перегрузкеНетНетДаДаДаДа?
Несколько потоковНетНетНетНетДаНетНет
МногоадресностьНетНетНетДаДаНетНет
Комплектация / NagleНетНетДаДаДаНет?
  1. ^ RUDP официально не стандартизирован. С 1999 года не было никаких разработок, связанных со стандартом.
  2. ^ Исключая заголовки фрагментов данных и служебные фрагменты. Без встроенных фрагментов пакет SCTP по сути бесполезен.
  3. ^ Подсчитывается следующим образом: 12 байт заголовка SCTP + 16 байт заголовка блока DATA или 20 байт заголовка блока I-DATA + 16+ байт блока SACK. Дополнительные блоки, не являющиеся данными (например, AUTH) и/или заголовки для дополнительных блоков данных, которые могут легко увеличить накладные расходы на 50 байт или более, не учитываются.

Сравнение транспортных протоколов OSI

Рекомендация ISO/IEC 8073/ITU-T X.224 «Информационные технологии — Взаимосвязь открытых систем — Протокол для предоставления транспортного сервиса в режиме соединения» определяет пять классов транспортных протоколов в режиме соединения, обозначенных как класс 0 (TP0) — класс 4 (TP4). Класс 0 не содержит восстановления после ошибок и был разработан для использования на сетевых уровнях, которые обеспечивают безошибочные соединения. Класс 4 наиболее близок к TCP, хотя TCP содержит функции, такие как постепенное закрытие, которое OSI назначает сеансовому уровню. Все классы протоколов в режиме соединения OSI обеспечивают ускоренные данные и сохранение границ записей. Подробные характеристики классов приведены в следующей таблице: [10]

УслугаТП0ТП1ТП2ТП3ТП4
Сеть, ориентированная на соединениеДаДаДаДаДа
Сеть без подключенияНетНетНетНетДа
Конкатенация и разделениеНетДаДаДаДа
Сегментация и повторная сборкаДаДаДаДаДа
Ошибка восстановленияНетДаНетДаДа
Повторно инициировать соединение (если слишком много PDU не подтверждено)НетДаНетДаНет
Мультиплексирование и демультиплексирование по одному виртуальному каналуНетНетДаДаДа
Явное управление потокомНетНетДаДаДа
Повторная передача по тайм-аутуНетНетНетНетДа
Надежная транспортная службаНетДаНетДаДа

Существует также транспортный протокол без установления соединения, определенный в рекомендации ISO/IEC 8602/ITU-T X.234. [11]

Ссылки

  1. ^ ab R. Braden , ed. (октябрь 1989). Требования к интернет-хостам — коммуникационные уровни. Сетевая рабочая группа. doi : 10.17487/RFC1122 . STD 3. RFC 1122. Интернет-стандарт 3. Обновлен RFC 1349, 4379, 5884, 6093, 6298, 6633, 6864, 8029 и 9293.
  2. ^ «Введение в набор протоколов Интернета». Руководство по системному администрированию, том 3 .
  3. ^ "X.225: Информационные технологии – Взаимосвязь открытых систем – Протокол сеанса с установлением соединения: Спецификация протокола". Архивировано из оригинала 1 февраля 2021 г. Получено 10 марта 2023 г.
  4. ^ "Транспортный уровень" (PDF) . Университет Галготиас .
  5. ^ Хина, Кера. «Передача данных и сети» (PDF) . Университет Галготии . п. 9.
  6. ^ Папастерджиу и др. 2017, с. 620-621.
  7. ^ Папастерджиу и др. 2017, с. 623-624.
  8. ^ Корбет 2018.
  9. ^ Брайан С. Смит, Cyclic-UDP: A Priority-Driven Best-Effort Protocol (PDF) , получено 23 февраля 2020 г.
  10. ^ «Рекомендация ITU-T X.224 (11/1995) ISO/IEC 8073» . Itu.int . Проверено 17 января 2017 г.
  11. ^ «Рекомендация ITU-T X.234 (07/1994) ISO/IEC 8602» . Itu.int . Проверено 17 января 2017 г.

Библиография

  • Корбет, Джонатан (29 января 2018 г.). «QUIC как решение проблемы окостенения протокола». LWN.net .
  • Папастергиу, Гиоргос; Фэрхерст, Горри; Рос, Дэвид; Брунстром, Анна; Гриннемо, Карл-Йохан; Хуртиг, Пер; Хадеми, Наим; Туксен, Майкл; Вельцль, Майкл; Дамьянович, Драгана; Манджанте, Симоне (2017). «Декостенение транспортного уровня Интернета: обзор и будущие перспективы». Обзоры и руководства по коммуникациям IEEE . 19 : 619–639. doi : 10.1109/COMST.2016.2626780. hdl : 2164/8317 . S2CID  1846371.
Retrieved from "https://en.wikipedia.org/w/index.php?title=Transport_layer&oldid=1246296307"