Открыть сервис

Транспортный уровень модели OSI

Транспортный уровень модели OSI — это четвёртый уровень эталонной модели взаимодействия открытых систем (OSI), отвечающий за обеспечение надёжной и прозрачной передачи данных между конечными узлами (хостами) сети. Он располагается между сетевым уровнем (уровень 3), который занимается маршрутизацией, и сеансовым уровнем (уровень 5), управляющим диалогом между приложениями. Основная функция транспортного уровня — сегментация данных, поступающих от вышележащих уровней, их передача через сеть с гарантией доставки (или без неё) и последующая сборка на стороне получателя. Транспортный уровень скрывает от приложений детали работы нижележащих сетевых технологий, предоставляя унифицированный интерфейс для обмена данными.

Функции и задачи

Транспортный уровень выполняет несколько ключевых задач, которые обеспечивают целостность и эффективность передачи данных:

  • Сегментация и сборка: данные, полученные от сеансового уровня, разбиваются на сегменты (или дейтаграммы) фиксированного или переменного размера, пригодные для передачи через сеть. На стороне получателя сегменты собираются в исходный поток данных.
  • Адресация портов: транспортный уровень использует номера портов для идентификации конкретных приложений или процессов на узлах-отправителе и получателе. Это позволяет мультиплексировать несколько соединений через один сетевой интерфейс.
  • Управление соединением: установление, поддержание и завершение логического соединения между двумя конечными точками. В зависимости от протокола, соединение может быть ориентированным на установление связи (connection-oriented) или без установления (connectionless).
  • Контроль ошибок: обнаружение и, в некоторых протоколах, исправление ошибок, возникающих при передаче (например, потеря, дублирование или повреждение сегментов).
  • Управление потоком: регулирование скорости передачи данных, чтобы предотвратить переполнение буфера получателя или перегрузку сети.
  • Мультиплексирование и демультиплексирование: объединение нескольких потоков данных от разных приложений в один канал связи (мультиплексирование) и их разделение на стороне получателя (демультиплексирование).

Протоколы транспортного уровня

Наиболее известными протоколами транспортного уровня являются TCP (Transmission Control Protocol) и UDP (User Datagram Protocol), которые входят в стек протоколов TCP/IP. Однако в модели OSI существуют и другие протоколы, такие как SPX (Sequenced Packet Exchange) в стеке IPX/SPX или TP0–TP4 (Transport Protocol classes 0–4) в стандартах OSI.

TCP (Transmission Control Protocol)

TCP — это ориентированный на соединение протокол, обеспечивающий надёжную доставку данных. Его основные характеристики:

  • Установление соединения через трёхэтапное рукопожатие (SYN, SYN-ACK, ACK).
  • Нумерация сегментов для контроля порядка и обнаружения потерь.
  • Подтверждение приёма (ACK) — получатель отправляет подтверждение успешного получения сегментов.
  • Повторная передача потерянных сегментов.
  • Управление потоком с помощью скользящего окна.
  • Контроль перегрузки (алгоритмы медленного старта, предотвращения перегрузки, быстрой повторной передачи).

TCP используется в приложениях, где важна целостность данных: веб-серверы (HTTP/HTTPS), электронная почта (SMTP, IMAP), передача файлов (FTP), удалённый доступ (SSH).

UDP (User Datagram Protocol)

UDP — это протокол без установления соединения, работающий с минимальными накладными расходами. Его особенности:

  • Отсутствие гарантии доставки — сегменты могут теряться, дублироваться или приходить не в том порядке.
  • Нет подтверждений приёма и повторной передачи.
  • Нет управления потоком и перегрузкой.
  • Низкая задержка и высокая скорость передачи.

UDP применяется в приложениях, где скорость важнее надёжности: потоковое видео и аудио (RTP), онлайн-игры, DNS-запросы, VoIP (SIP/RTP), системы мониторинга (SNMP).

Другие протоколы

  • SPX (Sequenced Packet Exchange): протокол стека IPX/SPX, используемый в сетях Novell NetWare. Обеспечивает надёжную доставку с установлением соединения.
  • TP0–TP4 (Transport Protocol classes 0–4): набор протоколов, определённых в стандартах OSI (ISO 8073). Класс TP0 — самый простой, без контроля ошибок; TP4 — наиболее сложный, с функциями, аналогичными TCP.
  • SCTP (Stream Control Transmission Protocol): современный протокол, сочетающий свойства TCP и UDP, поддерживающий мультипотоковость и многодомность. Используется в телекоммуникациях (SS7 over IP) и некоторых веб-приложениях.

Формат сегментов

Каждый протокол транспортного уровня имеет свой формат заголовка сегмента или дейтаграммы.

Заголовок TCP

Заголовок TCP имеет минимальный размер 20 байт (без опций) и включает следующие поля:

  • Порт источника (16 бит) и порт назначения (16 бит): идентифицируют приложения.
  • Порядковый номер (32 бита): номер первого байта данных в сегменте.
  • Номер подтверждения (32 бита): номер следующего ожидаемого байта (для ACK).
  • Смещение данных (4 бита): длина заголовка в 32-битных словах.
  • Резерв (3 бита): зарезервировано для будущего использования.
  • Флаги (9 бит): управляющие биты (URG, ACK, PSH, RST, SYN, FIN и др.).
  • Размер окна (16 бит): количество байтов, которое получатель готов принять.
  • Контрольная сумма (16 бит): проверка целостности заголовка и данных.
  • Указатель срочности (16 бит): указывает на срочные данные (используется с флагом URG).
  • Опции (переменная длина): дополнительные параметры (например, масштабирование окна, временные метки).

Заголовок UDP

Заголовок UDP имеет фиксированный размер 8 байт:

  • Порт источника (16 бит): опционально, может быть нулевым.
  • Порт назначения (16 бит).
  • Длина (16 бит): общая длина дейтаграммы (заголовок + данные) в байтах.
  • Контрольная сумма (16 бит): опционально, может быть нулевой (в IPv4).

Взаимодействие с другими уровнями

Транспортный уровень получает данные от сеансового уровня (уровень 5) в виде сообщений или потоков. Он добавляет свой заголовок (и, возможно, концевик) и передаёт полученные сегменты сетевому уровню (уровень 3). На стороне получателя транспортный уровень принимает сегменты от сетевого уровня, удаляет заголовок, проверяет целостность и передаёт данные сеансовому уровню.

В модели OSI транспортный уровень считается «границей» между уровнями, ориентированными на приложения (5–7), и уровнями, ориентированными на сеть (1–3). Он обеспечивает независимость приложений от конкретных сетевых технологий.

Критика и ограничения

Модель OSI, включая транспортный уровень, была разработана как универсальный стандарт, но на практике доминирует стек TCP/IP. Критика транспортного уровня в контексте OSI включает:

  • Избыточность: многие функции транспортного уровня дублируются на других уровнях (например, контроль ошибок на канальном уровне).
  • Сложность реализации: протоколы TP0–TP4 редко применяются из-за громоздкости.
  • Отсутствие гибкости: модель OSI не учитывает современные требования, такие как мультимедийные потоки или мобильные сети.

Тем не менее, концепции транспортного уровня — порты, сегментация, управление соединением — остаются фундаментальными для современных сетей.

Примеры использования

  • Веб-серфинг: браузер использует TCP через порт 80 (HTTP) или 443 (HTTPS) для загрузки веб-страниц.
  • Потоковое видео: протокол UDP (через RTP) обеспечивает низкую задержку для видео в реальном времени, например, в Zoom или YouTube Live.
  • DNS-запросы: DNS-клиент отправляет запросы через UDP на порт 53, но при больших ответах может переключаться на TCP.
  • Электронная почта: SMTP (порт 25) и IMAP (порт 143) используют TCP для надёжной передачи сообщений.

Источники

  • Стенд ISO/IEC 7498-1:1994 «Information technology — Open Systems Interconnection — Basic Reference Model: The Basic Model».
  • RFC 793 «Transmission Control Protocol» (1981).
  • RFC 768 «User Datagram Protocol» (1980).
  • Таненбаум Э., Уэзеролл Д. «Компьютерные сети» (5-е издание, 2012).
  • Куроуз Дж., Росс К. «Компьютерные сети: подход "снизу вверх"» (6-е издание, 2013).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →