Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
С. Ф. Храпский ВССиТ.doc
Скачиваний:
175
Добавлен:
21.05.2015
Размер:
4.76 Mб
Скачать

6.2. Основные понятия многоуровневого сетевого взаимодействия

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

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

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

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

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

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

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

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

Наиболее популярны две модели многоуровневого подхода к разработке средств сетевого взаимодействия. Одной из этих моделей является традиционно описываемая в литературе семиуровневая модель взаимодействия открытых систем OSI (Open System Interconnection) или в русскоязычном варианте – эталонная модель взаимодействия открытых систем (ЭМВОС). Другой моделью является четырехуровневая модель взаимодействия открытых систем DoD (Department of Defence – Министерство Обороны США), которая использована при разработке реально действующего и самого распространенного на сегодняшний день стека протоколов TCP/IP (см. далее в разделе 11), обеспечивающего на практике работу сети Интернет.

Модель OSI была разработана рядом международных организаций по стандартизации, такими как ISO (International Standards Organization), ITU (International Telecommunication Union) и другими, и предложена в 1984 году в качестве стандартизованной единой модели протокольного стека, получившего наименование «X.200». Модель OSI определяет различные уровни взаимодействия открытых систем, дает им стандартные имена и указывает, какие функции должен выполнить каждый уровень. В модели OSI средства взаимодействия делятся на семь уровней: прикладной, представительный, сеансовый, транспортный, сетевой, канальный и физический. Каждый уровень имеет дело с одним определенным аспектом взаимодействия сетевых устройств. Однако необходимо отметить, что модель OSI носит исключительно концептуальный, а не практический характер. Хорошо известно, что в соответствии с моделью OSI не было реализовано ни одного практически применяемого протокола, а наиболее распространенные стеки протоколов (в частности, TCP/IP и протоколы телефонных сетей) не соответствуют модели OSI и не содержат значительной части ее уровней или содержат эти уровни лишь в вырожденном виде. Причиной такого положения вещей является то, что архитектура стека OSI была разработана в тот период времени, когда еще не было достаточного опыта построения и эксплуатации крупномасштабных вычислительных сетей, а соответственно во многом были неясны практические требования к таким сетям и проблемы, возникающие при их реализации. Кроме этого, при создании модели OSI не был должным образом учтен опыт разработчиков одной из первых реально функционирующих вычислительных сетей, а именно сети ARPANet (Advanced Research Project Agency Net – сеть Агенства перспективных исследовательских программ). При этом даже предпринятые в 1994 году попытки пересмотра (с учетом накопленного опыта) ряда концепций модели OSI по существу не исправили искусственности построения этой модели и даже ее некоторой неадекватности реально существующим сетям.

Модель, известная как модель DoD или ARM (ARPANet Referenc Model – эталонная модель сети ARPANet), в момент ее разработки представляла собой описание фактически существовавшей и исторически сложившейся архитектуры сети ARPANet. Согласованность моделей OSI и DoD отмечается лишь относительно нижних четырех уровней, которые как раз и присутствуют в модели DoD.

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

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

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

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

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

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

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

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

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

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

Прикладной уровень занимается поддержкой прикладного процесса пользователя и имеет дело с семантикой данных. Он является границей между процессами сети и прикладными (пользовательскими) процессами. На этом уровне выполняются вычислительные, информационно-поисковые и справочные работы, осуществляется логическое преобразование данных пользователя. Прикладной уровень – это набор разнообразных протоколов, с помощью которых пользователи сети получают доступ к разделяемым ресурсам, таким как файлы, принтеры или гипертекстовые Web-страницы, а также организуют свою совместную работу, например, с помощью протокола электронной почты. Единица данных, которой оперирует прикладной уровень, обычно называется сообщением.

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

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