В компьютерной сети , то транспортный уровень представляет собой концептуальное разделение методов в многоуровневой архитектуре протоколов в сетевом стеке в наборе протоколов Интернета и модели OSI . Протоколы этого уровня предоставляют приложениям услуги связи между хостами. [1] : §1.1.3 Он предоставляет такие услуги, как связь с установлением соединения , надежность , управление потоком и мультиплексирование .
Детали реализации и семантика транспортного слоя набора протоколов Интернет , [1] , который является основой Интернета , и модель OSI общей сети различны. Все протоколы, используемые сегодня на этом уровне Интернета, возникли при разработке TCP / IP. В модели OSI транспортный уровень часто называют Layer 4 или L4 , [2] , а пронумерованные слои не используются в TCP / IP.
Самый известный транспортный протокол из набора Интернет-протоколов - это протокол управления передачей (TCP). Он используется для передачи с установлением соединения, тогда как протокол пользовательских дейтаграмм без установления соединения (UDP) используется для более простой передачи сообщений. TCP является более сложным протоколом из-за его структуры с отслеживанием состояния, включающей надежные службы передачи и потоков данных. Вместе TCP и UDP составляют практически весь трафик в Интернете и являются единственными протоколами, реализованными во всех основных операционных системах. Дополнительные протоколы транспортного уровня, которые были определены и реализованы, включают протокол управления перегрузкой дейтаграмм (DCCP) и протокол передачи управления потоком (SCTP).
Услуги
Услуги транспортного уровня передаются в приложение через программный интерфейс к протоколам транспортного уровня. Услуги могут включать в себя следующие функции:
- Ориентированный на соединение связи : Это , как правило , легче приложение интерпретировать соединение как поток данных , а не иметь дело с основными соединительными меньше моделей, таких как дейтаграммы модель User Datagram Protocol (UDP) и в сети Интернет Протокол (IP).
- Доставка в том же порядке: сетевой уровень обычно не гарантирует, что пакеты данных будут доставлены в том же порядке, в котором они были отправлены, но часто это желательная функция. Обычно это делается с помощью нумерации сегментов, когда получатель передает их приложению по порядку. Это может вызвать блокировку заголовка линии .
- Надежность : пакеты могут быть потеряны во время транспортировки из-за перегрузки сети и ошибок. С помощью кода обнаружения ошибок , такого как контрольная сумма , транспортный протокол может проверить, не повреждены ли данные, и проверить правильность получения, отправив отправителю сообщение ACK или NACK . Схемы автоматического повторного запроса могут использоваться для повторной передачи потерянных или поврежденных данных.
- Управление потоком : иногда необходимо управлять скоростью передачи данных между двумя узлами, чтобы не дать быстрому отправителю передать больше данных, чем может поддерживать принимающий буфер данных , что приведет к переполнению буфера. Это также можно использовать для повышения эффективности за счет уменьшения опустошения буфера .
- Предотвращение переполнения : управление перегрузкой может контролировать запись трафика в телекоммуникационной сети, с тем чтобы избежать застойной коллапс , пытаясь , чтобы избежать переподпиской любой из обработки или ссылок возможностей промежуточных узлов и сетей и принимая сокращения ресурсов шаги, такие , как снижение скорости отправки пакетов . Например, автоматические повторные запросы могут держать сеть в перегруженном состоянии; этой ситуации можно избежать, добавив к управлению потоком предотвращение перегрузки, включая медленный старт . Это сохраняет потребление полосы пропускания на низком уровне в начале передачи или после повторной передачи пакета.
- Мультиплексирование : порты могут предоставлять несколько конечных точек на одном узле. Например, имя на почтовом адресе представляет собой своего рода мультиплексирование и различает разных получателей одного и того же места. Каждое компьютерное приложение будет прослушивать информацию на своих собственных портах, что позволяет использовать более одной сетевой службы одновременно. Он является частью транспортного уровня в модели TCP / IP , но является частью сеансового уровня в модели OSI.
Анализ
Транспортный уровень отвечает за доставку данных соответствующему прикладному процессу на хост-компьютерах. Это включает статистическое мультиплексирование данных из различных прикладных процессов, т. Е. Формирование сегментов данных и добавление номеров портов источника и назначения в заголовок каждого сегмента данных транспортного уровня. Вместе с IP-адресом источника и получателя номера портов составляют сетевой сокет , то есть идентификационный адрес межпроцессного взаимодействия. В модели OSI эта функция поддерживается на уровне сеанса .
Некоторые протоколы транспортного уровня, например TCP, но не UDP, поддерживают виртуальные каналы , т. Е. Обеспечивают связь с установлением соединения через базовую сеть с пакетными дейтаграммами . Байтовый поток доставляется, скрывая связь в пакетном режиме для процессов приложения. Это включает в себя установление соединения, разделение потока данных на пакеты, называемые сегментами, нумерацию сегментов и переупорядочение данных вне очереди.
Наконец, некоторые протоколы транспортного уровня, например TCP, но не UDP, обеспечивают сквозную надежную связь, т. Е. Восстановление ошибок с помощью кода обнаружения ошибок и протокола автоматического запроса на повторение (ARQ). Протокол ARQ также обеспечивает управление потоком , которое может сочетаться с предотвращением перегрузки .
UDP - очень простой протокол, который не предоставляет виртуальных каналов или надежной связи, делегируя эти функции прикладной программе. Пакеты UDP называются дейтаграммами , а не сегментами.
TCP используется для многих протоколов, включая просмотр веб-страниц HTTP и передачу электронной почты. UDP может использоваться для многоадресной и широковещательной рассылки , поскольку повторная передача невозможна для большого количества хостов. UDP обычно обеспечивает более высокую пропускную способность и меньшую задержку, и поэтому часто используется для мультимедийной связи в реальном времени, где иногда могут допускаться потери пакетов, например, IP-TV и IP-телефония, а также для компьютерных онлайн-игр.
Многие сети, не основанные на IP, такие как X.25 , Frame Relay и ATM , реализуют связь с установлением соединения на уровне сети или канала передачи данных, а не на транспортном уровне. В X.25 в модемах телефонных сетей и в системах беспроводной связи надежная межузловая связь реализована на более низких уровнях протокола.
Спецификация протокола транспортного уровня режима соединения OSI определяет пять классов транспортных протоколов: TP0 , обеспечивающий наименьшее восстановление после ошибок, и TP4 , который разработан для менее надежных сетей.
Протоколы
Этот список показывает некоторые протоколы, которые обычно размещены в транспортных слоях набора протоколов Интернет , то набор протоколов OSI , NetWare «s IPX / SPX , AppleTalk , и Fiber Channel .
- ATP, протокол транзакций AppleTalk
- CUDP, циклический UDP [3]
- DCCP, протокол управления перегрузкой дейтаграмм
- FCP, протокол Fibre Channel
- Иллинойс, Иллинойс Протокол
- MPTCP, многопутевый TCP
- RDP, надежный протокол передачи данных
- RUDP, протокол надежных пользовательских дейтаграмм
- SCTP, протокол передачи управления потоком
- SPX, последовательный обмен пакетами
- SST, структурированная потоковая передача
- TCP, протокол управления передачей
- UDP, протокол дейтаграмм пользователя
- UDP-Lite
- µTP, микротранспортный протокол
Сравнение протоколов транспортного уровня
Характерная черта | UDP | UDP-Lite | TCP | Многопутевый TCP | SCTP | DCCP | RUDP [a] |
---|---|---|---|---|---|---|---|
Размер заголовка пакета | 8 байт | 8 байт | 20–60 байт | 50–90 байт | 12 байт [b] | 12 или 16 байт | 14+ байт |
Типичные накладные расходы на пакет данных | 8 байт | 8 байт | 20 байт | ?? байты | 44–48 + байт [c] | 12 или 16 байт | 14 байт |
Пакетный объект транспортного уровня | Дейтаграмма | Дейтаграмма | Сегмент | Сегмент | Дейтаграмма | Дейтаграмма | Дейтаграмма |
Ориентированный на соединение | Нет | Нет | да | да | да | да | да |
Надежный транспорт | Нет | Нет | да | да | да | Нет | да |
Ненадежный транспорт | да | да | Нет | Нет | да | да | да |
Сохранить границу сообщения | да | да | Нет | Нет | да | да | да |
Доставка | Неупорядоченный | Неупорядоченный | Упорядоченный | Упорядоченный | Заказанный / Неупорядоченный | Неупорядоченный | Неупорядоченный |
Контрольная сумма данных | По желанию | да | да | да | да | да | По желанию |
Размер контрольной суммы | 16 бит | 16 бит | 16 бит | 16 бит | 32 бит | 16 бит | 16 бит |
Неполная контрольная сумма | Нет | да | Нет | Нет | Нет | да | Нет |
MTU пути | Нет | Нет | да | да | да | да | ? |
Управление потоком | Нет | Нет | да | да | да | Нет | да |
Контроль перегрузки | Нет | Нет | да | да | да | да | ? |
Явное уведомление о перегрузке | Нет | Нет | да | да | да | да | ? |
Несколько потоков | Нет | Нет | Нет | Нет | да | Нет | Нет |
Множественная адресация | Нет | Нет | Нет | да | да | Нет | Нет |
Связка / Нагл | Нет | Нет | да | да | да | Нет | ? |
- ^ RUDP официально не стандартизирован. С 1999 года никаких разработок, связанных со стандартами, не происходило.
- ^ Исключая заголовки блоков данных и служебные блоки. Без встроенных фрагментов пакет SCTP по существу бесполезен.
- ^ Подсчитывается следующим образом: 12 байтов заголовка SCTP + 16 байтов заголовка фрагмента DATA или 20 байтов заголовка фрагмента I-DATA + 16+ байтов фрагмента SACK. Дополнительные фрагменты, не относящиеся к данным (например, AUTH) и / или заголовки для дополнительных фрагментов данных, которые могут легко увеличить накладные расходы на 50 байтов или более, не учитываемые.
Сравнение транспортных протоколов OSI
ИСО / МЭК 8073 / Рекомендация МСЭ-Т X.224, «Информационные технологии - Взаимодействие открытых систем - Протокол для предоставления транспортных услуг в режиме установления соединения», определяет пять классов транспортных протоколов в режиме установления соединения, обозначенных от класса 0 (TP0) до класса 4. (TP4). Класс 0 не содержит средства восстановления после ошибок и был разработан для использования на сетевых уровнях, которые обеспечивают безошибочные соединения. Класс 4 наиболее близок к TCP, хотя TCP содержит такие функции, как плавное закрытие, которое OSI назначает на уровне сеанса. Все классы протоколов OSI в режиме соединения обеспечивают ускоренную передачу данных и сохранение границ записей. Подробные характеристики классов приведены в следующей таблице: [4]
Услуга | TP0 | TP1 | TP2 | TP3 | TP4 |
---|---|---|---|---|---|
Сеть, ориентированная на подключение | да | да | да | да | да |
Сеть без установления соединения | Нет | Нет | Нет | Нет | да |
Конкатенация и разделение | Нет | да | да | да | да |
Сегментация и повторная сборка | да | да | да | да | да |
Восстановление после ошибки | Нет | да | Нет | да | да |
Повторно инициировать соединение (если неподтверждено слишком большое количество PDU ) | Нет | да | Нет | да | Нет |
Мультиплексирование и демультиплексирование по одному виртуальному каналу | Нет | Нет | да | да | да |
Явное управление потоком | Нет | Нет | да | да | да |
Повторная передача по таймауту | Нет | Нет | Нет | Нет | да |
Надежное транспортное обслуживание | Нет | да | Нет | да | да |
Существует также транспортный протокол без установления соединения, определенный в Рекомендации ISO / IEC 8602 / ITU-T X.234. [5]
Рекомендации
- ^ а б Р. Брейден, изд. (Октябрь 1989 г.). Требования к Интернет-хостам - Уровни связи . DOI : 10,17487 / RFC1122 . RFC 1122 .
- ^ «Представляем Internet Protocol Suite» . Руководство системного администратора, Том 3 .
- ^ Брайан С. Смит, Cyclic-UDP: протокол максимальной эффективности с приоритетом (PDF) , получено 23 февраля 2020 г.
- ^ «Рекомендация ITU-T X.224 (11/1995) ISO / IEC 8073» . Itu.int . Проверено 17 января 2017 года .
- ^ «Рекомендация ITU-T X.234 (07/1994) ISO / IEC 8602» . Itu.int . Проверено 17 января 2017 года .