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

Представительский уровень

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

Место в модели OSI

Представительский уровень располагается между прикладным уровнем (уровень 7) и сеансовым уровнем (уровень 5). Если прикладной уровень оперирует семантикой данных (смыслом), то представительский — их синтаксисом (формой представления). Он выступает в роли транслятора, обеспечивающего взаимопонимание между различными компьютерными системами, которые могут использовать разные кодировки символов, порядок байтов (endianness) или форматы чисел с плавающей запятой.

В отличие от нижележащих уровней (транспортного, сетевого, канального и физического), которые занимаются доставкой данных, представительский уровень не участвует в маршрутизации или управлении потоком. Его основная задача — сделать данные «читаемыми» для принимающего приложения.

Основные функции

Преобразование синтаксиса и кодирование

Главная функция представительского уровня — согласование синтаксиса данных. Разные системы могут использовать различные способы представления одних и тех же данных. Например, в архитектуре x86 (little-endian) младший байт числа хранится по младшему адресу, а в архитектуре PowerPC (big-endian) — наоборот. Представительский уровень преобразует данные в общий, согласованный формат передачи (часто называемый transfer syntax) и обратно в формат, понятный конкретной системе.

К этой же категории относится преобразование кодировок текста (ASCII, UTF-8, UTF-16, EBCDIC). Если одно приложение отправляет текст в кодировке UTF-8, а другое ожидает UTF-16, эта трансляция выполняется на представительском уровне.

Шифрование и дешифрование

Для обеспечения конфиденциальности передаваемых данных представительский уровень может выполнять их шифрование перед отправкой на нижележащие уровни и дешифрование после получения. Это может быть как симметричное шифрование (например, AES), так и асимметричное (RSA). В современных протоколах, таких как TLS (Transport Layer Security), операции шифрования фактически выполняются на представительском уровне, хотя формально TLS часто относят к прикладному уровню или рассматривают как отдельный протокол, работающий между транспортным и прикладным.

Сжатие данных

Для уменьшения объёма передаваемых данных и экономии пропускной способности сети представительский уровень может выполнять сжатие данных перед отправкой и их распаковку на стороне получателя. Используются различные алгоритмы сжатия (например, LZW, Deflate). Сжатие может быть как без потерь (для текстов, баз данных), так и с потерями (для мультимедиа, где допустима некоторая потеря качества).

Протоколы и реализации

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

Примеры работы

  1. Веб-сервер и браузер: Когда пользователь открывает страницу по протоколу HTTPS, браузер и сервер на представительском уровне (через TLS) согласовывают алгоритмы шифрования, обмениваются сертификатами и устанавливают зашифрованное соединение. Сама HTML-страница, отправляемая сервером, может быть сжата (например, алгоритмом gzip) — это также функция представительского уровня, хотя в HTTP она управляется заголовками Accept-Encoding и Content-Encoding.
  2. Удалённый вызов процедур (RPC): При вызове функции на удалённом сервере (например, через DCE/RPC или gRPC), клиентская заглушка (stub) упаковывает параметры вызова в стандартный формат (например, с помощью Protocol Buffers или XDR), а серверная заглушка распаковывает их. Этот процесс маршалинга и демаршалинга данных является прямой реализацией функций представительского уровня.
  3. Базы данных: При подключении клиента СУБД к серверу (например, через протокол TDS для Microsoft SQL Server или протокол PostgreSQL), драйвер базы данных часто выполняет преобразование типов данных между языком программирования (например, C# или Java) и внутренним форматом СУБД. Это также работа представительского уровня.

Критика и современное состояние

Концепция представительского уровня как отдельного, чётко выделенного уровня в стеке OSI часто подвергается критике. На практике функции, приписываемые этому уровню (шифрование, сжатие, преобразование синтаксиса), редко реализуются в виде независимого модуля, который можно было бы заменить, не затрагивая соседние уровни. В стеке TCP/IP, который стал доминирующим, представительский уровень отсутствует как таковой; его задачи выполняются либо на прикладном уровне (в протоколах HTTP, FTP, SMTP), либо в специализированных библиотеках (OpenSSL, libsodium).

Тем не менее, модель OSI остаётся полезной дидактической и аналитической абстракцией. Понимание функций представительского уровня помогает разработчикам правильно проектировать протоколы, выбирать методы кодирования и шифрования, а также диагностировать проблемы, связанные с несовместимостью форматов данных.

Источники

  1. Столлингс В. Компьютерные сети, протоколы и технологии. — СПб.: Питер, 2015.
  2. Таненбаум Э., Уэзеролл Д. Компьютерные сети. — 5-е изд. — СПб.: Питер, 2012.
  3. Куроуз Дж., Росс К. Компьютерные сети: нисходящий подход. — М.: Эксмо, 2016.
  4. ISO/IEC 7498-1:1994. Information technology — Open Systems Interconnection — Basic Reference Model: The Basic Model.
  5. RFC 1832. XDR: External Data Representation Standard. Sun Microsystems, 1995.

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

На главную BFOmetr →