Организация
взаимодействия между устройствами в сети является сложной задачей. Как
известно, для решения сложных задач используется универсальный прием -
декомпозиция, то есть разбиение одной сложной задачи на несколько более
простых задач-модулей. Процедура декомпозиции включает в себя четкое
определение функций каждого модуля, решающего отдельную задачу, и
интерфейсов между ними. В результате достигается логическое упрощение
задачи, а кроме того, появляется возможность модификации отдельных
модулей без изменения остальной части системы.При декомпозиции часто
используют многоуровневый подход. Он заключается в следующем. Все
множество модулей разбивают на уровни. Уровни образуют иерархию, то
есть имеются вышележащие и нижележащие уровни Множество модулей,
составляющих каждый уровень, сформировано таким образом, что для
выполнения своих задач они обращаются с запросами только к модулям
непосредственно примыкающего нижележащего уровня. С другой стороны,
результаты работы всех модулей, принадлежащих некоторому уровню, могут
быть переданы только модулям соседнего вышележащего уровня. Такая
иерархическая декомпозиция задачи предполагает четкое определение
функции каждого уровня и интерфейсов между уровнями. Интерфейс
определяет набор функций, которые нижележащий уровень предоставляет
вышележащему. В результате иерархической декомпозиции достигается
относительная независимость уровней, а значит, и возможность их легкой
замены. Средства сетевого взаимодействия, конечно, тоже могут быть
представлены в виде иерархически организованного множества модулей. При
этом модули нижнего уровня могут, например, решать все вопросы,
связанные с надежной передачей электрических сигналов между двумя
соседними узлами. Модули более высокого уровня организуют
транспортировку сообщений в пределах всей сети, пользуясь для этого
средствами упомянутого нижележащего уровня. А на верхнем уровне
работают модули, предоставляющие пользователям доступ к различным
службам - файловой, печати и т. п. Конечно, это только один из
множества возможных вариантов деления общей задачи организации сетевого
взаимодействия на частные подзадачи.
Многоуровневый подход к описанию и реализации функций системы
применяется не только в отношении сетевых средств. Такая модель
функционирования используется, например, в локальных файловых системах,
когда поступивший запрос на доступ к файлу последовательно
обрабатывается несколькими программными уровнями. Запрос вначале
анализируется верхним уровнем, на котором осуществляется
последовательный разбор составного символьного имени файла и
определение уникального идентификатора файла. Следующий уровень находит
по уникальному имени все основные характеристики файла: адрес, атрибуты
доступа и т. п. Затем на более низком уровне осуществляется проверка
прав доступа к этому файлу, а далее, после расчета координат области
файла, содержащей требуемые данные, выполняется физический обмен с
внешним устройством с помощью драйвера диска.
Многоуровневое представление средств сетевого взаимодействия
имеет свою специфику, связанную с тем, что в процессе обмена
сообщениями участвуют две машины, то есть в данном случае необходимо
организовать согласованную работу двух «иерархий». При передаче
сообщений оба участника сетевого обмена должны принять множество
соглашений. Например, они должны согласовать уровни и форму
электрических сигналов, способ определения длины сообщений,
договориться о методах контроля достоверности и т. п. Другими словами,
соглашения должны быть приняты для всех уровней, начиная от самого
низкого - уровня передачи битов - до самого высокого, реализующего
сервис для пользователей сети.
С каждой стороны средства взаимодействия представлены
четырьмя уровнями. Процедура взаимодействия этих двух узлов может быть
описана в виде набора правил взаимодействия каждой пары соответствующих
уровней обеих участвующих сторон. Формализованные правила, определяющие
последовательность и формат сообщений, которыми обмениваются сетевые
компоненты, лежащие на одном уровне, но в разных узлах, называются
протоколом.