Основы информатики. Многоуровневый подход. Протокол. Интерфейс. Стек протоколов .

Взаимодействие между устройствами в сети является сложной задачей. Для ее решения применяют универсальный прием – декомпозицию, который заключается в разбиении одной сложной задачи на несколько более простых задач-модулей. Декомпозиция состоит из четкого определения функций каждого модуля, который решает отдельную задачу, и интерфейсов между ними. В итоге достигается логическое упрощение задачи, к тому же появляется возможность преобразования отдельных модулей без изменения остальной части системы.

При декомпозиции иногда применяют многоуровневый подход. В этом случае все модули разбивают на уровни, которые образуют иерархию, т. е. имеются вышележащие и нижележащие уровни. Модули, составляющие каждый уровень, сформированы таким образом, что для выполнения своих задач они обращаются с запросами только к тем модулям, которые непосредственно примыкают к нижележащим уровням. Однако результаты работы всех модулей, которые принадлежат некоторому уровню, могут быть переданы только модулям соседнего вышележащего уровня. При данной иерархической декомпозиции задачи необходимо четкое определение функции каждого уровня и интерфейсов между уровнями. Интерфейс устанавливает набор функций, предоставляемых нижележащим уровнем вышележащему. В итоге иерархической декомпозиции достигается значительная независимость уровней, т. е. возможность их легкой замены.

Средства сетевого взаимодействия тоже могут быть представлены в форме иерархически организованного множества модулей. В этом случае модули нижнего уровня способны, в частности, решать все вопросы, связанные с надежной передачей электрических сигналов между двумя соседними узлами. Модули более высокого уровня создадут транспортировку сообщений в пределах всей сети, используя для этого средства нижележащего уровня. На верхнем уровне работают модули, которые предоставляют пользователям доступ к различным службам, среди которых файловая служба, служба печати и т. п. Однако это только один из множества возможных способов для деления общей задачи организации сетевого взаимодействия на частные, более мелкие подзадачи.

Многоуровневый подход, применяемый к описанию и реализации функций системы, используется не только в отношении сетевых средств. Данная модель действия применяется, например, в локальных файловых системах, если поступивший запрос на доступ к файлу по очереди обрабатывается несколькими программными уровнями, в первую очередь верхним уровнем, осуществляющим последовательный разбор составного символьного названия файла и определение уникального идентификатора файла. Последующий уровень находит по уникальному имени все оставшиеся характеристики файла: адрес, атрибуты доступа и т. п. После этого на более низком уровне производится проверка прав доступа к этому файлу, и затем, после расчета координат области файла, содержащей необходимые данные, выполняется физический обмен с внешним устройством с помощью драйвера диска.

Многоуровневое представление средств сетевого взаимодействия обладает своей спецификой, которая связана с тем, что в обмене сообщениями участвуют две машины, т. е. в этом случае следует организовать согласованную работу двух «иерархий». При передаче сообщений оба участника сетевого обмена должны принять много соглашений. Например, им необходимо согласовать уровни и форму электрических сигналов, способ определения длины сообщений, договориться о способах контроля достоверности и т. п. Таким образом, соглашения должны быть приняты для всех уровней, начиная от самого низкого, которым являются уровни передачи битов, до самого высокого, который выполняет сервис для пользователей сети.

Модули, которые реализуют протоколы соседних уровней и находящиеся в одном узле, также взаимодействуют друг с другом в соответствии с четко определенными нормами и с помощью стандартизованных форматов сообщений. Эти правила называют интерфейсом. Интерфейс – это набор сервисов, которые предоставляются данным уровнем соседнему уровню. На самом деле протокол и интерфейс определяют одно и то же понятие, но традиционно в сетях за ними закрепили различные области действия: протоколы назначают правила взаимодействия модулей одного уровня в разных узлах, а интерфейсы определяют модули соседних уровней в одном узле.

Средства любого из уровней должны отрабатывать, во-первых, свой собственный протокол, а во-вторых, интерфейсы с соседними уровнями.

Иерархически организованный набор протоколов, который достаточен для организации взаимодействия узлов в сети, носит название стеков коммуникационных протоколов.

Коммуникационные протоколы можно выполнить как программно, так и аппаратно. Протоколы нижних уровней чаще всего реализуются комбинацией программных и аппаратных средств, а протоколы верхних уровней – обычно чисто программными средствами.

Программный модуль, который реализует некоторый протокол, часто для краткости также именуют протоколом. В данном случае соотношение между протоколом – формально определенной процедурой и протоколом – программным модулем, который выполняет эту процедуру, аналогично соотношению между алгоритмом решения некоторой задачи и программой, решающей эту задачу.

Один и тот же алгоритм можно запрограммировать с разной степенью эффективности. Аналогично и протокол может обладать несколькими программными средствами реализации. Исходя из этого при сравнении протоколов необходимо учитывать не только логику их работы, но и качество программных решений. Кроме того, на эффективность взаимодействия устройств в сети оказывает влияние качество всей совокупности протоколов, которые составляют стек, в частности, насколько рационально распределены функции между протоколами различных уровней и насколько хорошо определены интерфейсы между ними.

Протоколы организуются не только компьютерами, но и другими сетевыми устройствами, например концентраторами, мостами, коммутаторами, маршрутизаторами и т. д. В общем случае связь компьютеров в сети выполняется не напрямую, а через различные коммуникационные устройства. В зависимости от вида устройства в нем необходимы определенные встроенные средства, которые реализуют тот или иной набор протоколов.