Перейти в оглавлению раздела

Часть VIII

9.2. Функции уровней и функциональные особенности уровней



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

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

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

1) Выбор протокола и выбор версии протокола (Protocol selection and Protocol version selection)

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

    Функция выбора протокола и его версии используется для реализации механизма согласования или переговоров (negotiation of protocol version), выполняющегося в начальной фазе передачи данных в режиме с соединением. Суть его состоит в том, что в начале взаимодействия вызывающая (N)-сущность посылает в управляющей информации (N)-протокольного блока данных список поддерживаемых ей протокольных версий. Этот список возможностей анализируется вызываемой (N)-сущностью, на основе чего принимается взаимно согласованное решение о выборе протокола.

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

2) Установление и разъединение соединения (Connection establishment and release)

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

    Организация (N)-соединения может проводиться совместно с установлением (N-1)-соединения, если (N-1)-протокол позволяет передавать в фазе установления (N-1)-соединения данные, относящиеся к (N)-соединению.

    Разъединение (N)-соединения в нормальных условиях инициируется одной из связанных с ней (N+1)-сущностью. Расторжение (N)-соединения может также инициироваться одной из поддерживающих его (N)-сущностей в результате возникновения сбоя или ошибки в (N)-уровне или в нижележащих уровнях. В зависимости от различных условий расторжение (N)-соединения может привести или не привести к потере данных (N+1)-пользователя.

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

3) Мультиплексирование и расщепление соединений

    Между (N)- и (N-1)-соединениями возможны следующие варианты соответствия, которые иллюстрируются на рис.9.5:

a) взаимно однозначное соответствие;

b) мультиплексирование, т.е. несколько (N)-соединений используют одно (N-1)-соединение;

c) расщепление, а именно, одно (N)-соединение использует несколько (N-1)-соединений.

    Для организации мультиплексирования необходимо использование дополнительных функций, а именно:

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

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



Рис.9.5. Соотношение (N)- и (N-1)-соединений

4) Передача нормальных данных

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

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

5) Передача срочных данных

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

6) Управление потоком данных

    Различают два типа управления потоком:

  • протокольное управление, при котором регулируется скорость передачи (N)-протокольных блоков данных между (N)-сущностями;
  • интерфейсное управление, при котором регулируется скорость передачи данных между (N+1)-и (N)-сущностями.

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

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

7) Сегментирование, блокирование и сцепление данных

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

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

    Сцепление есть функция (N+1)-уровня, позволяющая объединить несколько (N+1)-протокольных блоков данных в один блок. При этом (N)-уровень воспринимает сцепление протокольных блоков данных как один (N+1)-протокольный блок данных.

    Назначение этих функций иллюстрируется на рис.9.6.

a) передача (N)-сервисных блоков данных без сегментирования

b) передача (N)-сервисных блоков данных с сегментированием/сборкой (используется несколько (N)-протокольных блоков данных для передачи одного (N)-сервисного блока данных)

c) передача (N)-сервисных блоков данных с блокированием/деблокированием (используется один (N)-протокольный блок данных для передачи нескольких (N)-сервисных блоков данных)

d) передача (N)-протокольных блоков данных со сцеплением/выделением

Рис. 9.6. Сегментирование и блокировка (укрупнение) данных

8) Организация последовательности

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

9) Защита от ошибок

    Функция защиты от ошибок состоит из трех компонентов:

  • подтверждения передачи данных;
  • обнаружения ошибок и уведомления о них;
  • возврата в исходное состояние.

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

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

    Функция возврата в исходное состояние предназначена для восстановления взаимосвязи после потери синхронизации между (N)-сущностями-корреспондентами. Она устанавливает (N)-сущности-корреспонденты в заранее определенное состояние с возможной потерей или дублированием данных.

10) Маршрутизация

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

Предыдущая глава Оглавление