Уровне эталонной модели osi задается адрес конечной целевой системы. Эталонная сетевая модель OSI. Спецификации физического уровня

Эталонная модель 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 могут быть объединены таким образом, что подканал в системе с частотным мультиплексированием разбивается на несколько каналов, путем мультиплексирования с разделением времени. Этот прием используется в работе цифровых сотовых сетей.


В 1978 г. ISO (International Standards Organization) выпустила на­бор спецификаций, описывающих модель взаимодействия открытых систем, т.е. систем, доступных для связи с другими системами. Это был первый шаг к международной стандартизации протоколов. Все системы могли теперь использовать одинаковые протоколы и стан­дарты для обмена информацией.

В 1984 г. ISO выпустила новую версию своей модели, названную эталонной моделью взаимодействия открытых систем ISO. Эта вер­сия стала международным стандартом. Ее спецификации использу­ют производители при разработке сетевых продуктов, ее придержи­ваются при построении сетей. Полностью модель носит название ISO OSI (Open System Interconnection Reference Model). Для краткости будем ее называть модель OSI . Модель OSI не является сетевой архи­тектурой, так как не описывает службы и протоколы, используемые на каждом уровне. Она просто определяет, что должен делать каждый уровень. Важно также понимать, что эталонная модель не явля­ется чем-то реальным, таким, что обеспечивает связь. Сама по себе она не заставляет коммуникации функционировать и служит лишь для классификации. Она классифицирует то, что непосредственно работает, а именно - протоколы . Протоколом считается набор спе­цификаций, определяющих реализацию одного или нескольких уров­ней OSI. ISO разработала также стандарты для каждого уровня, хотя эти стандарты не входят в саму эталонную модель. Каждый из них был опубликован как отдельный международный стандарт.

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

Модель OSI без физического носителя показана на рис.

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

Каждый уровень выполняет несколько операций при подготов­ке данных для доставки по сети на другой компьютер. Уровни отделяются друг от друга границами - интерфейсами . Все запросы от одного уровня к другому передаются через интерфейс. Каждый уро­вень, выполняя свои функции, пользуется услугами нижележащего уровня. Самые нижние уровни - 1-й и 2-й - определяют физичес­кую среду при передаче битов данных через плату СА и кабель. Са­мые верхние уровни определяют, каким способом реализуется дос­туп приложений к услугам связи.

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

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

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

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

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

Рассмотрим каждый из семи уровней модели OSI и услуги, ко­торые они предоставляют смежным уровням.

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

Уровень представления (Presentation) . Уровень 6. Представитель­ский уровень определяет формат, используемый для обмена данны­ми между сетевыми компьютерами. Типичный пример работы служб Представительского уровня − кодирование передаваемых данных определенным стандартным образом. Уровень представления отвечает за преобразование протоколов, трансляцию и шифрование данных, смену кодовой таблицы и расширение графических команд. Кроме того, он управляет сжатием данных для уменьшения объема переда­ваемых бит.

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

Транспортный уровень (Transport) . Уровень 4. Основная функция Транспортного уровня − принять данные от Сеансового уровня, раз­бить их при необходимости на небольшие части и передать Сетево­му уровню, гарантируя, что эти части в правильном порядке прибу­дут по назначению. Все это должно быть сделано эффективно и так, чтобы изолировать более высокие уровни от каких-либо изменений в аппаратной технологии. Транспортный уровень также следит за созданием и удалением сетевых соединений, управляет потоком со­общений, проверяет ошибки и участвует в решении задач, связан­ных с отправкой и получением пакетов. Примеры протоколов транс­портного уровня - ТСР и SРХ.

Сетевой уровень (Network) . Уровень 3. Сетевой уровень управля­ет операциями подсети. Он отвечает за адресацию сообщений и пе­ревод логических адресов и имен в физические. Сетевой уровень раз­решает также проблемы, связанные с разными способами адресации и разными протоколами при переходе пакетов из одной сети в дру­гую, позволяя объединять разнородные сети. Примеры протоколов сетевого уровня - IP и IPX.

Уровень передачи данных или канальный (Data Link) . Уровень 2. Основная задача Канального уровня - преобразовать способность Физического уровня передавать данные в надежную линию связи, свободную от необнаруженных ошибок с точки зрения вышестоящего Сетевого уровня. Эту задачу Канальный уровень выполняет при по­мощи разбиения входных данных на кадры размером от нескольких сот до нескольких тысяч байтов. Каждый следующий кадр данных передается только после получения и обработки кадра подтвержде­ния, посылаемого обратно получателем. Кадр - это логически организованная структура, в которую можно помещать данные. На рис. представлен простой кадр данных, где идентификатор отправи­теля − адрес компьютера-отправителя, а идентификатор получателя − адрес компьютера-получателя. Управляющая информация исполь­зуется для маршрутизации, указания типа пакета и сегментации. CRC (циклический код) позволяет выявить ошибки и гарантирует правильный прием информации.

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

