Модель OSI взаимодействия открытых систем.

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

Этой цели служат информационные протоколы. Различных проблем при передаче данных в сети много, соответственно много разных информационных протоколов. Некоторые из них относятся к разным аспектам передачи данных, некоторые альтернативны. Для того, чтобы упорядочить весь этот материал, создатели сетевого оборудования и сетевого обеспечения пользуются многоуровневой моделью сетевого взаимодействия открытых систем (англ. Open Systems Interconnection - OSI). Модель создана Международной Организацией по Стандартам (International Standards Organization, ISO). Стандарт OSI включает в себя правила построения информационных пакетов, передаваемых по сети, и последовательность действий, выполняемую при обработке этих пакетов. Стандарт реализуется в форме протоколов – формализованных правил, описывающих взаимодействие на различных уровнях обработки информации. Протоколы могут содержать как нормативную информацию, обязательную к исполнению, так и правила рекомендательного характера в использовании того или иного метода.

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

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

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

¨ физический уровень (Physical Layer);

¨ канальный уровень (Data Link);

¨ сетевой уровень (Network Layer);

¨ транспортный уровень (Transport Layer);

¨ сеансовый уровень (Session Layer);

¨ уровень представления данных (Presentation Layer);

¨ прикладной уровень (Application Layer).

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

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

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

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

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

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

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

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

На транспортном уровне выполняется согласование сетевых уровней сетей с различным сетевым обеспечением. Транспортный уровень должен обеспечивать способность к обнаружению и исправлению ошибок передачи, таких как искажение, потеря и дублирование пакетов. Ответственным за транспортный уровень являются модули операционных систем шлюзов локальных сетей. В качестве примера транспортных протоколов можно привести протоколы TCP и UDP семейства TCP/IP.

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

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

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

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