(модель OSI)
Обобщенная структура любой программной или информационной системы может быть представлена, как было отмечено выше, двумя взаимодействующими частями:
1) функциональной части, включающей в себя прикладные программы, которые реализуют функции прикладной области;
2) среды или системной части, обеспечивающей исполнение прикладных программ.
С этим разделением и обеспечением взаимосвязи тесно связаны две группы вопросов стандартизации:
1) стандарты интерфейсов взаимодействия прикладных программ со средой ИС, прикладной программный интерфейс (Application ProgramInterface — API);
2) стандарты интерфейсов взаимодействия самой ИС с внешней для нее средой (External Environment Interface — EEI).
Эти две группы интерфейсов определяют спецификации внешнего описания среды ИС — архитектуру, с точки зрения конечного пользователя, проектировщика ИС, прикладного программиста, разрабатывающего функциональные части ИС.
Спецификации внешних интерфейсов среды ИС и интерфейсов взаимодействия между компонентами самой среды — это точные описания всех необходимых функций, служб и форматов определенного интерфейса. Совокупность таких описаний составляет эталонную модель взаимосвязи открытых систем.
Эта модель используется более 20 лет, она «выросла» из сетевой архитектуры SNA (System Network Architecture), предложенной компанией «IBM». Модель взаимосвязи открытых систем OSI (Open Systems Interconnection) используется в качестве основы для разработки многих стандартов ISO в области ИТ. Публикация этого стандарта подвела итог многолетней работы многих известных телекоммуникационных компаний и стандартизующих организаций.
В 1984 г. модель получила статус международного стандарта ISO 7498, а в 1993 г. вышло расширенное и дополненное издание ISO 7498-1-93. Стандарт имеет составной заголовок «Информационно-вычислительные системы — Взаимосвязь (взаимодействие) открытых систем — Эталонная модель». Краткое название — «Эталонная модель взаимосвязи (взаимодействия) открытых систем» (Open Systems Interconnection / BasicReference Model — OSI/BRM).
Модель основана на разбиении вычислительной среды на семь уровней, взаимодействие между которыми описывается соответствующими стандартами и обеспечивает связь уровней вне зависимости от внутреннего построения уровня в каждой конкретной реализации. Основным достоинством этой модели является детальное описание связей в среде с точки зрения технических устройств и коммуникационных взаимодействий. Вместе с тем она не принимает в расчет взаимосвязь с учетом мобильности прикладного программного обеспечения.
Преимущества «слоистой» организации модели взаимодействия заключаются в том, что она обеспечивает независимую разработку уровневых стандартов, модульность разработок аппаратуры и программного обеспечения информационно-вычислительных систем и способствует тем самым техническому прогрессу в этой области.
В соответствии с ISO 7498 выделяют семь уровней (слоев) информационного взаимодействия, которые отделены друг от друга стандартными интерфейсами:
1) уровень приложения (прикладной уровень);
2) уровень представления;
3) сеансовый (уровень сессии);
4) транспортный;
5) сетевой;
6) канальный;
7) физический.
Таким образом, информационное взаимодействие двух или более систем представляет собой совокупность информационных взаимодействий уровневых подсистем, причем каждый слой локальной информационной системы взаимодействует, как правило, с соответствующим слоем удаленной системы.
Протоколом является набор алгоритмов (правил) взаимодействия объектов одноименных уровней различных систем.
Интерфейс — это совокупность правил, в соответствии с которыми осуществляется взаимодействие с объектом данного или другого уровня. Стандартный интерфейс в некоторых спецификациях может называться услугой.
Инкапсуляция — это процесс помещения фрагментированных блоков данных одного уровня в блоки данных другого уровня.
При разбиении среды на уровни соблюдались следующие принципы:
• не создавать слишком много мелких разбиений, так как это усложняет описание системы взаимодействий;
• формировать уровень из легко локализуемых функций — это в случае необходимости позволяет быстро перестраивать уровень и существенно изменить его протоколы для использования новых решений в области архитектуры, программно-аппаратных средств, языков программирования, сетевых структур, не изменяя при этом стандартные интерфейсы взаимодействия и доступа;
• располагать на одном уровне аналогичные функции;
• создавать отдельные уровни для выполнения таких функций, которые явно различаются по реализующим их действиям или техническим решениям;
• проводить границу между уровнями в таком месте, где описание услуг является наименьшим, а число операций взаимодействий через границу (пересечение границы) сведено к минимуму;
• проводить границу между уровнями в таком месте, где в определенный момент должен существовать соответствующий стандартный интерфейс.
Каждый уровень имеет протокольную спецификацию, т.е. набор правил, управляющих взаимодействием равноправных процессов одного и того же уровня, и перечень услуг, которые описывают стандартный интерфейс с расположенным выше уровнем. Каждый уровень использует услуги расположенного ниже уровня, каждый расположенный ниже предоставляет услуги расположенному выше. Приведем краткую характеристику каждого уровня.
Уровень 1 — уровень приложения (прикладной уровень). Этот уровень связан с прикладными процессами. Протоколы предназначены для обеспечения доступа к ресурсам сети и программам-приложениям пользователя. На данном уровне определяется интерфейс с коммуникационной частью приложений. В качестве примера можно привести протокол Telnet, который обеспечивает доступ пользователя к хосту(глазному вычислительному устройству, одному из основных Элементов в многомашинной системе, или любому устройству, подключенному к сети и использующему протоколы TCP/IP) в режиме удаленного терминала.
Уровень 2 — уровень представления. На этом уровне информация преобразуется к такому виду, в каком это требуется для выполнения прикладных процессов. Например, выполняются алгоритмы преобразования формата представления данных — ASC II или КОИ-8. Если для представления данных используется дисплей, то эти данные по заданному алгоритму формируются в виде страницы, которая выводится на экран.
Уровень 3 — сеансовый уровень (уровень сессии). На данном уровне устанавливаются, обслуживаются и прекращаются сессии между представительными объектами приложений (прикладными процессами). В качестве примера протокола сеансового уровня можно рассмотреть протокол RPC (Remote Procedure Call). Как следует из названия, данный протокол предназначен для отображения результатов выполнения процедуры на удаленном хосте. В процессе выполнения этой процедуры между приложениями устанавливается сеансовое соединение. Назначением данного соединения является обслуживание запросов, которые возникают, например, при взаимодействии приложения-сервера с приложением-клиентом.
Уровень 4 — транспортный уровень. Этот уровень предназначен для управления потоками сообщений и сигналов. Управление потоком является важной функцией транспортных протоколов, поскольку этот механизм позволяет надежно обеспечивать передачу данных по сетям с разнородной структурой, при этом в описание маршрута включаются все компоненты коммуникационной системы, обеспечивающие передачу данных на всем пути от устройств отправителя до приемных устройств получателя. Управление потоком заключается в обязательном ожидании передатчиком подтверждения приема обусловленного числа сегментов приемником. Число сегментов, которое передатчик может отправить без подтверждения их получения от приемника, называется окном.
Существует два типа протоколов транспортного уровня: сегментирующие и дейтаграммные. Сегментирующие протоколы транспортного уровня разбивают исходное сообщение на блоки данных транспортного уровня — сегменты. Основной функцией таких протоколов является обеспечение доставки этих сегментов до объекта назначения и восстановление сообщения. Дейтаграммные протоколы не сегментируют сообщение, они отправляют его одним пакетом вместе с адресной информацией. Пакет данных — дейтаграмма (Datagram) маршрутизируется в сетях с переключением адресов или передается по локальной сети прикладной программе или пользователю.
Уровень 5 — сетевой уровень. Основной задачей протоколов сетевого уровня является определение пути, который будет использован для доставки пакетов данных при работе протоколов верхних уровней. Для того чтобы пакет был доставлен до какого-либо хоста, этому хосту должен быть поставлен в соответствие известный передатчику сетевой адрес. Группы хостов, объединенные по территориальному принципу, образуют сети. Для упрощения задачи маршрутизации сетевой адрес хоста составляется из двух частей: адреса сети и адреса хоста. Таким образом, задача маршрутизации распадается на две: поиск сети и поиск хоста в этой сети.
Уровень 6 — канальный уровень (уровень звена данных). Назначением протоколов канального уровня является обеспечение передачи данных в среде передачи по физическому носителю. В канале формируется стартовый сигнал передачи данных, организуется начало передачи, производится сама передача, проводится проверка правильности процесса, осуществляется отключение канала при сбоях и восстановление после ликвидации неисправности, формирование сигнала на окончание передачи и перевода канала в ждущий режим.
На канальном уровне данные передаются в виде блоков, которые называются кадрами. Тип используемой среды передачи и ее топология во многом определяют вид кадра протокола транспортного уровня, который должен быть использован. При использовании топологии «общая шина» и Point-to-Multipoint средства протокола канального уровня задают физические адреса, с помощью которых будет производиться обмен данными в среде передачи и процедура доступа к этой среде. Примерами таких протоколов являются протоколы Ethernet (в соответствующей части) и HDLC. Протоколы транспортного уровня, которые предназначены для работы в среде типа «точка-
точка», не определяют физических адресов и имеют упрощенную процедуру доступа. Примером протокола такого типа является протокол РРР.
Уровень 7 — физический уровень. Протоколы этого уровня обеспечивают непосредственный доступ к среде передачи данных для протоколов канального и последующих уровней. Данные передаются с помощью протоколов данного уровня в виде последовательностей битов (для последовательных протоколов) или групп битов (для параллельных протоколов). На этом уровне определяются набор сигналов, которыми обмениваются системы, параметры этих сигналов (временные и электрические) и последовательность формирования сигналов при выполнении процедуры передачи данных. Кроме того, на данном уровне формулируются требования к электрическим, физическим и механическим характеристикам среды передачи, передающих и соединительных устройств.
Таким образом, эталонная модель взаимосвязи (взаимодействия) открытых систем описывает и реализует стандартизованную систему ^взаимодействия в процессах обмена информацией и данными между прикладными программами и системами в вычислительных сетях. Стандартизация интерфейсов обеспечивает полную прозрачность взаимодействия вне зависимости от того, каким образом устроены уровни в конкретных реализациях модели.