8.6.1.     ЭТАЛОННАЯ МОДЕЛЬ OSI

Понятие эталонной модели

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

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

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

Упорядочить все выполняемые процедуры, разделить их на уровни и подуровни, взаимодействующие между собой, как раз и призваны модели сетей. Эти модели позволяют правильно организовать взаимодействие как абонентам внутри одной сети, так и самым разным сетям на различных уровнях. В настоящее время наибольшее распространение получила так называемая эталонная модель обмена информацией открытой системы OSI (Open System Interchange) (рис 8.4).

Рис. 8.4 Теоретическая модель OSI

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

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

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

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

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

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

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

Канальный уровень, или уровень управления линией передачи (Data link Layer), отвечает за формирование пакетов (кадров) стандартного для данной сети (Ethernet, Token-Ring, FDDI) вида, включающих начальное и конечное управляющие поля. Здесь же производится управление доступом к сети, обнаруживаются ошибки передачи путем подсчета контрольных сумм, и производится повторная пересылка приемнику ошибочных пакетов. Канальный уровень делится на два подуровня: верхний LLC и нижний MAC. На канальном уровне работают такие промежуточные сетевые устройства, как, например, коммутаторы.

Назначением протоколов канального уровня является обеспечение передачи данных по физическому носителю – среде передачи. На канальном уровне данные передаются в виде блоков, которые называются кадрами. Тип используемой среды передачи и её топология во многом определяют вид кадра протокола транспортного уровня, который должен быть использован. При использовании топологий «общая шина» и «point-to-multipoint» средствами протокола канального уровня должны быть определены физические адреса, с помощью которых будет производиться обмен данными по разделяемой среде передачи и процедура доступа к этой среде. Примерами таких протоколов являются протоколы Ethernet (в соответствующей части) и HDLC. Протоколы транспортного уровня, которые предназначены для работы в среде типа «точка-точка», не определяют физических адресов и имеют упрощенную процедуру доступа. Примером протокола такого типа является протокол PPP.

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

Сетевой уровень (Network Layer) отвечает за адресацию пакетов и перевод логических имен (логических адресов, например, IP-адресов или IPX-адресов) в физические сетевые MAC-адреса (и обратно). На этом же уровне решается задача выбора маршрута (пути), по которому пакет доставляется по назначению (если в сети имеется несколько маршрутов). На сетевом уровне действуют такие сложные промежуточные сетевые устройства, как маршрутизаторы.

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

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

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

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

Существует два типа протоколов транспортного уровня – сегментирующие протоколы и дейтаграммные протоколы.

Сегментирующие протоколы транспортного уровня разбивают исходное сообщение на блоки данных транспортного уровня – сегменты. Основной функцией таких протоколов транспортного уровня является обеспечение доставки этих сегментов до объекта назначения и восстановление сообщения.

Дейтаграммные протоколы не сегментируют сообщение и отправляют его одним куском, который называется «дейтаграмма».

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

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

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

На данном уровне устанавливаются, обслуживаются и разрываются сессии между представительными объектами приложений. В качестве примера протокола сеансового уровня можно рассмотреть протокол RPC (remote procedure call). Как следует из названия, данный протокол предназначен для отображения результатов выполнения процедуры на удаленном хосте. В процессе выполнения этой процедуры между приложениями устанавливается сеансовое соединение. Назначением данного соединения является обслуживание запросов, которые возникают при взаимодействии приложения-клиент с приложением-сервером.

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

Представительский уровень (Presentation Layer), или уровень представления данных, определяет и преобразует форматы данных и их синтаксис в форму, удобную для сети, то есть выполняет функцию переводчика. Здесь же производится шифрование и дешифрирование данных, а при необходимости – и их сжатие. Стандартные форматы существуют для текстовых файлов (ASCII, EBCDIC, HTML), звуковых файлов (MIDI, MPEG, WAV), рисунков (JPEG, GIF, TIFF), видео (AVI). Все преобразования форматов делаются на представительском уровне. Если данные передаются в виде двоичного кода, то преобразования формата не требуется.

Прикладной уровень (уровень приложений)

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

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

Большинство функций двух нижних уровней модели (1 и 2) обычно реализуются аппаратно (часть функций уровня 2 – программным драйвером сетевого адаптера). Именно на этих уровнях определяется скорость передачи и топология сети, метод управления обменом и формат пакета, то есть то, что имеет непосредственное отношение к типу сети, например, Ethernet, Token-Ring, FDDI, 100VG-AnyLAN. Более высокие уровни, как правило, не работают напрямую с конкретной аппаратурой, хотя уровни 3, 4 и 5 еще могут учитывать ее особенности. Уровни 6 и 7 никак не связаны с аппаратурой, замены одного типа аппаратуры на другой они не замечают.