(OSI — Open Systems Interconnection)
Эталонная модель сотрудничества открытых совокупностей (ЭМ ВОС) – это идеологическая концепция, которая была утверждена МККТТ (совет Х.200) и МОС (стандарт IS 7498). Ее появление было связано с необходимостью объединения в сети разнотипных ЭВМ (в смысле совокупности, серии, платформы). Сетевое ПО есть весьма сложным и это потребовало его разбиения на последовательность иерархических уровней, стандартизации самих интерфейсов и уровней между ними. Открытость в данной концепции понимается как независимость от типа (класса) ЭВМ. В единую сеть должны объединяться каждые ЭВМ (ПК, мейнфреймы, рабочие станции, супер-ЭВМ, с ОС UNIX, Windows и т.д.), в случае, если выполнены те условия, каковые оговариваются в данной модели.
Все сетевое ПО открытой совокупности делится на последовательность функциональных слоев (уровней). ЭМ ВОС рекомендует 7 таких уровней, продемонстрированных на рисунке 2.1.
Рис.2.1.
Модель вводит единую терминологию для описания уровней. Наряду с этим обобщенно рассматриваются три смежных уровня — (N-1), (N) и (N+1).
Те элементы открытой совокупности, каковые делают в ней функции N-уровня именуют (N)-объектом.
(N)-работой именуется совокупность функциональных возможностей (N)-уровня и всех нижележащих уровней.
В объектах выделяются отдельные элементы, именуемые (N)-функциями, а в (N)-работе – элементы, определяемые как (N)-услуги.
В ходе передачи данных между (N)-объектами устанавливается сотрудничество, определяемое как (N)-протокол (см. рис. 2.2.). Это комплект правил, форматов и процедур, нужных для верного сотрудничества (N)-объектов. Между объектами возможно пара протоколов.
Рис.2.2.
Связь между смежными объектами в одной совокупности происходит через (N)-ТДС – точку доступа к (N)-работе. Между объектами возможно пара (N)-ТДС.
Под (N)-соединением понимается связь между двумя либо более (N+1)-объектами, которая осуществляется от одной (N)-ТДС до второй и в которой участвуют объекты (N) и всех нижележащих уровней.
Любой объект при передаче додаёт собственную нужную информацию. Эти, приобретаемые от верхнего уровня, включаются в поле (N)-ДП – данных протокола. Любой протокольный объект додаёт еще собственную данные – поле (N)-УИП –управляющую данные протокола. Приобретаемый в следствии протокольный блок данных (N)-ПБД поступает к объекту нижележащего уровня (см. рис.2.3.).
Рис.2.3.
К примеру, в протоколах SDLC и HDLC поступающий от сетевого уровня пакет помещается в информационную область кадра; также формируется служебная информация, включаемая в поля A, C, FCS и F (см. рис.2.4.).
Рис.2.4.
Уровни эталонной модели
ЭМ ВОС выделяет 7 представленных на рисунке 2.5 уровней, но оставляет открытым вопрос их наполнения.
Рис.2.5.
Для данной цели разрабатываются уже другие стандарты – на уровни, интерфейсы, работы.
Функции уровней
Произвольный (N)-уровень в общем случае включает в себя следующие функции.
1) Выбор протокола.
На уровне может употребляться пара протоколов, исходя из этого для организации (N)-соединения нужно, дабы (N)-объекты выбрали единый (N)-протокол — в противном случае они просто не осознают друг друга. Таковой выбор возможно сделан как заблаговременно, так и на протяжении установления соединения с применением идентификатора (N)-протокола.
К примеру, транспортный протокол Х.224 имеет 4 класса (являющихся, по существу, очень значительно отличающимися протоколами) плюс последовательность дополнительных опций.
2) расторжение и Установление соединения.
Должны выполняться 2 условия для установления соединения:
¨ должно иметься (N-1)-соединение;
¨ оба (N)-объекта должны быть готовы к исполнению обмена данными по протоколу.
Так для соединения объектов 7-го уровня нужно представление соединения представительным, сеансовым и т.д. уровнями впредь до физического.
Расторжение (N)-соединения возможно:
¨ обычным — по инициативе одного из связанных с ним (N+1)-объектов;
¨ аварийным — при происхождении неточностей в (N) либо одном из нижележащих уровней.
(N) и (N-1) соединения смогут быть свободными. Это указывает, что расторжение одного из них не обязательно ведет к расторжению другого. При расторжении (N)-соединения сохраненное (N-1)-соединение возможно использовано для другого (N)-соединения. При расторжении (N-1)-соединения допустимо сохранение (N)-соединения методом организации нового (N-1)-соединения.
3) расщепление и Мультиплексирование соединений.
При классическом варианте для каждого (N)-соединения употребляется одно (N-1)-соединение(рис.2.6.)
Мультиплексирование свидетельствует, что пара (N)-соединений пользуются одним (N-1)-соединением. Наряду с этим появляются следующие дополнительные неприятности:
Рис.2.6.
- нужна идентификация данных, относящихся к каждому (N)-соединению;
- управление каждым (N)-соединением должно учитывать пропускную свойство (N-1)-соединения, с учетом работы вторых N-партнеров.
При расщеплении — одно (N)-соединение применяет пара (N-1)-соединений (рис.7.). Наряду с этим появляются такие неприятности, как:
- управление используемыми (N-1)-соединениями;
- разделение данных для их передачи по различным (N-1)-соединениям, восстановление и контроль последовательности на приемной стороне.
Рис.2.7.
Как пример мультиплексирования возможно указать на сотрудничество протоколов Х.25/3 и Х.25/2. Протокол сетевого уровня Х.25/3 помогает для организации виртуальных соединений при передаче пакетов. Протокол Х.25/2 (HDLC) делает управление информационным каналом на двухточечном участке сети. Любой пакет 3-го уровня сопровождается заголовком, идентифицирующим виртуальное соединение (рис.2.8.).
Примером расщепления может служить транспортный уровень СОИ, что применяет сетевой протокол трудящийся по способу дейтаграмм. Тут пакеты смогут доставляться параллельно по нескольким сетевым маршрутам, а у получателя производится сборка сообщения.
Рис.2.8.
4) Передача обычных данных.
Это процедуры обмена (N)-объектами (N)-ПБД (любой из которых содержит (N)-УИП и (N)-ДП.
5) Передача срочных данных.
Срочные эти употребляются для целей синхронизации, экстренного уведомления о сбоях. Передача этих данных производится как бы по особенному подканалу, т.к. она не зависит от состояния потока обычных данных.
6) Управление потоком данных.
Различают 2 типа управления потоком:
- Протокольное — регулирует скорость передачи (N)-ПБД между (N)-объектами. Употребляется управляющая информация в ПБД (кредит передачи, окно), говорящая о способности партнера принять определенное количество данных.
- Интерфейсное — регулирует скорость передачи между (N+1) и (N)-объектами. Тут употребляются локальные (т.е. честные в пределах одной ограничения) и системы соглашения.
7) Сегментирование, сцепление и блокирование данных.
Протокольные блоки данных (ПБД) различных уровней в большинстве случаев отличаются по размерам. В случае, если размер (N+1)-ПБД больше большого поля данных в (N)-ПБД, то нужно на (N)-уровне выполнить сегментирование (см. рис.2.9.), т.е. разбиение (N+1)-ПБД на последовательные сегменты с длиной равной размеру поля данных (N)-ПБД.
Для обеспечения возможности последующей сборки (N+1)-ПБД нужно в (N)-ПБД вставлять особые эти (номер сегмента).
Блокирование — это функция (N)-уровня, разрешающая объединить пара (N+1)-ПБД в один (N)-ПБД. Это может потребоваться, в то время, когда большая протяженность (N+1)-ПБД довольно много меньше длины данных (N)-ПБД (см. рис.2.10.).
Сцепление — это функция (N+1)-уровня, разрешающая объединить пара (N+1)-ПБД в один блок. Наряду с этим (N)-уровень принимает сцепленный ПДБ как один (N+1)-ПБД.
Организация последовательности.
Услуги, предоставляемые (N)-уровню (N-1)-уровнем смогут не содержать сохранение порядка (очередности) доставки данных.
Рис.2.9. Рис.2.10
В этом случае (N)-уровень обязан сам поддерживать механизм сохранения последовательности. Для этого употребляются, к примеру, порядковые номера блоков данных.
Примером может служить работа протокола Х.25/3 в режиме дейтаграмм. В этом случае транспортные объекты восстанавливают последовательность за счет анализа порядковых номеров.
9) Защита от неточностей.
Функция защиты от неточностей включает 3 механизма:
- подтверждения;
- уведомления и обнаружения ошибок о них;
- возврата в исходное состояние.
Процедура подтверждения может употребляться (N)-объектами для гарантии от утраты (N)-ПБД более высокой, чем снабжает (N-1)-уровень. Для этого вводится идентификация каждого (N)-ПБД так, дабы получатель имел возможность информировать отправителя о его приеме. При неприема должны быть приняты меры для восстановления.
уведомления обнаружения и Механизм ошибок о них может использоваться (N)-протоколом для обеспечения более искажений и обнаружения высокой вероятности ошибок ПБД, чем это обеспечивается (N-1)-работой.
Процедура возврата в исходное состояние требуется по окончании утраты синхронизации между (N)-объектами-обозревателями. Наряду с этим вероятны утрата либо дублирование данных.
10) Маршрутизация.
Функция маршрутизации на (N)-уровне снабжает прохождение данных через цепочку (N)-объектов. Факт таковой маршрутизации не известен ни нижним, ни верхним уровням. Объект, участвующий в исполнении функции маршрутизации, может иметь таблицу маршрутизации.
Правила описания сервиса
Разглядим пример(рис.2.11.).
Протокольные объекты А и В устанавливают соединение между собой. Объект А передает протокольный блок REQ. Объект В, взяв REQ, отвечает блоком RES.
Сейчас посмотрим, как данный обмен должен быть связан с пользователем одолжений (N)-уровня.
CONNECT request – запрос установления соединения
CONNECT indication – уведомление о наличии запроса
CONNECT response – ответ пользователя на запрос
CONNECT confirmation – подтверждение установления соединения
Рис.2.11
Такие пользовательские сообщения взяли в стандартах ВОС наименование сервисных примитивов. Это концептуальные понятия, облегчающие описание последовательности событий при доступе к сервису уровня.
Для разглядываемого случая упрощенно будем иметь следующие помеченные графы для протокола установления соединения (см. рис.2.12.).
Сервис каждого уровня складывается из одолжений. Был рассмотрен пример одной из них – по установлению соединения. В общем же случае услуги смогут быть необходимыми и факультативными (опции), подтверждаемыми и неподтверждаемыми.
Подтверждаемые услуги – это те, предоставление которых связано с обменом комплектом сервисных подтверждения и примитивов запроса.
Рис.2.12.
Элементы описания сервиса стандартизованы МОС в документе IS 8509. В соответствии с этому стандарту сервис уровня определяется через следующую абстрактную модель:
Обозначение каждого сервисного примитива складывается из трех элементов: обозначение уровня ВОС; имя примитива; тип примитива.
Уровни обозначаются следующим образом: А — прикладной; Р — представления; S — сеансовый; T — транспортный; N — сетевой; DL — канальный; PL — физический.
Имя примитива определяется видом услуги. К примеру,
CONNECT – установление соединения;
RESET – сброс;
DATA – передача данных.
Сервисные примитивы разделяются на 4 типа(рис.2.14.):
Рис.2.14.
запроса – request; индикации – indication;
ответа – response; подтверждения – confermation.
Так, к примеру, примитив P-CONNECN request – это примитив представительного сервиса, относится к услуге по установлению соединения и есть запросом.
Стандартом оговариваются кроме этого формальные правила составления диаграмм последовательности примитивов.
Вертикальные линии изображают точки доступа к сервису (N)-ТДС и, помимо этого, течение времени (сверху-вниз).
При явной причинно-временной зависимости между сервисными примитивами они соединяются прямыми линиями. При отсутствии явной зависимости — употребляется тильда.
Уточненная модель поставщика сервиса, продемонстрированная на рисунке, включает две очереди (А-В) и (В-А).
Пользователь может помещать в очередь содержимое сервисных примитивов (их параметры) и октеты данных. Кое-какие параметры смогут вставляться поставщиком, к примеру, относящиеся к разъединению.
В исходный момент очередь безлюдна. Элементы передаются при помощи очереди FIFO по соединению. На втором финише извлекаются из очереди в порядке следования (рис.2.15.).
Рис.2.15.
3.Верхние уровни модели OSI
В рамках неспециализированной концепции OSI созданы советы по внутреннему содержанию уровней. По большей части эту работу проводили следующие интернациональные организации:
q CCITT (МККТТ) – интернациональный консультативный комитет по телефонии и телеграфии;
q ISO (МОС) – интернациональная организация по стандартизации;
Прикладной уровень
Задача уровня – обеспечение сотрудничества между прикладными процессами, расположенными в различных вычислительных совокупностях. Данный уровень содержит все функции, отсутствующие на более низких уровнях, но нужные для сотрудничества открытых совокупностей.
Прикладной уровень – это самый близкий к пользователю уровень OSI. Он отличается от остальных уровней тем, что не снабжает одолжений ни одному из вторых уровней OSI; но он обслуживает ими прикладные процессы, лежащие за пределами модели OSI. Примерами таких прикладных процессов могут служить программы обработки электронных таблиц, текстовые процессоры, программы банковских терминалов и т.д.
Прикладной уровень определяет наличие предполагаемых партнеров для связи, синхронизирует совместно трудящиеся прикладные программы, и устанавливает соглашения по процедурам управления и устранения ошибок целостностью передаваемой информации. Данный уровень принимает кроме этого ответ о наличии достаточных ресурсов для предполагаемой связи.
Прикладные протоколы — это соглашения по процедурам обслуживания прикладных пользователей и процессов сети, каковые:
- имеют стандартную форму для задач одного класса приложений;
- нейтрализуют для пользователей различия хост-совокупностей.
Прикладные протоколы подразделяются на 2 класса:
Системно-ориентированные (базисные). Это, к примеру:
- Протокол обмена управляющей информацией CMIP (Common Management Information Protocol);
- протокол одолжений каталогов DS (Directory Services), созданный на базе советы Х.500 МККТТ.
Проблемно-ориентированные. К ним относятся, к примеру:
- удаленный ввод, обработка и передача заданий JTM (Job Transfer and Managemant);
- обработка сообщений MHS (Massage Handling Systems);
- управление и передача файлами FTAM (File Transfer, Access and Management);
- распределенная обработка документов ODIA (Office Document Interchange Architecture);
- доступ к распределенной базе данных DBAM (Database Access and Management);
- обмен сообщениями в распределенной среде MIDA (Distributed Application for Message Interchange) и т.д.
На рисунке 3.1 продемонстрирована обобщенная структурная схема прикладного уровня, включающая:
— SASE – особые прикладные сервисные элементы;
— CASE – стандартные прикладные сервисные элементы;
— UE – элемент пользователя;
— SAP – точка доступа к услугам.
В данной схеме UE – это та часть прикладного процесса, которая конкретно связана с его работой с сетью. Стандартные прикладные сервисные элементы нужны для обращения к точкам выполнения и доступа административных функций уровня. Примерами CASE являются:
— сервисный элемент управления ассоциацией (Association Control Service Element – ACSE);
— сервисный элемент получения доступа к операциям отдаленного устройства (Remote Operations Service Element – ROSE);
— сервисный элемент надежной передачи (Reliable Transfer Service Element –- RTSE).
Прикладные протоколы смогут взаимодействовать в рамках прикладного уровня по иерархической схеме, как это продемонстрировано на рисунке 3.2.
Рис.3.1. Рис.3. 2.
Уровень представления
Главные задачи уровня – преобразование данных (их форматов, кодов, структур) передаваемых между прикладным процессом и сеансовым уровнем, и исполнение при сжатия и необходимости шифрования данных.
Главная же функция уровня представления – согласование синтаксиса данных. (На прикладном уровне согласуется семантика, т.е. смысловое представление). К синтаксису относятся: используемый комплект знаков, кодировка данных, методы представления данных на экранах дисплеев, при печати и т.д.
В каждом соединении между открытыми совокупностями выделяются 3 синтаксиса (см рис.3.3).
Уровень представления содержит средства для преобразования между синтаксисом передачи и двумя вторыми синтаксисами.
Рис.3.3.
В первых реализациях этого уровня делалась попытка преодолеть различия лишь в кодировке данных, к примеру, различии применяемых открытыми совокупностями кодов — ASCII и EBCDIC. Для того чтобы рода системы используются на данный момент, к примеру, в рамках протокола электронной почты MIME. В том месте используются особая совокупность кодирования BASE 64.
После этого была предложена концепция виртуального устройства (процесса), т.е. условного, гипотетического, имеющего обычный комплект правил и характеристик функционирования. Таковой подход разрешает прикладному процессу взаимодействовать лишь с одним типом (виртуальным) устройства или процесса, а не с сотнями и десятками типов, применяемых в современных сетях. Были введены три главных типа виртуальных устройств:
- виртуальный терминал;
- виртуальный файл;
- виртуальное задание.
Примером протокола виртуального терминала есть протокол Telnet стека TCP/IP.
Современная реализация данного уровня базируется на спецификации абстрактного синтаксиса ASN.1 (Abstract Syntax Notation One), которая изложена в советах МОС ISO 8824.2 и ISO 8825.2.
Пользователи представительной работы на этапе установления соединения согласовывают между собой допустимое при передаче множество абстрактных синтаксисов. В ходе передачи допустимо изменение этого согласованного множества.
Объект-отправитель обрисовывает передаваемые эти, пользуясь правилами ASN.1. На приемной стороне производится обратное преобразование данных к тому виду, что принят в данной открытой совокупности.
Передаваемые между абонентами элементы данных предваряются особым ярлыком, что содержит следующие поля.
§ Идентификатор класса (значения: универсальный, прикладной, контекстно-зависимый, персональный).
§ Показатель формы (примитивный либо комбинированный).
§ Значение (имеется 27 типов, среди них: Boolean, Integer, NumberString, VideoTextString, GraphicString и т.д.).
Для защиты передаваемой информации может употребляться один из способов симметричного либо ассиметричного шифрования. Симметричное шифрование основано на применении у получателя и отправителя однообразного тайного ключа. Наряду с этим используется 2 типа шифров: блочные и поточные. Первые преобразуют блок входных данных (некоего количества) в блок шифротекста (по большому счету говоря, другого количества). Вторые — открытый текст в шифротекст по одному биту за такт.Среди блочных шифров самый известен стандарт США на шифрование данных DES (Data Encryption Standard). Тут две станции применяют одинаковый 56-битовый ключ (рис.3.4). Входные эти считываются в буферный регистр порциями по 64 бит.
Рис.3.4.
Эти 64 бита перемешиваются с 56-разрядным ключом и порождают 64 бита выходных данных. Разгадка ключа может настойчиво попросить до 264 испытаний комбинаций. Использование сокращенных способов раскрытия ключа затрудняется применением сложных методов перемешивания данных. Этот метод симметричного шифрования реализуется аппаратно в виде специальной микросхемы. В обстановках, в то время, когда надежность метода DES думается недостаточной, употребляется его модификация — Triple-DES. В этом случае открытый текст шифруется алгоритмомDES на первом ключе, полученный шифротекст – на втором и, наконец, эти, полученные по окончании второго шага, — на третьем. Все три ключа выбираются независимо друг от друга.
Подобный по стойкости и скорости к анализу блочный шифр IDEA был предложен в первой половине 90-ых годов XX века в качестве европейского стандарта. Тут используется ключ длиной 128 бит. Компанией Northern Telecom был предложен еще один блочный шифр CAST с 128-битовым ключом. Имеется и еще множество аналогичных шифров, к примеру, шифры RC2 и RC4,причеи RC4 рекомендован для поточного шифрования.
Главная мысль ассиметричного шифрования содержится в применении пары ключей. Первый — открытый ключ (Public Key) дешёв всем и употребляется теми, кто планирует послать сообщение обладателю ключа. Второй — персональный ключ (Private key)— известен лишь обладателю. Эти два ключа, в большинстве случаев, взаимозаменяемы. Данные, зашифрованную на личном ключе, расшифровать возможно лишь применяя открытый ключ, и напротив. Это свойство лежит в базе концепции цифровой подписи, обширно используемой в современных сетях. К ассиметричным шифрам относятся RCA и PKCS (протяженность ключа до 1024 бит).
Для сокращения количества передаваемых данных на уровне представления довольно часто используется сжатие данных. Способы, применяемые для сжатия, подобны рассмотренным для модемов в разделе «Удаленный доступ к сети».
Сеансовый уровень OSI
Главная задача уровня – это управление диалогом между обслуживаемыми пользователями (т.е. объектами прикладного и представительного уровней) (рис.3.5.). Диалог может включать обмен обычными и срочными данными, возможно дуплексным и полудуплексным.
Рис.3.5.
Применение сеансового уровня не всегда нужно. К примеру, в случае, если обмен данными между приложениями производится без установления логического соединения, то протокол сеансового уровня полностью не нужен.
Ответственной услугой этого уровня есть синхронизация для защиты от вероятных неточностей. Для этого в поток данных вставляются метки синхронизации (контрольные точки), что разрешает при неточности возвратиться в подтвержденную точку и вернуть передачу с этого места.
Вводится кроме этого функция управления активностью. Диалог между партнерами (открытыми совокупностями) разбивается на отрезки активности, любой из которых возможно идентифицирован. Это разрешает прервать при жажде диалог, а после этого снова в любую секунду его продолжить, начиная со следующего участка активности. Так уровень сеанса позволяет пользователям вести диалог, повторяя части, считающиеся ошибочными, разрешая клиентам прерывать диалог и продолжать его в любое более позднее время.
На практике на данный момент только немногие приложения применяют сеансовый уровень и он редко реализуется в виде отдельного протокола, не смотря на то, что функции этого уровня довольно часто объединяют с функциями вторых уровней и реализуют в одном протоколе (к примеру, NetBIOS, SMB и т.д.).
Самый подробно функции сеансовой сеансового протокола и службы созданы МОС и МККТТ в следующих документах:
q Определение сеансовой работы с установлением соединения – ISO 8326, МККТТ Х.215.
q Определение сеансового протокола, поддерживающего сеансовую работу с установлением соединения – ISO 8327, МККТТ Х.225.
Остановимся коротко на последовательности базисных процедур и понятий сеансового протокола.
Главные понятия.
Маркер – это атрибут сеансового соединения. что динамически назначается одному из сеансовых объектов. Взявший маркер объект имеет необыкновенное право инициировать исполнение услуги, контролируемой данным маркером.
В сеансовом соединении смогут быть 4 маркера:
- маркер данных;
- маркер завершения;
- маркер малой синхронизации;
- маркер громадной синхронизации.
В потоке разрешённых могут размещаться точки синхронизации. Они идентифицируются последовательными возрастающими номерами. Эти точки смогут быть точками малой и громадной синхронизации. Независимо от заглавия все они приобретают последовательные номера. Отличие содержится в том, что точка громадной синхронизации требует необходимого подтверждения, а точка малой – не требует (может по большому счету не подтверждаться).
Промежутки диалога между точками громадной синхронизации именуются диалоговыми элементами (см. рис.3.6.).
Рис.3.6.
Активность – это последовательность диалоговых элементов, которая есть некоей логически завершенной частью работы (см. рис.3.7.). На одном сеансовом соединении возможно пара последовательных активностей.
Рис.3.7.
Ресинхронизация – помогает для принудительной координации взаимодействующих сторон при сеансовом сотрудничестве. Ресинхронизация возможно инициирована любым пользователем сеансового сервиса. В момент ресинхронизации пропадают все сведенья находящиеся в стадии передачи по соединению. Ресинхронизация разрешает перераспределить маркеры между сторонами и согласовать новое значение номера точки синхронизации для продолжения обмена.