Уровень представления содержит функции общего применения, реализующие интерфейсы к принтерам, дисплеям и форматам файлов. Уровень представления определяет, в каком виде данные поступят к пользователю. В связи с этим работа уровня представления связана с многочисленными преобразованиями данных.
Хорошо спроектированная сеть позволяет использовать разнообразные компьютеры. К ней подключены компьютеры от персональных до мини и больших мэйнфреймов. Внутри каждой группы компьютеров существует еще большее разнообразие дисплеев и принтеров для них. Операционные системы, на которых они работают, также славятся несовместимостью между собой. Уровень представления должен объединять это разнообразие способом, позволяющим сделать вопросы несовместимости “прозрачными” для сети.
К сожалению, в Интернет отсутствует стандартный уровень представления, и его функции приходится выполнять сетевым приложениям. Разрабатывая программы для Интернет, необходимо придерживаться рекомендаций ISO/OSI, касающихся реализации функций уровня представления.
Реализация уровня приложения
Профессиональные программисты часто реализуют функции уровня приложения в виде процедур и библиотек функций, которые вызываются пользователем. Интерфейс прикладного программиста в среде Windows, называющийся Winsock API, существует как раз для того, чтобы выполнять функции уровня представления и сеансового уровня. Так или иначе, уровни, находящиеся ниже уровня представления, служат для выполнения сетевых операций. Уровень представления выполняет полезные, но не критические для сети функции.
Шифрование данных
Цель шифрования данных — их защита. Шифрование данных превращает вразумительное сообщение во что-то неосмысленное перед тем, как передать его по сети. Уровень представления на приемном конце, наоборот, дешифрует сообщения, превращая из абракадабры в осмысленные фразы или выражения. Шифрование на уровне представления гарантирует, что данные пройдут через нижележащие сетевые уровни в уже недоступном для посторонних виде.
Сжатие данных и увеличение пропускной способности
Уровень представления может заниматься сжатием данных. Так же, как и шифрование, сжатие приводит к преобразованию данных. Методика сжатия данных похожа на методику шифрования, однако они преследуют разные цели.
В то время как пользователь шифрует данные, чтобы скрыть их смысл, сжатие данных производится с целью уменьшить их в размере. Приложения, занимающиеся как шифрованием, так и сжатием, широко доступны в Интернет.
Сжимая данные в самом начале иерархии сетевой модели, уровень представления уменьшает их количество, необходимое для транспортировки сетью. Таким образом, сжатие данных приводит к существенному улучшению пропускной способности сети. Пропускная способность сети — это количество данных, способных пройти через сеть за заданный промежуток времени. Один из способов увеличить пропускную способность — использовать несколько сетевых соединений для одного транспортного (больше полос для движения данных). Другой способ увеличить пропускную способность — снизить количество данных, подлежащих транспортировке.
Разнообразные способы сжатия данных применяются при хранении данных на жестких дисках. Проблемы сжатия хранящихся на дисках данных свойственны в полной мере и сетевым компьютерам. Однако сжатие данных в сети важнее всего при передаче данных, так как пропускная способность коммуникационного канала — один из наиболее дорогих факторов. Предположим, что ваше приложение шлет один пакет данных вместо трех, передавая все тот же объем информации. Это значит, что за одно и то же время вы сможете передать в три раза больше информации, а значит, вместо того, чтобы заплатить за три, оплатите только один пакет данных. Итак, вы увеличили производительность сети в три раза. Сетевой трафик также уменьшился, так как, сжав данные в три раза, вы передаете только один пакет вместо трех. Меньше сообщений — меньше трафик. При этом уменьшается вероятность столкновений в сети. Ее снижение, в свою очередь, увеличивает производительность сети.
Отображение данных
Правильное отображение информации на мониторе компьютера — еще одна проблема, решаемая на уровне представления. Мониторы характеризуются множеством параметров, что хорошо для вас, как прикладного программиста, однако правильно спроектированное сетевое приложение должно учитывать следующие различия в мониторах разных производителей:
¾ один и тот же код символа может отображаться по-разному;
¾ разное количество символов на строку;
¾ функция “эхо” (автоматическое отображение на экране введенного с клавиатуры символа);
¾ режим впечатывания символов (раздвижка или печать поверх строки);
¾ символы перевода строки (Line feed) и возврата каретки (Carriage return);
¾ символы табуляции (горизонтальной и вертикальной);
¾ обработка символа “Backspace”;
¾ обработка символа “Form Feed”;
¾ команды позиционирования курсора.
Различные типы компьютеров могут по-разному обрабатывать вышеуказанные параметры мониторов. Хорошо спроектированный уровень представления должен уметь сделать эти различия независимыми от самого сетевого приложения. Различные сети используют протоколы виртуального терминала, делающие проблемы совместимости принтеров и мониторов независимыми от сетевых приложений. Работая в такой сети, вы можете послать данные с разделителями CR и LF на виртуальный терминал, и он правильно отобразит ваши данные. Протоколы, решающие такие проблемы, размещаются на сетевом уровне представления. Уровень представления скрывает различия в работе принтеров, мониторов, структуре файлов компьютера, способные повлиять на правильное воспроизведение доставленной пользователю информации. В составе Интернет уровня представления, по крайней мере, официально не существует. Однако существует протокол Telnet, выполняющий функции виртуального терминала.