Занятие 4 по курсу "Информационные сети"
Сетевая модель OSI (Open System Interconnection)
Тезис о пользе стандартизации, справедливый для всех отраслей, в компьютерных сетях приобретает особое значение. Суть сети – это соедине-ние разного оборудования, а значит острой является проблема совместимости. Без соблюдения всеми производителями общепринятых правил разработки оборудования прогресс в деле «строительства» сетей невозможен. Поэтому всё развитие компьютерной отрасли, в конечном счёте, отражено в стандартах – любая новая технология только тогда приобретает «законный» статус, когда её содержание закрепляется в соответствующем стандарте.
В компьютерных сетях идеологической основой стандартизации является многоуровневый подход к разработке средств сетевого взаимодействия. Именно на основе этого подхода была создана стандартная семиуровневая модель взаимодействия открытых систем, ставшая своего рода универсальным языком сетевых специалистов.
Декомпозиция задачи сетевого взаимодействия
Организация взаимодействия между устройствами сети – сложная задача. Как известно, для решения сложных задач используется универсальный приём – декомпозиция, то есть разбиение одной задачи на несколько задач-модулей. Декомпозиция заключается в чётком определении функций каждого модуля, а также порядка их взаимодействия (интерфейсов). В результате достигается логическое упрощение задачи, и появляется возможность моди-фикации отдельных модулей без изменения остальной части системы.
При декомпозиции часто используют многоуровневый подход. Он заключается в следующем:
Такая иерархическая декомпозиция задачи предполагает чёткое определение функции каждого уровня и интерфейсов между уровнями.
Интерфейс определяет набор функций, которые нижележащий уровень предоставляет вышележащему. В результате иерархической декомпозиции достигается относительная независимость уровней, а значит, возможность их автономной разработки и модификации.
Средства решения задачи организации сетевого взаимодействия могут быть представлены в виде иерархически организованного множества моду-лей. Например, модулям нижнего уровня можно поручить вопросы, связанные с надёжной передачей информации между двумя соседними узлами, а модулям следующего, более высокого, уровня – транспортировку сообщений в пределах всей сети. Очевидно, что последняя задача – организация связи двух любых, не обязательно соседних, узлов – является более общей и по-этому её можно решить посредством многократных обращений к нижележащему уровню.
Протокол. Интерфейс. Стек протоколов
Многоуровневое представление средств сетевого взаимодействия имеет свою специфику, связанную с тем, что в процессе обмена сообщениями участвуют две стороны, то есть в данном случае необходимо организовать согласованную работу двух «иерархий», работающих на разных компьютерах. Оба участника сетевого обмена должны принять множество соглашений. Например, они должны согласовать уровни и форму электрических сигналов, способ определения длины сообщений, договориться о методах контроля достоверности и т. п. Другими словами, соглашения должны быть приняты для всех уровней, начиная от самого низкого – уровня передачи битов – до самого высокого, реализующего сервис для пользователей сети.
На рис. 4.1. показана модель взаимодействия двух узлов. С каждой стороны средства взаимодействия представлены четырьмя уровнями. Процедура взаимодействия этих двух узлов может быть описана в виде набора правил взаимодействия каждой пары соответствующих уровней обеих участвующих сторон.
Рис. 4.1. Взаимодействие двух узлов.
Формализованные правила, определяющие последовательность и формат сообщений, которыми обмениваются сетевые компоненты, лежащие на одном уровне, но в разных узлах, называются протоколом.
Модули, реализующие протоколы соседних уровней и находящиеся в одном узле, также взаимодействуют друг с другом в соответствии с чётко определёнными правилами с помощью стандартизированных форматов сообщений. Эти правила принято называть интерфейсом.
Интерфейс определяет последовательность и формат сообщений, которыми обмениваются сетевые компоненты, лежащие на соседних уровнях в одном узле, и набор услуг, предоставляемый данным уровнем соседнему уровню.
В сущности, протокол и интерфейс выражают одно и то же понятие, но традиционно в сетях за ними закреплены разные области действия: протоколы определяют правила взаимодействия модулей одного уровня в разных узлах, а интерфейсы – модулей соседних уровней в одном узле.
Средства каждого уровня должны отрабатывать, во-первых, собственный протокол, а во-вторых, интерфейсы с соседними уровнями.
Иерархически организованный набор протоколов, достаточный для организации взаимодействия узлов в сети, называется стеком коммуникационных протоколов.
Коммуникационные протоколы могут быть реализованы как программно, так и аппаратно. Протоколы нижних уровней часто реализуются комбинацией программных и аппаратных средств, а протоколы верхних уровней – как правило, чисто программными средствами.
Программный модуль, реализующий некоторый протокол, часто для краткости называют протоколом. При этом соотношение между протоколом как формально определённой процедурой и протоколом – программным модулем, реализующим эту процедуру, – аналогично соотношению между алгоритмом решения некоторой задачи и программой, решающей эту задачу.
Понятно, что один и тот же алгоритм может быть запрограммирован с разной степенью эффективности. Точно так же и протокол может иметь несколько программных реализаций. Именно поэтому при сравнении протоколов следует учитывать не только логику их работы, но и качество программных решений. Более того, на эффективность взаимодействия устройств в сети влияет качество всей совокупности протоколов, составляющих стек, в частности, насколько рационально распределены функции между протоколами разных уровней и насколько хорошо определены интерфейсы между ними.
Протоколы реализуются не только компьютерами, но и другими сетевыми устройствами – концентраторами, мостами, коммутаторами, маршрутизаторами и т. д. В общем случае связь компьютеров в сети осуществляется не напрямую, а через различные коммуникационные устройства. В зависимости от типа устройства в нём должны быть встроенные средства, реализующие тот или иной набор протоколов.
Общая характеристика модели OSI
Из того, что протокол представляет собой соглашение, принятое двумя взаимодействующими объектами, в данном случае двумя работающими в сети компьютерами, не следует, что он обязательно является стандартным. На практике при реализации сетей обычно используются стандартные протоколы: фирменные, национальные или международные стандарты.
В начале 1980-х годов ряд международных организаций по стандарти-зации – ISO, ITU-T и некоторые другие – разработали модель ISO/OSI, которая сыграла значительную роль в развитии сетей.
Модель взаимодействия открытых систем (Open System Interconnection, OSI) определяет различные уровни взаимодействия систем в сетях с коммутацией пакетов, даёт им стандартные имена и указывает, какие функции должен выполнять каждый уровень.
Она разработана на основании большого опыта, полученного при создании компьютерных, в основном глобальных, сетей в 1970-е годы. Полное описание этой модели занимает более 1000 страниц текста.