Глава 3. модель взаимодействия открытых систем
Международная Организация по Стандартам (International Standards Organization, ISO) разработала в 1984 году модель, которая определяет правила и уровни взаимодействия в сетевых системах. Она была названа моделью взаимодействия открытых систем (Open System Interconnection, OSI). Модель определяет любую информационную сеть как вертикальный стек уровней. При этом в модели выделяется семь уровней взаимодействия.
1. Физический уровень;
2. Канальный уровень;
3. Сетевой уровень;
4. Транспортный уровень;
5. Сеансовый уровень;
6. Уровень представления данных;
7. Прикладной уровень.
Большинство сетевых систем теоретически реализует все семь уровней. Однако, многие практические сетевые системы пропускают ряд уровней. Два первых уровня модели могут быть реализованы как аппаратно, так и программно. Остальные пять уровней, как правило, реализуются только программным обеспечением. Фактически модель описывает, каким образом информация проделывает путь через сетевую систему от прикладной программы на одном узле сети до прикладной программы на другом сетевом узле.
Уровневая модель исключает прямую связь между соответствующими уровнями разных сетевых узлов. При этом для каждого уровня модели определяется набор функций-запросов, с которыми к модулям данного уровня могут обращаться модули верхнего уровня. Тогда запросы уровня запоминаются как управляющая информация, которая передается между соответствующими уровнями в заголовке блока данных уровня.
Рассмотрим данный процесс взаимодействия. Предположим, что узел А (Рис. 3.1) имеет информацию для отправки узлу В. Прикладная программа узла А соответствует прикладному 7 уровню, который взаимодействует с 6 уровнем представления данных узла А, который, в свою очередь, взаимодействует с 5 уровнем и т.д. до 1 физического уровня узла А.
Задача физического уровня заключается в преобразовании информационных блоков данных и приеме/передаче электромагнитных сигналов через соответствующую физическую среду. После того, как пакет сигналов проходит через физическую среду и поступает в узел В, то информация последовательно проходит через взаимодействующие в обратном порядке уровни узла В, пока не достигнет прикладной программы данного узла.
Пусть текстовая информация передается из прикладной программы узла А в прикладной уровень системы. Поскольку прикладной уровень узла А должен передать информацию в прикладной уровень узла В, то он помещает управляющую информацию (в форме кодированного заголовка) перед каждым блоком текстовой информации. Данный блок передается на уровень 6 узла А, который, в свою очередь, снабжает его своей управляющей информацией и т.д. Таким образом, размеры блока данных увеличиваются по мере того, как он проходит через все уровни узла А, пока не достигнет физического уровня, где текстовая информация и вся, добавленная к нему управляющая информация перемещаются к узлу В, где они поступают на 1 уровень узла.
Рис. 3.1. Схема передачи информации в модели OSI.
На физическом уровне узла В система отделяет заголовок 1 уровня и после его анализа определяет, как обрабатывать данный информационный блок. Блок данных передается на 2 уровень узла В, который выделяет и анализирует заголовок уровня и т.д. Когда информационный блок наконец доходит до прикладной программы узла В, она выделяет текстовую информацию и предоставляет ее пользователям.
Формально определенный набор функций, выполняемых данным уровнем для вышележащего уровня, а также форматы сообщений, которыми обмениваются два соседних уровня в ходе своего взаимодействия, называется межуровневыминтерфейсом. Межуровневый интерфейс определяет услугу или сервис, предоставляемый данным уровнем верхнему уровню (Рис. 3.2).
Взаимодействие прикладных программ в сети организовано таким образом, что у сетевого узла А каждый уровень как бы ведет «переговоры» с соответствующим уровнем другого узла В. При передаче информации оба участника сетевого обмена принимают множество соглашений. Они согласовывают уровни и форму электрических сигналов, способ определения длины сообщений, методы контроля достоверности информации и т.п.
Рис. 3.2. Межуровневое взаимодействие в модели OSI
Формализованные правила, определяющие последовательность и формат сообщений, которыми обмениваются сетевые компоненты, лежащие на одном уровне, но в разных узлах, являются протоколами уровня. Иерархически организованная совокупность согласованного набора протоколов разных уровней, достаточная для организации межсетевого взаимодействия, называется стеком протоколов. Программные средства, реализующие протокол, также называют протоколом. При организации межсетевого взаимодействия могут быть использованы два типа протоколов:
1. Протоколы с установлением соединения. При использовании данных протоколов перед обменом данными отправитель и получатель должны сначала путем переговоров установить логическое соединение, т. е. договориться о параметрах процедуры информационного обмена. После завершения диалога они должны разорвать это соединение. Когда устанавливается новое соединение, переговорная процедура выполняется вновь.
2. Протоколы без установления соединения. Такие протоколы называются также дейтаграммными. Отправитель передает сообщения по мере его готовности.
Для обозначения единицы обмена информацией в модели используются термин – «сообщение» (message). Сообщение имеет произвольную длину и его перед передачей делят на части – информационные блоки, максимальный размер которых ограничен. В стандарте для обозначения части сообщения вводится понятие – «протокольный блок данных» (Protocol Data Unit, PDU). Также используются термины «кадр» (frame), «пакет» (packet), «дейтаграмма» (datagram), сегмент (segment).
Для идентификации блоков данных протоколов разных уровней будем использовать следующие обозначения. Термином «кадр» обозначим протокольный блок данных, источником и пунктом назначения которого являются объекты канального уровня модули. Соответствующий протокол добавляет к блоку данных перед его передачей заголовок и флаг конца кадра. Заголовок содержит информацию, необходимую для управления маршрутом движения кадра, проверки кадра после передачи его по каналу и т.д. Тогда блок данных с заголовком и флагом будет представлять собой массив информации, называемый кадром.
Термины «пакет» и «дейтаграмма» будем использовать для обозначения блока данных, у которого источник и пункт назначения - объекты сетевого уровня. «Сегментом» или «транспортным сообщением» обозначим блоки данных транспортного уровня. Терминами «сообщение» и «прикладное сообщение» - блоки данных, у которого объекты источника и места назначения находятся выше транспортного уровня.
Идентификация протокольных блоков данных на уровнях модели происходит с помощью заголовков, которые обязательно содержат два поля, добавляемых к блоку соответствующим протоколом, а именно:
1. Адрес источника протокольного блока данных;
2. Адрес приемника протокольного блока данных;
Прикладной уровень
Прикладной уровень определяет прикладные программы, которые обслуживают файлы, а также обеспечивает доступ в среду модели OSI для прикладных процессов. Прикладной процесс - это элемент реальной открытой системы, который принимает участие в выполнении одного или нескольких заданий по обработке информации. Прикладные процессы обмениваются информацией посредством прикладных объектов, прикладных протоколов и прикладных служб. Многие сетевые программы-утилиты являются частью прикладного уровня.
Прикладной объект - это активный элемент открытой системы, представляющий те компоненты прикладного процесса, которые участвуют в обмене информацией между открытыми системами. Каждый прикладной объект относится только к одному прикладному процессу. Прикладной объект состоит из элемента пользователя и элемента прикладной службы.
Прикладной протокол определяет правила информационного обмена между равноправными элементами прикладной службы.
Прикладная служба – это службы, которая предоставляет следующие услуги:
- идентификация партнеров для взаимодействия;
- определение готовности партнеров;
- установление полномочий для передачи информации;
- согласование механизма секретности;
- аутентификация партнеров, предполагающих взаимодействовать;
- синхронизация взаимодействующих приложений и т.д.