Модель состоит из 7-ми уровней, расположенных друг над другом. Уровни взаимодействуют друг с другом (по «вертикали») посредством интерфейсов, и могут взаимодействовать с параллельным уровнем другой системы (по «горизонтали») с помощью протоколов. Каждый уровень может взаимодействовать только со своими соседями и выполнять отведённые только ему функции. Подробнее можно посмотреть на рисунке.

Прикладной (Приложений) уровень (англ. Application layer )

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

Представительский (Уровень представления) (англ. Presentation layer )

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

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

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

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

Стандарты уровня представлений также определяют способы представления графических изображений. Для этих целей может использоваться формат PICT - формат изображений, применяемый для передачи графики QuickDraw между программами для компьютеров Macintosh и PowerPC. Другим форматом представлений является тэгированный формат файлов изображений JPEG.

Существует другая группа стандартов уровня представлений, которая определяет представление звука и кинофрагментов. Сюда входят интерфейс электронных музыкальных инструментов MPEG, используемый для сжатия и кодирования видеороликов на компакт-дисках, хранения в оцифрованном виде и передачи со скоростями до 1,5 Мбит/с, и Session layer )

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

Транспортный уровень (англ. Transport layer )

4-й уровень модели предназначен для доставки данных без ошибок, потерь и дублирования в той последовательности, как они были переданы. При этом не важно, какие данные передаются, откуда и куда, то есть он предоставляет сам механизм передачи. Блоки данных он разделяет на фрагменты, размер которых зависит от протокола, короткие объединяет в один, а длинные разбивает. Протоколы этого уровня предназначены для взаимодействия типа точка-точка. Пример: UDP.

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

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

Сетевой уровень (англ. Network layer )

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

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

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

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

Канальный уровень (англ. Data Link layer )

Этот уровень предназначен для обеспечения взаимодействия сетей на физическом уровне и контроля за ошибками, которые могут возникнуть. Полученные с физического уровня данные он упаковывает во фреймы , проверяет на целостность, если нужно исправляет ошибки (посылает повторный запрос поврежденного кадра) и отправляет на сетевой уровень. Канальный уровень может взаимодействовать с одним или несколькими физическими уровнями, контролируя и управляя этим взаимодействием. Спецификация IEEE 802 разделяет этот уровень на 2 подуровня - MAC (Media Access Control) регулирует доступ к разделяемой физической среде, LLC (Logical Link Control) обеспечивает обслуживание сетевого уровня.

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

Физический уровень (англ. Physical layer )

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

Источники

  • Александр Филимонов Построение мультисервисных сетей Ethernet, bhv, 2007 ISBN 978-5-9775-0007-4
  • Руководство по технологиям объединенных сетей //cisco systems , 4-е издание, Вильямс 2005 ISBN 584590787X

Wikimedia Foundation . 2010 .

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

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

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

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

Не будем сильно отвлекаться, "Сетевая модель" нужная тема для тех, кто хочет стать специалистом. Эта статья состоит из 3х частей и для Вас, Я постарался написать не скучно, понятливо и коротко. Для получения подробностей, или получения дополнительного разъяснения отпишитесь в комментариях внизу страницы, и я непременно помогу Вам.

Мы, как и в Сетевой Академии Cisco рассмотрим две сетевые модели: модель OSI и модель TCP/IP (иногда её называют DOD), а заодно и сравним их.

OSI расшифровывается как Open System Interconnection. На русском языке это звучит следующим образом: Сетевая модель взаимодействия открытых систем (эталонная модель). Эту модель можно смело назвать стандартом. Именно этой модели придерживаются производители сетевых устройств, когда разрабатывают новые продукты.

Сетевая модель OSI состоит из 7 уровней, причем принято начинать отсчёт с нижнего.

Перечислим их:

  • 7. Прикладной уровень (application layer)
  • 6. Представительский уровень или уровень представления (presentation layer)
  • 5. Сеансовый уровень (session layer)
  • 4. Транспортный уровень (transport layer)
  • 3. Сетевой уровень (network layer)
  • 2. Канальный уровень (data link layer)
  • 1. Физический уровень (physical layer)

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

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

Прикладной уровень или уровень приложений(application layer) – это самый верхний уровень модели. Он осуществляет связь пользовательских приложений с сетью. Эти приложения нам всем знакомы: просмотр веб-страниц (HTTP), передача и приём почты (SMTP, POP3), приём и получение файлов (FTP, TFTP), удаленный доступ (Telnet) и т.д.

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

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

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

Вот так и работает этот уровень с протоколами (стандартами) изображений (JPEG, GIF, PNG, TIFF), кодировок (ASCII, EBDIC), музыки и видео (MPEG) и т.д.

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

Сеансовый уровень или уровень сессий(session layer) – как видно из названия, он организует сеанс связи между компьютерами. Хорошим примером будут служить аудио и видеоконференции, на этом уровне устанавливается, каким кодеком будет кодироваться сигнал, причем этот кодек должен присутствовать на обеих машинах. Еще примером может служить протокол SMPP (Short message peer-to-peer protocol), с помощью него отправляются хорошо известные нам СМСки и USSD запросы. И последний пример: PAP (Password Authentication Protocol) – это старенький протокол для отправки имени пользователя и пароля на сервер без шифрования.

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

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

Транспортный уровень (transport layer) – этот уровень обеспечивает надёжность передачи данных от отправителя к получателю. На самом деле всё очень просто, например вы общаетесь с помощью веб-камеры со своим другом или преподавателем. Нужна ли здесь надежная доставка каждого бита переданного изображения? Конечно нет, если потеряется несколько битов из потокового видео Вы даже этого не заметите, даже картинка не изменится (м.б. изменится цвет одного пикселя из 900000 пикселей, который промелькнет со скоростью 24 кадра в секунду).

А теперь приведем такой пример: Вам друг пересылает (например, через почту) в архиве важную информацию или программу. Вы скачиваете себе на компьютер этот архив. Вот здесь надёжность нужна 100%, т.к. если пару бит при закачке архива потеряются – Вы не сможете затем его разархивировать, т.е. извлечь необходимые данные. Или представьте себе отправку пароля на сервер, и в пути один бит потерялся – пароль уже потеряет свой вид и значение изменится.

Таким образом, когда мы смотрим видеоролики в интернете, иногда мы видим некоторые артефакты, задержки, шумы и т.п. А когда мы читаем текст с веб-страницы – потеря (или скжение) букв не допустима, и когда скачиваем программы – тоже все проходит без ошибок.

На этом уровне я выделю два протокола: UDP и TCP. UDP протокол (User Datagram Protocol) передает данные без установления соединения, не подтверждает доставку данных и не делает повторы. TCP протокол (Transmission Control Protocol), который перед передачей устанавливает соединение, подтверждает доставку данных, при необходимости делает повтор, гарантирует целостность и правильную последовательность загружаемых данных.

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

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

Сетевой уровень (network layer) – этот уровень определяет путь, по которому данные будут переданы. И, между прочим, это третий уровень Сетевой модели OSI, а ведь существуют такие устройства, которые как раз и называют устройствами третьего уровня – маршрутизаторы.

Все мы слышали об IP-адресе, вот это и осуществляет протокол IP (Internet Protocol). IP-адрес – это логический адрес в сети.

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

Как об IP-адресе все слышали и о команде ping – это работает протокол ICMP.

Те самые маршрутизаторы (с которыми мы и будет работать в дальнейшем) используют протоколы этого уровня для маршрутизации пакетов (RIP, EIGRP, OSPF).

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

Канальный уровень (data link layer) – он нам нужен для взаимодействия сетей на физическом уровне. Наверное, все слышали о MAC-адресе, вот он является физическим адресом. Устройства канального уровня – коммутаторы, концентраторы и т.п.

IEEE (Institute of Electrical and Electronics Engineers - Институт инженеров по электротехнике и электронике) определяет канальный уровень двумя подуровнями: LLC и MAC.

LLC – управление логическим каналом (Logical Link Control), создан для взаимодействия с верхним уровнем.

MAC – управление доступом к передающей среде (Media Access Control), создан для взаимодействия с нижним уровнем.

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

Типичных представителей на этом уровне много. PPP (Point-to-Point) – это протокол для связи двух компьютеров напрямую. FDDI (Fiber Distributed Data Interface) – стандарт передаёт данные на расстояние до 200 километров. CDP (Cisco Discovery Protocol) – это проприетарный (собственный) протокол принадлежащий компании Cisco Systems, с помощью него можно обнаружить соседние устройства и получить информацию об этих устройствах.

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

Физический уровень (physical layer) – самый нижний уровень, непосредственно осуществляющий передачу потока данных. Протоколы нам всем хорошо известны: Bluetooth, IRDA (Инфракрасная связь), медные провода (витая пара, телефонная линия), Wi-Fi, и т.д.

Заключение

Вот мы и разобрали сетевую модель OSI. В следующей части приступим к Сетевой модели TCP/IP, она меньше и протоколы те же. Для успешной сдачи тестов CCNA надо провести сравнение и выявить отличия, что и будет сделано.

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

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

Эталонная модель OSI (за исключением физической среды) показана на рис. 1.16. Эта модель основана на разработке Международной организации по стандарти­зации (International Organization for Standardization, ISO) и является первым ша­гом к международной стандартизации протоколов, используемых на различных уровнях (Day и Zimmerman, 1983). Затем она была пересмотрена в 1995 году (Day, 1995). Называется эта структура эталонной моделью взаимодействия от­крытых систем ISO (ISO OSI (Open System Interconnection) Reference Model), поскольку она связывает открытые системы, то есть системы, открытые для свя­зи с другими системами. Для краткости мы будем называть эту модель просто «модель OSI».

Модель OSI имеет семь уровней. Появление именно такой структуры было обусловлено следующими соображениями.

1. Уровень должен создаваться по мере необходимости отдельного уровня абстракции.

2. Каждый уровень должен выполнять строго определенную функцию.

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

4. Границы между уровнями должны выбираться так, чтобы поток данных между интерфейсами был минимальным.

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

Далее мы обсудим каждый уровень модели, начиная с самого нижнего. Обра­тите внимание: модель OSI не является сетевой архитектурой, поскольку она не описывает службы и протоколы, используемые на каждом уровне. Она просто определяет, что должен делать каждый уровень. Тем не менее ISO также разработала стандарты для каждого уровня, хотя эти стандарты не входят в саму эталонную модель. Каждый из них был опубликован как отдельный международный стандарт.

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

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

Уровень передачи данных

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Уровень представления

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

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

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

Критика модели и протоколов OSI

Некоторое время назад, многим экспертам в данной области казалось, что модель OSI и ее протоколы завоюют весь мир и вытеснят все остальное. Этого не случилось. По­чему? Может быть, полезно оглянуться и учесть некоторые из уроков этой истории. Основных причин неудачи модели OSI было четыре:

Несвоевременность;

Неудачная технология;

Неудачная реализация;

Неудачная политика.

Несвоевременность

Прежде всего рассмотрим причину номер один: несвоевременность. Для успеха стандарта чрезвычайно важно, в какое время он устанавливается. У Дэвида Клар­ка (David Clark) из M.I.T. есть теория стандартов, которую он называет апокалипсисом двух слонов.

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

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

Теперь становится ясно, почему стандартные протоколы OSI потерпели неудачу. К моменту их появления среди исследовательских университетов уже получили широкое распространение конкурирующие с ними протоколы TCP/IP. И хотя волна инвестиций еще не обрушилась на данную область, рынок университетов был достаточно широк для того, чтобы многие разработчики стали осторожно предлагать продукты, поддерживающие протоколы TCP/IP. Когда же появился OSI, разработчики не захотели поддерживать второй стек протоколов; таким образом, начальных предложений не было. Каждая компания выжидала, пока первым начнет кто-нибудь другой, поэтому OSI так никто и не стал поддерживать.

Плохая технология

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

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

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

Неудачная реализация

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

Первые реализации TCP/IP, основанные на Berkley UNIX, напротив, были достаточно хороши (не говоря уже о том, что они были открытыми). Они довольно быстро вошли в употребление, что привело к появлению большого сообщества пользователей. Это вызвало исправления и улучшения реализации, в результате чего сообщество пользователей еще выросло. В данном случае обратная связь явно была положительной.

Неудачная политика

Из-за особенностей первоначальной реализации многие, особенно в университетских кругах, считали TCP/IP частью системы UNIX. А к системе UNIX в университетских кругах в 80-е годы испытывали чувства, средние между родительскими (в те времена некорректно по отношению к правам мужского населения называемые материнскими) и чувствами к яблочному пирогу.

С другой стороны, OSI считался детищем европейских телекоммуникационных министерств, Европейского сообщества и (позднее) правительства США. Все это было лишь отчасти верным, однако сама мысль о группе правительственных чиновников, пытающихся протолкнуть неудачный в техническом отношении стандарт в глотки бедных исследователей и программистов, прокладывавших компьютерные сети в траншеях, не способствовала продвижению этой модели. Кое-кто рассматривал это развитие в том же свете, что и заявления корпорации IBM, сделанные в 1960 году, о том, что PL/I будет языком будущего, или Министерства обороны, поправлявшего позднее это утверждение своим заявлением, что в действительности таким языком будет Ada.

Несмотря на все недостатки, модель OSI (кроме сеансового уровня и уровня представления) показала себя исключительно полезной для теоретических дискуссий о компьютерных сетях. Протоколы OSI, напротив, не получили широкого распространения. Для TCP/IP верно обратное: модель практически не существует, тогда как протоколы чрезвычайно популярны.

Понравилась статья? Поделиться с друзьями: