Произвольный (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)-ПБД.
8) Организация последовательности.
Услуги, предоставляемые (N)-уровню (N-1)-уровнем могут не содержать сохранение порядка (очередности) доставки данных.
Рис.2.9. Рис.2.10
В этом случае (N)-уровень должен сам поддерживать механизм сохранения последовательности. Для этого используются, например, порядковые номера блоков данных.
Примером может служить работа протокола Х.25/3 в режиме дейтаграмм. В этом случае транспортные объекты восстанавливают последовательность за счет анализа порядковых номеров.
9) Защита от ошибок.
Функция защиты от ошибок включает 3 механизма:
· подтверждения;
· обнаружения ошибок и уведомления о них;
· возврата в исходное состояние.
Процедура подтверждения может использоваться (N)-объектами для гарантии от потери (N)-ПБД более высокой, чем обеспечивает (N-1)-уровень. Для этого вводится идентификация каждого (N)-ПБД так, чтобы получатель мог информировать отправителя о его приеме. В случае неприема должны быть приняты меры для восстановления.
Механизм обнаружения ошибок и уведомления о них может применяться (N)-протоколом для обеспечения более высокой вероятности обнаружения ошибок и искажений ПБД, чем это обеспечивается (N-1)-службой.
Процедура возврата в исходное состояние требуется после потери синхронизации между (N)-объектами-корреспондентами. При этом возможны потеря или дублирование данных.
10) Маршрутизация.
Функция маршрутизации на (N)-уровне обеспечивает прохождение данных через цепочку (N)-объектов. Факт такой маршрутизации не известен ни нижним, ни верхним уровням. Объект, участвующий в выполнении функции маршрутизации, может иметь таблицу маршрутизации.
|
|