Транспортный уровень модели 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 →