Транспортный уровень
Транспортный уровень — это четвёртый (или третий, в зависимости от модели) уровень эталонной модели взаимодействия открытых систем (OSI), отвечающий за сквозную, надёжную или ненадёжную передачу данных между конечными узлами (хостами) в компьютерной сети. В модели TCP/IP транспортный уровень является третьим и включает в себя протоколы, обеспечивающие связь между процессами на различных компьютерах через сеть с коммутацией пакетов, маскируя различия нижележащих сетей (канального и сетевого уровней). Основными функциями транспортного уровня являются сегментация (разбиение данных приложения на сегменты), восстановление последовательности (сборка данных в правильном порядке при получении), управление потоком (предотвращение переполнения буфера получателя) и контроль ошибок (обнаружение потерь, дублирования или повреждения сегментов).
Функции и задачи
Транспортный уровень предоставляет услуги сеансовому уровню (в модели OSI) или непосредственно прикладному уровню (в модели TCP/IP). Ключевыми задачами являются:
- Адресация служб (порты): транспортный уровень использует номера портов (16-битные значения от 0 до 65535) для идентификации конкретного приложения или процесса на узле. Это позволяет мультиплексировать несколько соединений между одними и теми же IP-адресами и различать трафик веб-сервера (порт 80 или 443) и почтового сервера (порт 25), работающих на одном хосте.
- Сегментация и сборка: данные от прикладного уровня делятся на блоки фиксированного или переменного размера (сегменты или дейтаграммы), снабжённые заголовками. На принимающей стороне эти блоки собираются в исходную последовательность, при необходимости компенсируя задержки и переупорядочивание, вызванные нижележащими протоколами.
- Управление потоком: механизмы, предотвращающие отправку данных быстрее, чем принимающая сторона может их обработать. Обычно реализуется с помощью окна перегрузки (например, скользящее окно в TCP) или сигналов остановки ожидания (XON/XOFF в некоторых протоколах).
- Контроль ошибок: обнаружение и исправление ошибок, возникших при передаче. Для этого используются контрольные суммы (checksum), вычисляемые для заголовка и данных сегмента. При обнаружении повреждения дейтаграмма может быть отброшена, а в протоколах с установлением соединения — перепослана.
- Управление соединением: способность устанавливать, поддерживать и разрывать логическое соединение между двумя процессами. Протоколы могут быть как ориентированными на соединение (connection-oriented), требующими установления виртуального канала до начала передачи данных, так и без установления соединения (connectionless), когда каждый сегмент отправляется независимо.
Сравнение моделей OSI и TCP/IP
В модели OSI транспортный уровень является четвёртым по счёту (ниже — сетевой, выше — сеансовый). В модели TCP/IP, которая является практической реализацией для интернета, транспортный уровень находится между сетевым (internet layer) и прикладным (application layer). Основные протоколы модели TCP/IP на транспортном уровне — TCP (Transmission Control Protocol) и UDP (User Datagram Protocol). В модели OSI также выделяют такие протоколы, как SPX (IPX/SPX), TP0-4 (OSI Transport Protocols), но в современных IP-сетях доминируют TCP и UDP.
Классификация протоколов транспортного уровня
Протоколы с установлением соединения (TCP)
TCP (Transmission Control Protocol) — это один из основных протоколов стека протоколов TCP/IP, обеспечивающий надёжную, упорядоченную передачу данных с установлением соединения. Основные характеристики:
- Установление соединения (трёхэтапное рукопожатие): обмен SYN, SYN-ACK, ACK пакетами для синхронизации порядковых номеров и установки начальных параметров.
- Нумерация сегментов: каждый отправляемый байт данных имеет порядковый номер (sequence number), что позволяет обнаружению потерь, дублирования и восстановлению порядка.
- Подтверждение (ACK): получатель отправляет подтверждение о получении сегментов. Отсутствие подтверждения (тайм-аут) вызывает повторную передачу.
- Контроль перегрузки: алгоритмы медленного старта, предотвращения перегрузки (congestion avoidance), быстрой повторной передачи (fast retransmit) и быстрого восстановления (fast recovery), направленные на адаптацию скорости отправки к пропускной способности сети.
- Скользящее окно: определяет количество данных, которое может быть отправлено без получения подтверждения. Размер окна динамически регулируется (управление потоком и перегрузкой).
- Применение: веб-серфинг (HTTP/HTTPS), электронная почта (SMTP, IMAP, POP3), передача файлов (FTP), удалённый доступ (SSH, Telnet).
Протоколы без установления соединения (UDP)
UDP (User Datagram Protocol) — это простой протокол, обеспечивающий негарантированную доставку данных без установления соединения. Характеристики:
- Без установления соединения: данные отправляются непосредственно (датаграммами) без предварительного рукопожатия.
- Без подтверждения: не гарантирует доставку, не упорядочивает пакеты, не управляет потоком.
- Минимальный заголовок: 8 байт (против 20+ у TCP), что снижает накладные расходы.
- Высокая скорость: низкая задержка, пригоден для приложений реального времени.
- Допустимость потерь: приложения могут восстанавливаться от потерь или игнорировать их.
- Применение: потоковое видео и аудио (VoIP, IP-телефония, потоковое вещание), онлайн-игры, DNS-запросы (Domain Name System), DHCP (Dynamic Host Configuration Protocol), протокол NTP (Network Time Protocol).
Другие протоколы транспортного уровня
- SCTP (Stream Control Transmission Protocol) — протокол, сочетающий свойства TCP (надёжность, упорядоченность, контроль перегрузки) и UDP (мультиплексирование потоков); используется в телефонии (SS7 over IP) и некоторых системах сигнализации (SIGTRAN). Поддерживает многодомные соединения (multi-homing).
- DCCP (Datagram Congestion Control Protocol) — протокол для передачи дейтаграмм с контролем перегрузки, но без гарантии доставки и упорядочивания. Применяется для потокового мультимедиа, где важна своевременность, а не надёжность.
- RUDP (Reliable UDP) — надстройка над UDP, добавляющая механизмы повторной передачи, упорядочивания и контроля потока (используется в некоторых играх и системах вроде QUIC).
- QUIC (Quick UDP Internet Connections) — протокол транспортного уровня, разработанный Google и стандартизированный IETF. Работает поверх UDP, но обеспечивает надёжность, мультиплексирование, уменьшенную задержку соединения (0-RTT) и встроенное шифрование (TLS 1.3). Используется в HTTP/3.
Порты и сокеты
Каждое приложение или служба, использующая транспортный уровень, привязывается к определённому порту. Номера портов делятся на три диапазона:
- Системные порты (1–1023): зарезервированы для широко известных служб (well-known ports). Например, HTTP — порт 80, HTTPS — 443, FTP — 21, SSH — 22, DNS — 53.
- Зарегистрированные порты (1024–49151): могут быть зарегистрированы организациями для собственных протоколов.
- Динамические/частные порты (49152–65535): временные порты, назначаемые клиентским приложениям при установлении соединения.
Сокет (socket) — это комбинация IP-адреса и номера порта, однозначно идентифицирующая конкретное соединение. Пара сокетов (отправитель-получатель) определяет канал передачи данных между двумя процессами.
Надёжность и качество обслуживания (QoS)
Транспортный уровень может предоставлять различные уровни надёжности. TCP гарантирует доставку всех данных, целостность и порядок. UDP не гарантирует ничего, кроме минимальной целостности датаграммы. В современных сетях применяются механизмы QoS (Quality of Service), которые на транспортном (и сетевом) уровне могут задавать приоритеты трафика, резервирование полосы пропускания или управление задержкой (например, DiffServ, RSVP). Эти механизмы не являются частью базовой спецификации TCP или UDP, но реализуются в сетевом оборудовании.
Значение транспортного уровня
Транспортный уровень является критическим звеном в обеспечении надёжной и эффективной передачи данных в сетях. Без него прикладные программы были бы вынуждены самостоятельно решать проблемы потери пакетов, дублирования, управления потоком и адресации своих служб — что крайне усложнило бы разработку приложений. Многоуровневая архитектура, и в частности транспортный уровень, позволила абстрагироваться от деталей физического и канального обмена и сосредоточиться на логике передачи данных между программами.
Источники
- RFC 793 — Transmission Control Protocol (TCP).
- RFC 768 — User Datagram Protocol (UDP).
- RFC 4960 — Stream Control Transmission Protocol (SCTP).
- RFC 4340 — Datagram Congestion Control Protocol (DCCP).
- RFC 9000 — QUIC: A UDP-Based Multiplexed and Secure Transport.
- ISO/IEC 7498-1:1994 — Information technology — Open Systems Interconnection — Basic Reference Model: The Basic Model.
- Компьютерные сети: принципы, технологии, протоколы. / Олифер В. Г., Олифер Н. А. — 5-е изд. — СПб.: Питер, 2016.
- TCP/IP Illustrated, Volume 1: The Protocols. / Stevens W. R.
- Computer Networking: A Top-Down Approach. / Kurose J. F., Ross K. W. — 8th ed. — Pearson, 2021.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →