Представительский уровень
Представительский уровень (англ. 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). Сжатие может быть как без потерь (для текстов, баз данных), так и с потерями (для мультимедиа, где допустима некоторая потеря качества).
Протоколы и реализации
В чистом виде представительский уровень как отдельный программный компонент встречается редко. В большинстве современных сетевых стеков его функции встроены в протоколы прикладного уровня или реализованы в виде отдельных библиотек и подсистем. Тем не менее, существуют протоколы, которые исторически или концептуально относятся к этому уровню:
- SSL/TLS (Secure Sockets Layer / Transport Layer Security): Обеспечивает шифрование, аутентификацию и целостность данных. Хотя TLS работает поверх транспортного уровня (TCP), его функции (шифрование, сжатие, согласование параметров) соответствуют задачам представительского уровня.
- XDR (External Data Representation): Стандарт Sun Microsystems для описания и кодирования данных. Используется в протоколах ONC RPC (Remote Procedure Call) и NFS (Network File System). XDR определяет, как такие типы данных, как целые числа, строки, массивы и структуры, должны быть представлены в виде последовательности байтов для передачи по сети.
- ASN.1 (Abstract Syntax Notation One): Язык описания структур данных, широко используемый в телекоммуникациях (SNMP, LDAP, X.509 сертификаты). ASN.1 определяет абстрактный синтаксис, а его правила кодирования (BER, DER, PER) задают конкретный синтаксис (transfer syntax).
- MIME (Multipurpose Internet Mail Extensions): Хотя MIME в первую очередь относится к прикладному уровню (электронная почта), его функции кодирования (Base64, Quoted-Printable) и указания типа содержимого (Content-Type) решают задачи представительского уровня по преобразованию данных для передачи.
- NetBIOS (Network Basic Input/Output System): В своей расширенной версии NetBIOS API предоставляет функции для именования, сеансов и дейтаграмм, но также включает элементы, отвечающие за представление данных (например, преобразование имён NetBIOS в IP-адреса).
Примеры работы
- Веб-сервер и браузер: Когда пользователь открывает страницу по протоколу HTTPS, браузер и сервер на представительском уровне (через TLS) согласовывают алгоритмы шифрования, обмениваются сертификатами и устанавливают зашифрованное соединение. Сама HTML-страница, отправляемая сервером, может быть сжата (например, алгоритмом gzip) — это также функция представительского уровня, хотя в HTTP она управляется заголовками
Accept-EncodingиContent-Encoding. - Удалённый вызов процедур (RPC): При вызове функции на удалённом сервере (например, через DCE/RPC или gRPC), клиентская заглушка (stub) упаковывает параметры вызова в стандартный формат (например, с помощью Protocol Buffers или XDR), а серверная заглушка распаковывает их. Этот процесс маршалинга и демаршалинга данных является прямой реализацией функций представительского уровня.
- Базы данных: При подключении клиента СУБД к серверу (например, через протокол TDS для Microsoft SQL Server или протокол PostgreSQL), драйвер базы данных часто выполняет преобразование типов данных между языком программирования (например, C# или Java) и внутренним форматом СУБД. Это также работа представительского уровня.
Критика и современное состояние
Концепция представительского уровня как отдельного, чётко выделенного уровня в стеке OSI часто подвергается критике. На практике функции, приписываемые этому уровню (шифрование, сжатие, преобразование синтаксиса), редко реализуются в виде независимого модуля, который можно было бы заменить, не затрагивая соседние уровни. В стеке TCP/IP, который стал доминирующим, представительский уровень отсутствует как таковой; его задачи выполняются либо на прикладном уровне (в протоколах HTTP, FTP, SMTP), либо в специализированных библиотеках (OpenSSL, libsodium).
Тем не менее, модель OSI остаётся полезной дидактической и аналитической абстракцией. Понимание функций представительского уровня помогает разработчикам правильно проектировать протоколы, выбирать методы кодирования и шифрования, а также диагностировать проблемы, связанные с несовместимостью форматов данных.
Источники
- Столлингс В. Компьютерные сети, протоколы и технологии. — СПб.: Питер, 2015.
- Таненбаум Э., Уэзеролл Д. Компьютерные сети. — 5-е изд. — СПб.: Питер, 2012.
- Куроуз Дж., Росс К. Компьютерные сети: нисходящий подход. — М.: Эксмо, 2016.
- ISO/IEC 7498-1:1994. Information technology — Open Systems Interconnection — Basic Reference Model: The Basic Model.
- RFC 1832. XDR: External Data Representation Standard. Sun Microsystems, 1995.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →