5. ПОНЯТИЕ «ОТКРЫТАЯ СИСТЕМА». МОДЕЛЬ
OSI
5.1. Основные понятия
Универсальный тезис о пользе стандартизации,
справедливый для всех отраслей, в компьютерных сетях приобретает особое
значение. Суть сети — это соединение разного оборудования, а значит, проблема
совместимости является одной из наиболее острых. Без
принятия всеми производителями общепринятых правил построения оборудования
развитие сетей было бы невозможно.
В компьютерных сетях идеологической основой
стандартизации является многоуровневый подход к разработке средств сетевого
взаимодействия. Именно на основе этого подхода была разработана стандартная
семиуровневая модель взаимодействия открытых систем, ставшая своего рода
универсальным языком сетевых специалистов.
Организация взаимодействия между устройствами в сети
является сложной задачей. Как известно, для решения сложных задач используется
универсальный прием — декомпозиция, то есть разбиение одной сложной задачи на
несколько более простых задач-модулей. Процедура декомпозиции включает в себя
четкое определение функций каждого модуля, решающего отдельную задачу, и интерфейсов
между ними.
При декомпозиции часто используют многоуровневый
подход. Все множество модулей разбивают на уровни. Уровни образуют иерархию,
то есть имеются вышележащие и нижележащие уровни (рис. 10). Множество модулей,
составляющих каждый уровень, сформировано таким образом, что для выполнения своих
задач они обращаются с запросами только к модулям непосредственно примыкающего
нижележащего уровня. С другой стороны, результаты работы всех модулей,
принадлежащих некоторому уровню, могут быть переданы только модулям соседнего
вышележащего уровня. Такая иерархическая декомпозиция задачи предполагает
четкое определение функции каждого уровня и интерфейсов между уровнями.
Интерфейс определяет набор функций, которые нижележащий уровень предоставляет вышележащему. В результате иерархической декомпозиции
достигается относительная независимость уровней, а значит, и возможность их
легкой замены.
Рис. 10. Многоуровневый подход — создание иерархии
задач
Многоуровневое представление средств сетевого
взаимодействия имеет свою специфику, связанную с тем, что в процессе обмена
сообщениями участвуют две машины, то есть в данном случае необходимо
организовать согласованную работу двух «иерархий». При передаче сообщений оба
участника сетевого обмена должны принять множество соглашений. Например, они
должны согласовать уровни и форму электрических сигналов, способ определения длины
сообщений, договориться о методах контроля достоверности и т. п. Другими
словами, соглашения должны быть приняты для всех уровней, начиная от самого
низкого — уровня передачи битов — до самого высокого, реализующего сервис для
пользователей сети.
Процедура взаимодействия этих двух узлов может быть
описана в виде набора правил взаимодействия каждой пары соответствующих
уровней обеих участвующих сторон. Формализованные правила, определяющие
последовательность и формат сообщений, которыми обмениваются сетевые
компоненты, лежащие на одном уровне, но в разных узлах, называются протоколом.
Модули, реализующие протоколы соседних уровней и
находящиеся в одном узле, также взаимодействуют друг с другом в соответствии с
четко определенными правилами и с помощью стандартизованных форматов сообщений.
Эти правила принято называть интерфейсом. Интерфейс определяет набор сервисов,
предоставляемый данным уровнем соседнему уровню. В сущности, протокол и интерфейс
выражают одно и то же понятие, но традиционно в сетях за ними закрепили разные
области действия: протоколы определяют правила взаимодействия модулей одного
уровня в разных узлах, а интерфейсы — модулей соседних уровней в одном узле.
Иерархически организованный набор протоколов,
достаточный для организации взаимодействия узлов в сети, называется стеком
коммуникационных протоколов.
Протоколы реализуются не только компьютерами, но и
другими сетевыми устройствами — концентраторами, мостами, коммутаторами, маршрутизаторами и т. д. Действительно, в общем случае
связь компьютеров в сети осуществляется не напрямую, а через различные
коммуникационные устройства. В зависимости от типа устройства в нем должны быть
встроенные средства, реализующие тот или иной набор протоколов.
Из того, что протокол является соглашением, принятым
двумя взаимодействующими объектами, в данном случае двумя работающими в сети
компьютерами, совсем не следует, что он обязательно является стандартным. Но на
практике при реализации сетей стремятся использовать стандартные протоколы. Это
могут быть фирменные, национальные или международные стандарты.
В начале 80-х годов ряд международных организаций по
стандартизации — ISO, ITU-T и некоторые другие — разработали модель, которая
сыграла значительную роль в развитии сетей. Эта модель называется моделью
взаимодействия открытых систем (Open System Interconnection, OSI) или моделью OSI. Она определяет
различные уровни взаимодействия систем, дает им стандартные имена и указывает,
какие функции должен выполнять каждый уровень.
В модели OSI (рис. 11) средства взаимодействия делятся
на семь уровней: прикладной, представительный, сеансовый, транспортный,
сетевой, канальный и физический. Каждый уровень имеет дело с одним определенным
аспектом взаимодействия сетевых устройств.
Рис. 11. Модель
взаимодействия открытых систем ISO/OSI
Итак, пусть приложение обращается с запросом к
прикладному уровню, например к файловой службе. На основании этого запроса
программное обеспечение прикладного уровня формирует сообщение стандартного
формата. Обычное сообщение состоит из заголовка и поля данных. Заголовок
содержит служебную информацию, которую необходимо передать через сеть прикладному
уровню машины-адресата, чтобы сообщить ему, какую работу надо выполнить. Поле
данных сообщения может быть пустым или содержать какие-либо данные, например
те, которые необходимо записать в удаленный файл.
После формирования сообщения прикладной уровень
направляет его вниз по стеку представительному уровню. Протокол
представительного уровня на основании информации, полученной из заголовка
прикладного уровня, выполняет требуемые действия и добавляет к сообщению
собственную служебную информацию — заголовок представительного уровня, в
котором содержатся указания для протокола представительного уровня
машины-адресата. Полученное в результате сообщение передается вниз сеансовому
уровню, который в свою очередь добавляет свой заголовок, и т. д. (Некоторые
реализации протоколов помещают служебную информацию не только в начале
сообщения в виде заголовка, но и в конце, в виде так называемого «концевика».) Наконец, сообщение достигает нижнего, физического
уровня, который собственно и передает его по линиям связи машине-адресату. К
этому моменту сообщение «обрастает» заголовками всех уровней (рис. 12).
Рис. 12. Вложенность сообщений различных уровней
Когда сообщение по сети поступает на машину-адресат, оно принимается ее
физическим уровнем и последовательно перемещается вверх с уровня на уровень.
Каждый уровень анализирует и обрабатывает заголовок своего уровня, выполняя
соответствующие данному уровню функции, а затем удаляет этот заголовок и
передает сообщение вышележащему уровню.
В модели OSI различаются два основных типа протоколов.
В протоколах с установлением соединения (connection-oriented) перед обменом данными отправитель и
получатель должны сначала установить соединение и, возможно, выбрать некоторые
параметры протокола, которые они будут использовать при обмене данными. После
завершения диалога они должны разорвать это соединение.
Вторая группа протоколов — протоколы без
предварительного установления соединения (connectionless).
Такие протоколы называются также дейтаграммными
протоколами. Отправитель просто передает сообщение, когда оно готово. При
взаимодействии компьютеров используются протоколы обоих типов.
Модель OSI, как это следует из ее названия (Open System Interconnection),
описывает взаимосвязи открытых систем. Что же такое открытая система?
В широком смысле открытой системой может быть названа
любая система (компьютер, вычислительная сеть, ОС, программный пакет, другие
аппаратные и программные продукты), которая построена в соответствии с открытыми
спецификациями.
Если две сети построены с соблюдением принципов
открытости, то это дает следующие преимущества:
Ярким примером открытой системы является международная
сеть Internet. Эта сеть развивалась в полном
соответствии с требованиями, предъявляемыми к открытым системам. В разработке
ее стандартов принимали участие тысячи специалистов-пользователей этой сети из
различных университетов, научных организаций и фирм-производителей
вычислительной аппаратуры и программного обеспечения, работающих в разных
странах. В результате сеть Internet сумела объединить
в себе самое разнообразное оборудование и программное обеспечение огромного
числа сетей, разбросанных по всему миру.