Принципы и понятия сетевой архитектуры, страница 12

Любой участник сеанса может запросить изменения в параметрах соединения. Такая необходимость часто возникает в связи с проблемами транспортного уровня. Например, если соединение транспортного уровня ненадежно, сеансовый уровень должен устранить возможность потери данных приложением. Предположим, вы эксплуатируете распределенную базу данных, основывающуюся на транзакциях. Если на транспортном уровне происходит сбой и данные теряются, сеансовый уровень при этом обязан прекратить текущую транзакцию и откатиться назад, то есть отменить все внесенные до сбоя частичные изменения. Для обеспечения такой возможности сеансовый уровень должен группировать относящиеся к одной транзакции сообщения и либо передавать приложению всю группу целиком, либо не передавать ничего. Таким образом база данных предохраняется от сбоев на транспортном уровне и прерывания работы посередине транзакции. Если транспортный уровень не обеспечивает правильной последовательности передачи данных, сеансовый уровень обязан сделать это за него, разумеется, когда приложение нуждается в правильной последовательности.

Сеансовый уровень иногда устраняется из сетевой модели. Например, когда сеть не нуждается в доставке сообщений от приложения к приложению. Сеансовый уровень в Интернет вообще отсутствует. Несмотря на необходимость процедуры входа в Интернет, программы, проверяющие права доступа пользователя, не являются составляющими сетевой модели. Чаще всего они представляют собой отдельные продукты, работающие на уровне приложения. Протоколы транспортного уровня Интернет выполняют почти все функции сеансового уровня сетевой модели.

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

Уровень представления

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

Хорошо спроектированная сеть позволяет использовать разнообразные компьютеры. К ней подключены компьютеры от персональных до мини и больших мэйнфреймов. Внутри каждой группы компьютеров существует еще большее разнообразие дисплеев и принтеров для них. Операционные системы, на которых они работают, также славятся несовместимостью между собой. Уровень представления должен объединять это разнообразие способом, позволяющим сделать вопросы несовместимости “прозрачными” для сети.

К сожалению, в Интернет отсутствует стандартный уровень представления, и его функции приходится выполнять сетевым приложениям. Разрабатывая программы для Интернет, необходимо придерживаться рекомендаций ISO/OSI, касающихся реализации функций уровня представления. .

Реализация уровня приложения

Профессиональные программисты часто реализуют функции уровня приложения в виде процедур и библиотек функций, которые вызываются пользователем. Интерфейс прикладного программиста в среде Windows, называющийся Winsock API, существует как раз для того, чтобы выполнять функции уровня представления и сеансового уровня. Так или иначе, уровни, находящиеся ниже уровня представления, служат для выполнения сетевых операций. Уровень представления выполняет полезные, но не критические для сети функции.

Шифрование данных

Цель шифрования данных — их защита. Шифрование данных превращает вразумительное сообщение во что-то неосмысленное перед тем, как передать его по сети. Уровень представления на приемном конце, наоборот, дешифрует сообщения, превращая из абракадабры в осмысленные фразы или выражения. Шифрование на уровне представления гарантирует, что данные пройдут через низлежащие сетевые уровни в уже недоступном для посторонних виде.