Многоуровневый подход и эталонная модель OSI

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

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

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

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

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

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

Предположим что предприятие А находится в России, а В – в Китае. Директор предприятия А должен отправить сообщение директору предприятия В (например о том сколько и какого товара может быть поставлено). Обмен сообщений между двумя директорами происходит с следующей последовательности:

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

2. Секретарь оформляет сообщение, полученное от директора, в соответствии с установленными правилами деловой переписки. Эти правила являются протоколом уровня «секретарь – секретарь».

3. Оформленное сообщение передается переводчику для его перевода на английский язык (китайского он не знает).

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

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

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

Многоуровневый подход и эталонная модель OSI - student2.ru Многоуровневый подход и эталонная модель OSI - student2.ru

Рисунок 2‑1 Пример многоуровневого подхода

7. Почтовое отделение извлекает конверт из контейнера и доставляет его в канцелярию предприятия В.

8. Канцелярия извлекает сообщение из конверта и передает переводчику для перевода на китайский язык.

9. Переводчик переводит сообщение с английского языка на китайский и передает секретарю.

10. Секретарь доводит содержание сообщения до директора.

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

Эталонная модель OSI

Модель OSI была предложена Международной организацией стандартов ISO (International Standarts Organization) в 1984 году. С тех пор ее используют (более или менее строго) все производители сетевых продуктов. Как и любая универсальная модель, OSI довольно громоздка, избыточна, и не слишком гибка. Поэтому реальные сетевые средства, предлагаемые различными фирмами, не обязательно придерживаются принятого разделения функций. Однако знакомство с моделью OSI позволяет лучше понять, что же происходит в сети.

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

Многоуровневый подход и эталонная модель OSI - student2.ru

Рисунок 2‑2 Семь уровней модели OSI

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

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

Многоуровневый подход и эталонная модель OSI - student2.ru

Рисунок 2‑3 Путь информации от абонента к абоненту

Рассмотрим подробнее функции разных уровней.

Физический уровень

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

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

Канальный уровень

Канальный (2) уровень или уровень управления линией передачи (Data link Layer) выполняет две задачи и соответственно разбит на два подуровня:

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

Верхний подуровень (LLC – Logical Link Control) осуществляет управление логической связью, то есть устанавливает виртуальный канал связи. На канальном уровне биты группируются в наборы, называемые кадрами (frames). Кадр состоит из заголовка, поля данных и так называемого «концевика». Заголовок и концевик (начало и конец) каждого кадра содержат специальную последовательность бит для его выделения.

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

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

Строго говоря, эти функции не связаны с конкретным типом сети, но часть из них все же возлагается на аппаратуру сети (сетевой адаптер). Другая часть функций подуровня LLC выполняется программой драйвера сетевого адаптера. Подуровень LLC отвечает за взаимодействие с уровнем 3 (сетевым).

На канальном уровне работают такие сетевые устройства, как, мосты и коммутаторы.

Сетевой уровень

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

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

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

Внутри сети доставка данных обеспечивается соответствующим канальным уровнем, а вот доставкой данных между сетями занимается сетевой уровень. Сети соединяются между собой специальными устройствами, называемыми маршрутизаторами (router). Проблема выбора наилучшего пути называется маршрутизацией, и ее решение является одной из главных задач сетевого уровня. Сообщения сетевого уровня принято называть пакетами (packets). При организации доставки пакетов на сетевом уровне используется понятие «номер сети». Вводится понятие сетевой адрес который состоит из номера сети и номера узла в этой сети. Сетевой адрес указывается в заголовке пакета, в отличие от MAC-адреса, он задается программно.

Термину «сеть» на сетевом уровне можно дать более формальное определение: сеть – это совокупность узлов, сетевой адрес которых содержит один и тот же номер сети.

Транспортный уровень

Транспортный (4) уровень (Transport Layer) обеспечивает доставку пакетов без ошибок и потерь, а также в нужной последовательности. На пути от отправителя к получателю пакеты могут быть искажены или утеряны. Хотя некоторые приложения имеют собственные средства обработки ошибок, существуют и такие, которые предпочитают сразу иметь дело с надежным соединением. Транспортный уровень обеспечивает приложениям или верхним уровням стека – прикладному и сеансовому – передачу данных с той степенью надежности, которая им требуется.

Единицей данных протокола сетевого уровня (например TCP) является сегмент (segment). Для обеспечения надежности передачи передача каждого сегмента подтверждаться квитанцией получателя. Как конкретно это производится определяется протоколом транспортного уровня. Здесь же производится разбивка передаваемых данных на блоки (сегменты), помещаемые в пакеты, и восстановление принимаемых данных из пакетов.

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

Сеансовый уровень

Сеансовый (5) уровень (Session Layer) управляет проведением сеансов связи (то есть устанавливает, поддерживает и прекращает связь). Сеансовый уровень может также вставлять в поток данных специальные контрольные точки, которые позволяют контролировать процесс передачи при разрыве связи, чтобы в случае отказа можно было вернуться назад к последней контрольной точке, а не начинать все с начала. Этот же уровень распознает логические имена абонентов, контролирует предоставленные им права доступа.

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

Представительский уровень

Представительский (6) уровень (Presentation Layer) или уровень представления данных определяет и преобразует форматы данных и их синтаксис в форму, удобную для сети, то есть выполняет функцию переводчика. Здесь же производится шифрование и дешифрирование данных, а при необходимости – и их сжатие. За счет уровня представления информация, передаваемая прикладным уровнем одной системы, всегда понятна прикладному уровню другой системы. С помощью средств данного уровня протоколы прикладных уровней могут преодолеть синтаксические различия в представлении данных или же различия в кодах символов, например кодов ASCII и EBCDIC.

Прикладной уровень

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

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

Существует очень большое разнообразие служб прикладного уровня. Приведем в качестве примера хотя бы несколько наиболее распространенных реализаций файловых служб: NCP в операционной системе Novell NetWare, SMB в Microsoft Windows NT, NFS, FTP и TFTP, входящие в стек TCP/IP.

С использованием прикладного уровня работают шлюзы (gateway). Обычно основной причиной, по которой в сети используют шлюз является необходимость объединить сети с разными типами системного и прикладного программного обеспечения. Например шлюз может обеспечить передачу сообщений из новостных конференций FIDO в Интернет.

Наши рекомендации