Данный вопрос рассмотрим на примере наиболее распространенной и признанной эталонной модели взаимодействия открытых систем ISO/OSI (ВОС).
В основу эталонной модели положена идея декомпозиции процесса функционирования открытых систем на уровни, причем разбиение на уровни производится таким образом, чтобы сгруппировать в рамках каждого из них функционально наиболее близкие компоненты. Кроме того, требуется, чтобы взаимодействие между смежными уровнями было минимальным, число уровней сравнительно небольшим, а изменения, производимые в рамках одного уровня, не требовали бы перестройки смежных. Отдельный уровень, таким образом, представляет собой логически и функционально замкнутую подсистему, сообщающуюся с другими уровнями посредством специально определенного интерфейса. В рамках модели ISO/OSI каждый конкретный уровень может взаимодействовать только с соседними. Совокупность правил (процедур) взаимодействия объектов одноименных уровней называется протоколом.
Эталонная модель содержит семь уровней (снизу вверх):
1. Физический.
2. Канальный (или передачи данных).
3. Сетевой.
4. Транспортный.
5. Сеансовый.
6. Представительный.
7. Прикладной.
Таблица 6.3. Семиуровневая модель (стек) протоколов межсетевого обмена OSI
№ уровня
Наименование уровня
Содержание
Уровень приложений
Предоставление услуг на уровне конечного пользователя: почта, теледоступ и пр.
Уровень представления данных
Интерпретация и сжатие данных
Уровень сессии
Аутентификация и проверка полномочий '
Транспортный уровень
Обеспечение корректной сквозной пересылки данных
Сетевой уровень
Маршрутизация и ведение учета
Канальный уровень
Передача и прием пакетов, определение аппаратных адресов
Физический уровень
Собственно кабель или физический носитель
Каждый уровень передающей станции в этой иерархической структуре взаимодействует с соответствующим уровнем принимающей станции посредством нижележащих уровней. При этом каждая пара уровней с помощью служебной информации в сообщение устанавливает между собой логическое соединение, обеспечивая тем самым логический канал связи соответствующего уровня. С помощью такого логического канала каждая пара верхних уровней может обеспечивать между собой взаимодействие, абстрагируясь от особенностей нижних. Другими словами, каждый уровень реализует строго определенный набор функций, который может использоваться верхними уровнями независимо от деталей реализации этих функций (см. табл. 6.3).
Рассмотрим подробнее функциональное назначение каждого уровня.
Физический уровень. Физический уровень обеспечивает электрические, функциональные и процедурные средства установления, поддержания и разъединения физического соединения. Реально он представлен аппаратурой генерации и управления электрическими сигналами и каналом передачи данных. На этом уровне данные представляются в виде последовательности битов или аналогового электрического сигнала. Задачей физического уровня является передача последовательности битов из буфера отправителя в буфер получателя.
Канальный уровень. Протоколы канального уровня (или протоколы управления звеном передачи данных) занимают особое место в иерархии уровней: они служат связующим звеном между реальным каналом, вносящим ошибки в передаваемые данные, и протоколами более высоких уровней, обеспечивая безошибочную передачу данных. Этот уровень используется для организации связи между двумя станциями с помощью имеющегося в наличии (обычно ненадежного) канала связи. При этом станции могут быть связаны несколькими каналами.
Протокол канального уровня должен обеспечить: независимость протоколов высших уровней от используемой среды передачи данных, кодонезависимость передаваемых данных, выбор качества обслуживания при передаче данных. Это означает, что более высокие уровни освобождаются от всех забот, связанных с конкретным каналом связи (тип, уровень шумов, используемый код, параметры помехоустойчивости и т. д.).
На этом уровне данные представляются кадром, который содержит информационное поле, а также заголовок и концевик (трейлер), присваиваемые протоколом. Заголовок содержит служебную информацию, используемую протоколом канального уровня принимающей станции и служащую для идентификации сообщения, правильного приема кадров, восстановления и повторной передачи в случае ошибок и т. д. Концевик содержит проверочное поле, служащее для коррекции и исправления ошибок (при помехоустойчивом кодировании), внесенных каналом. Задача протокола канального уровня — составление кадров, правильная передача и прием последовательности кадров, контроль последовательности кадров, обнаружение и исправление ошибок в информационном поле (если это
необходимо).
Сетевой уровень. Сетевой уровень предоставляет вышестоящему транспортному уровню набор услуг, главными из которых являются сквозная передача блоков данных между передающей и приемной станциями (то есть, выполнение функций маршрутизации и ретрансляции) и глобальное адресование пользователей. Другими словами, нахождение получателя по указанному адресу, выбор оптимального (в условиях данной сети) маршрута и доставка блока сообщения по указанному адресу.
Таким образом, на границе сетевого и транспортного уровней обеспечивается независимость процесса передачи данных от используемых сред за исключением качества обслуживания. Под качеством обслуживания понимается набор параметров, обеспечивающих функционирование сетевой службы, отражающий рабочие
(транзитная задержка, коэффициент необнаруженных ошибок и др.) и другие характеристики (защита от НСД, стоимость, приоритет и др.). Система адресов, используемая на сетевом уровне, должна иметь иерархическую Структуру и обеспечивать следующие свойства: глобальную однозначность, маршрутную независимость и независимость от уровня услуг.
На сетевом уровне данные представляются в виде пакета, который содержит информационное поле и заголовок, присваиваемый протоколом. Заголовок пакета содержит управляющую информацию, указывающую адрес отправителя, возможно, маршрут и параметры передачи пакета (приоритет, номер пакета в сообщении, параметры безопасности, максимум ретрансляции и др.). Различают следующие виды сетевого взаимодействия:
• с установлением соединения — между отправителем и получателем сначала с помощью служебных пакетов организуется логический канал (отправитель — отправляет пакет, получатель — ждет получения пакета, плюс взаимное уведомление об ошибках), который разъединяется после окончания сообщения или в случае неисправимой ошибки. Такой способ используется протоколом Х.25;
• без установления соединения (дейтаграммный режим) — обмен информацией осуществляется с помощью дейтаграмм (разновидность пакетов), независимых друг от друга, которые принимаются также независимо друг от друга и собираются в сообщение на приемной станции. Такой способ используется в архитектуре протоколов DARPA.
Транспортный уровень. Транспортный уровень предназначен для сквозной передачи данных через сеть между оконечными пользователями — абонентами сети. Протоколы транспортного уровня функционируют только между оконечными системами.
Основными функциями протоколов транспортного уровня являются разбиение сообщений или фрагментов сообщений на пакеты, передача пакетов через сеть и сборка пакетов. Они также выполняют следующие функции: отображение транспортного адреса в сетевой, мультиплексирование и расщепление транспортных соединений, межконцевое управление потоком и исправление ошибок. Набор процедур протокола транспортного уровня зависит как от требований протоколов верхнего уровня, так и от характеристик сетевого уровня.
Наиболее известным протоколом транспортного уровня является TCP (Transmission Control Protocol), используемый в архитектуре протоколов DARPA и принятый в качестве стандарта Министерством обороны США. Он используется в качестве высоконадежного протокола взаимодействия между ЭВМ в сети с коммутацией пакетов.
Протоколы верхних уровней. К протоколам верхних уровней относятся протоколы сеансового, представительного и прикладного уровней. Они совместно выполняют одну задачу — обеспечение сеанса обмена информацией между двумя прикладными процессами, причем информация должна быть представлена в том виде, который понятен обоим процессам. Поэтому обычно эти три уровня рассматривают совместно. Под прикладным процессом понимается элемент оконечной системы, который принимает участие в выполнении одного или нескольких заданий по обработке информации. Связь между ними осуществляется с помощью прикладных объектов — элементов прикладных процессов, участвующих в обмене информацией. При этом протоколы верхних уровней не учитывают особенности конфигурации сети, каналов и средств передачи информации.
Протоколы представительного уровня предоставляют услуги по согласованию синтаксиса передачи (правил, задающих представление данных при их передаче) и конкретным представлениям данных в прикладной системе. Другими словами, на представительном уровне осуществляется синтаксическое преобразование данных от вида, используемого на прикладном уровне, к виду, используемому на остальных уровнях (и наоборот).
Прикладной уровень, будучи самым верхним в эталонной модели, обеспечивает доступ прикладных процессов в среду взаимодействия открытых систем. Основной задачей протоколов прикладного уровня является интерпретация данных, полученных с нижних уровней, и выполнение соответствующих действий в оконечной системе в рамках прикладного процесса. В частности, эти действия могут заключаться в передаче управления определенным службам ОС вместе с соответствующими параметрами. Кроме того, протоколы прикладного уровня могут предоставлять услуги по идентификации и аутентификации партнеров, установлению полномочий для передачи данных, проверке параметров безопасности, управлению диалогом и др.