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

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


Разработчики эталонной модели руководствовались следующими принципами.

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

· Уровни должны четко отличаться выполняемыми на них функциями (объектами) и логическими модулями.

· Функции и протоколы одного уровня могут быть изменены, если это не затрагивает другие уровни.

· Количество информации, передаваемой через интерфейсы между уровнями, должно быть минимальным.

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

Получившаяся в результате эталонная модель содержит семь уровней (рис. 4.24).

Высшим, седьмым, уровнем модели OSI является прикладной уровень (Application), на котором осуществляется управление терминалами и прикладными процессами в оконечных системах, являющимися источниками и потребителями информации в информационной сети. Этот уровень представляет сервисы непосредственно пользовательским прикладным программам. Чтобы избежать несовместимости между пользовательскими программами, прикладной уровень определяет стандартные способы представления сервисов этого уровня. Это освобождает программистов от необходимости повторно прописывать одни и те же функции в каждой сетевой прикладной программе, которую они создают. Сами сервисы прикладного уровня приложениями не являются. Прикладной уровень предоставляет программистам набор открытых стандартных интерфейсов прикладного программирования (API – Application Programming Interface), которые можно использовать для выполнения таких функций сетевого приложения как передача файлов, удаленная регистрация и т.п. В результате модули прикладных программ получаются меньшими по размеру и требуют меньше памяти.

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

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

 

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

 

Рисунок 4. Эталонная модель OSI

 

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

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

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

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

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

Функция установления и разрыва соединения по запросу сеансового уровня между равноправными объектами транспортного уровня реализуется посредством процедуры трехстороннего квитирования.

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

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

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

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

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

Для каждого из приоритетов могут быть организованы раздельные буферные пулы. Алгоритмом транспортировки при этом предусматривается первоочередное обслуживание буфера срочных данных и только после его опустошения – буфера обычных данных.

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

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

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

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

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

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

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

В заключении остановимся еще раз на особенностях работы транспортного уровня в режиме без установления соединения. Как уже отмечалось выше, он используется, когда гарантированная сквозная доставка данных не требуется. Это прежде всего процессы обменивающиеся данными в реальном масштабе времени (аудио- либо видеопроцессы), для которых доставка без задержки гораздо важнее достоверности, достигаемой за счет повторных передач сегментов. Кроме того, режим без установления соединения позволяет более эффективно использовать сеть, не занимая ее пропускную способность изрядным количеством служебной информации. Может возникнуть сомнение: «Нужен ли вообще транспортный уровень при работе приложений реального времени?». И здесь следует еще раз подчеркнуть актуальность функции адресации транспортного уровня, которая обеспечивает поддержку нескольких одновременно работающих прикладных процессов на одной машине, что не возможно без сервисов транспортного уровня.

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

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

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

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

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

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

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

Блок данных на канальном уровне называется кадром или фреймом. Пакеты сетевого уровня, объединенные в кадр, обрамляются разделительными флагами (специальными последовательностями бит, помещаемыми в начале и конце блока пакетов). Кроме того, к кадру добавляется контрольная сумма, с использованием которой осуществляется проверка верности переданного по каналу кадра. В случае обнаружения неисправимой ошибки, приемник запрашивает у передатчика повторную передачу кадра. Теория передачи данных и теория кодирования достаточно хороши разработаны, что позволяет обеспечить высокую эффективность работы протоколов канального уровня. Необходимо отметить, что функция исправления битовых ошибок не всегда является обязательной для канального уровня, поэтому в некоторых протоколах канального уровня она отсутствует (Ethernet, Frame relay). Иногда в глобальных сетях функции канального уровня в чистом виде вообще выделить трудно, поскольку в одном и том же протоколе они объединяются с функциями сетевого уровня (АТМ, Frame relay).

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

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

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

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

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

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

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

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

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

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

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

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

Одной из важных функций физического уровня является мультиплексирование, обеспечивающее объединение множества узкополосных (низкоскоростных) каналов в один широкополосный (высокоскоростной) канал. Как известно, по технологическому принципу различают частотное мультиплексирование (Frequency Division Multiplexing, FDM) и мультиплексирование с разделением времени (Time Division Multiplexing, TDM). Технологии FDM и TDM могут быть объединены таким образом, что подканал в системе с частотным мультиплексированием разбивается на несколько каналов, путем мультиплексирования с разделением времени. Этот прием используется в работе цифровых сотовых сетей.