Модель взаимодействия открытых систем
Модель взаимодействия открытых систем (OSI) была формализована Международной организацией по стандартизации (ISO) и опубликована в 1982 году. Модель была создана уже после разработки несовместимых между собой стеков протоколов X.25, TCP/IP и ОКС-7 и имела целью вобрать в себя все лучшее на момент создания.
Модель имеет иерархическую структуру, состоящую из семи уровней.
Основной принцип модели - каждый уровень содержит заданную группу функций, предоставляющих следующему уровню строго определенный набор услуг.
Модель разделяет все действия протокола по предоставлению услуг, связанных с передачей данных приложения, на две большие группы функций.
Приложение (прикладной процесс) является пользователем протокола и использует его услуги для передачи данных по сети к удаленному приложению (прикладному процессу).
Каждая группа функций должна иметь стандартные интерфейсы для предоставления своих услуг вышестоящим группам и использования услуг, предоставляемых расположенными ниже группами функций.
Первая группа функций содержит верхние уровни (7-5), на которых обеспечивается подготовка информации, поступающей от приложения, к транспортировке.
Верхние уровни обеспечивают надежность при транспортировке данных по сети из конца в конец. В их функции входят обнаружение и исправление ошибок передачи, а также сегментирование, порядковая нумерация и сборка блоков данных конкретного приложения.
Вторая группа функций содержит нижние уровни (4-1), обеспечивающие транспортировку информации, и предоставляет механизмы маршрутизации блоков данных по сети и их получения в пункте назначения.
Эта группа не имеет доступа к адресам приложений, а лишь передает блоки данных от одного узла сети к другому, используя их физические и сетевые адреса. На этих уровнях имеются собственные средства сегментирования, контроля последовательности передачи и сборки пакетов в пункте назначения.
Разбиение всех функций передачи информации на уровни обеспечивает возможность сохранения неизменным протокола одного уровня при необходимости внесения изменений в протоколы смежных уровней.
Смежные уровни внутри одной системы взаимодействуют по специальным протоколам, называемым примитивами.
7, 6, 5, 4, 3, 2, 1 – служебные сообщения, которые добавляются к передаваемой информации в соответствии с номерами уровней
Седьмой, прикладной уровень, является интерфейсом между приложением и самой моделью. На этом уровне производятся первичные действия по подготовке информации для передачи по сети, включающие идентификацию получателя информации и его доступность.
Шестой, уровень представления данных, определяет форматы (синтаксис) для передачи по сети данных различных типов. Эти форматы не обязательно должны совпадать с форматами, используемыми вышестоящими уровнями. Наиболее распространенным синтаксисом, используемым в телекоммуникационных протоколах на уровне представления, является язык абстрактных описаний ASN.1.
Пятый, сеансовый уровень, отвечает за установление и выбор типа диалога (сеанса) между взаимодействующими приложениями. Уровень управляет точками синхронизации, которые могут потребоваться, например, при передаче одним приложением нескольких файлов во время одного сеанса связи. В точке синхронизации передача останавливается для получения подтверждения о приеме с удаленного конца. Кроме того, в функции уровня входит запоминание точки остановки передачи, вызванной процедурами более высокого приоритета, и возобновление передачи с этого места.
Четвертый, транспортный уровень, гарантирует надежную доставку всех переданных блоков данных приложения по сети из конца в конец. Уровень предназначен для дополнительного подкрепления надежности передачи, предоставляемой сетевым уровнем. Адресация на этом уровне состоит из точек доступа к услугам (SAP, service access point), представляющих собой логические адреса протоколов, занимающихся внутри узла обслуживанием передачи информации конкретных приложений.
Третий, сетевой уровень, отвечает за маршрутизацию пакетов данных, принятых от смежного узла. В пакетных сетях пакеты могут приходить от разных узлов, и сетевой уровень определяет адрес пункта назначения и звено, которое следует использовать для доставки пакета в нужном направлении. В функции уровня входит передача пакетов данных от одной сети к другой. Для передачи пакетов из одной сети в другую используется адресация на сетевом уровне. Существуют два метода доставки пакетов к пункту назначения – с установлением виртуальных соединений и с использованием дейтаграмм.
Виртуальные соединения организуются посредством обмена специальными сообщениями перед фазой передачи блоков данных вышестоящего уровня. Виртуальные соединения позволяют избежать доставки сообщений в неправильной последовательности, обеспечивая прохождение всех сообщений по одному и тому же маршруту. В ряде случае этот метод неэффективен и снижает надежность сети, так как перегрузка смежного узла вызывает задержку доставки пакетов, а при отказе звена сообщение теряется вследствие отсутствия резервных путей.
В дейтаграммном режиме фаза предварительного установления соединения отсутствует, и каждое сообщение содержит в своем составе как адресную информацию (адрес пункта назначения и пункта отправителя сообщения), так и информацию пользователя вышестоящего уровня. Использование дейтаграммного режима повышает эффективность использования сети, так как позволяет динамически изменять маршрутизацию пакетов в зависимости от состояния каналов и узлов. Однако в дейтаграммном режиме возможны случаи доставки пакетов в неправильной последовательности и потери пакетов, вследствие отсутствия функций повторной передачи, а функции восстановления потерянных данных должны быть возложены на вышестоящий уровень.
Управление сетью сигнализации также входит в функции сетевого уровня и обеспечивается посредством специальных сообщений, направляемых как к смежным, так и несмежным узлам для уведомления об отказе или перегрузке удаленных узлов или звеньев.
Второй, уровень звена данных, отвечает за надежную передачу битового потока между двумя смежными устройствами в сети, используя для этой цели один из методов обнаружения и исправления ошибок и контроля последовательности передачи блоков данных. При приеме битового потока с физического уровня уровень звена данных выделяет из него блоки данных, используя в качестве их разделителя специальную битовую последовательность, не повторяющуюся более нигде внутри блока. Перед передачей к вышестоящему уровню данных, принятых от физического уровня, уровень звена данных удаляет из них управляющую информацию протокола, такую как физический адрес узла, порядковый номер и контрольную последовательность. При приеме данных с вышестоящего уровня управляющая информация добавляется к блокам данных перед передачей их на физический уровень. Восстановление работоспособности звена в случае аварии на физическом уровне и управление потоком блоков данных также входит в функции уровня звена данных.
Первый, физический уровень, отвечает за преобразование в битовый поток цифровых данных для переноса их по сети. Уровень задает механические и электрические характеристики передачи в соответствии с используемым физическим интерфейсом. Электрические характеристики включают в себя, главным образом, способ кодирования для передачи цифрового сигнала на большие расстояния и перечень аварийных сигналов, связанных с потерей сигнала или синхронизации. Физический уровень должен быть способен работать и управляться автономно вне зависимости от наличия вышестоящих протоколов.