Несколько странным может показаться введение отдельного параграфа в конце второго тома для обсуждения неоднократно упоминавшейся ранее модели взаимодействия открытых систем OSI. Но, во-первых, автор давно обещал это сделать, во-вторых, этого требует специфика рассматриваемого в данной главе протокола Х.25, а в-третьих, книга подходит к концу, и другого случая может и не быть.
Многоуровневый комплект протоколов, известный как модель взаимодействия открытых систем (OSI - Open Systems Interconnection), разработан в 1984 году Международной организацией по стандартизации ISO совместно с Сектором стандартизации электросвязи ITU-T, называвшимся в те времена Международным консультативным комитетом по телеграфии и телефонии (МККТТ), для обеспечения обмена данными между компьютерными сетями. Структура модели OSI представлена на рис. 9.1.
Применительно к системам электросвязи модель OSI служит для того, чтобы четко определить структуру множества функций, поддерживающих информационный обмен между пользователями услугами системы электросвязи, которая, в общем случае, содержит в себе сеть связи. Подход, использованный в модели OSI, предусматривает разделение этих функций на семь «слоев» (layers) или «уровней», расположенных один над другим. С точки зрения любого уровня все нижележащие уровни предоставляют ему «услугу транспортировки информации», имеющую определенные характеристики. То, как реализуются нижележащие уровни, для вышележащих уровней не имеет значения. С другой стороны, для нижних уровней безразличны как смысл поступающей от верхних уровней информации, так и то, с какой целью она передается.
Такой подход предусматривает стандартизацию интерфейсов между смежными уровнями, благодаря чему реализация любого уровня становится независимой от того, каким образом реализуются остальные уровни.
Уровень 1 (или физический уровень) обеспечивает прозрачную передачу потока битов по каналу, организованному между смежными узлами сети с использованием той или иной передающей среды, и формирует интерфейс с этой средой. Характеристики передачи (в частности, коэффициент битовых ошибок BER) определяются свойствами этого канала и от функций уровня 1 не зависят.
Уровень 2 (или уровень звена данных) формирует двусторонний канал связи (то есть прямое звено связи между смежными узлами сети), используя для этого два предоставляемых уровнем 1 цифровых канала с противоположными направлениями передачи. Важнейшие функции уровня 2 - обнаружение и исправление ошибок, которые могут возникнуть на уровне 1, что делает независимым качество услуг этого уровня от качества получаемых «снизу» услуг передачи битов.
Уровень 3 (или сетевой уровень) формирует так называемые сетевые услуги, маршрутизацию и коммутацию соединений, обеспечивающие перенос через сеть информации, которой обмениваются пользователи открытых систем, размещенных в разных (и, в общем случае, несмежных) узлах сети.
Уровень 4 (или транспортный уровень) осуществляет «сквозную» (от одного конечного пользователя до другого) оптимизацию использования ресурсов (то есть сетевых услуг) с учетом типа и характера связи, избавляя своего пользователя от необходимости принимать во внимание какие бы то ни было детали, связанные с переносом информации. Этот уровень всегда оперирует со всей связью в целом, дополняя, если это требуется, функции уровня 3 в части обеспечения нужного конечным пользователям качества услуг.
Уровень 5 (или уровень сеанса) обеспечивает координацию («внутри» каждой связи) взаимодействия между прикладными процессами. Примеры возможных режимов взаимодействия, которые поддерживаются уровнем 5: дуплексный, полудуплексный или симплексный диалог.
Уровень 6 (или уровень представления) производит преобразование из одной формы в другую синтаксиса транспортируемых данных. Это может быть, например, преобразование ASCII в EBCDIC и обратно.
Уровень 7 (или прикладной уровень) содержит функции, связанные с природой прикладных процессов и необходимые для удовлетворения тех требований, которые существенны с точки зрения взаимодействия прикладных процессов в системах А и В (рис. 9.1), или, говоря иначе, с точки зрения доступа этих процессов к среде OSI, Так как это самый верхний уровень модели OSI, он не имеет верхней границы.
Таким образом, функции уровней 1-3 обеспечивают транспортировку информации из одного пункта территории в другой (возможно, более чем через одно звено, то есть с коммутацией) и потому связаны с отдельными элементами сети связи и с ее внутренней структурой. Функции уровней 4-7 относятся только к «сквозной» связи между конечными пользователями и определены таким образом, что они не зависят от внутренней структуры сети.
Поскольку в силу тех или иных специфических особенностей разных уровней в них могут формироваться и обрабатываться информационные блоки различных размеров, в большинстве уровней предусматриваются, в числе прочих, функции сегментации блоков данных и/или их объединения.
Любой функциональный уровень, например, уровень N (или N-уровень), содержит некоторое множество функций, которые выполняет соответствующая аппаратно-программная, т.е. физическая, подсистема (ее удобно называть подсистемой ранга N или N-подсистемой}. N-подсистема содержит в себе активные элементы, которые реализуют определенные для нее функциональные возможности (либо все их множество, либо каждый элемент выполняет вполне определенную часть этого множества). В англоязычной литературе такого рода активный элемент принято называть entity, a в литературе на русском языке чаще всего используется термин логический объект.
Итак, логическим объектом уровня N (или логическим N-обьектом, или, если из контекста ясно, о чем идет речь, то просто N-объектом) называется множество функций, привлекаемых N-уровнем к обслуживанию конкретной связи между (N+1)-подсистемами.
Процесс обмена информацией между двумя физическими системами через сеть можно интерпретировать как процесс взаимодействия двух открытых систем, размещенных в разных географических точках. Взаимодействие это связано с тем, что пользователям той и другой системы нужно обмениваться данными, необходимыми для выполнения тех или иных задач. Обе взаимодействующие системы имеют многоуровневую архитектуру, причем функции любого одного и того же уровня в той и другой системе идентичны (или, по меньшей мере, согласованы).
В подобных условиях уместно говорить о том, что на каждой фазе взаимодействия между двумя системами имеет место взаимодействие между подсистемами одного ранга, размещенными в системе А и в системе В. При этом подсистема ранга (N+1) в системе, которая инициирует данную фазу (например, в системе А), должна завязать диалог с подсистемой того же ранга (N+1) в системе, привлекаемой к участию в данной фазе (например, в системе В). (N+1)-подсистема, размещенная в системе В, должна, в свою очередь, поддержать продолжение диалога. Иными словами, должна быть организована информационная связь между подсистемами одного ранга, размещенными в разных системах (peer-to-peer communication).
При организации и в процессе такой связи подсистема ранга (N+1), находящаяся в системе А, обращается к услугам подсистемы ранга N в той же системе А. Логический (N+l)-o6ъект системы А передает к N-объекту своей системы запрос, конечная цель которого состоит в том, чтобы вызвать ответную реакцию логического (N+ 1)-объекта системы В. На пути к этой цели N-объект системы А обращается к услугам (N-1)-объекта своей системы, тот, в свою очередь, - к услугам (N-2)-объекта и т.д., вплоть до логического объекта уровня 1, который обеспечивает использование физической среды для передачи битов, несущих запрос от системы А к системе В. Логический объект уровня 1 системы В, приняв эти биты, формирует соответствующую индикацию для логического объекта уровня 2 своей системы, тот сообщает об этом логическому объекту уровня 3 и т.д. «вверх» до тех пор, пока индикация приема запроса не достигнет логического (N+ 1)-объекта системы В.
Далее, в общем случае, происходит обратный процесс. Отклик логического (N+1)-объекта системы В передается к системе А с привлечением услуг N-объекта, затем - (N-1)-объекта и т.д. в системе В, а прием уровнем 1 системы А битов, которые доставили отклик, интерпретируется логическими объектами системы А как подтверждение системой В приема отправленного к ней запроса. Это подтверждение проходит в системе А уже понятным читателю путем «вверх», пока не достигнет отправившего запрос логического (N+1)-объекта.
Сказанное иллюстрирует рис. 9.2, на котором запрос, индикация, отклик и подтверждение фигурируют как имена сервисных примитивов.
Взаимодействие между логическими (N)-объектами двух взаимодействующих открытых систем происходит в соответствии с (N)-протоколом. Информация, обмен которой поддерживает (N)-протокол, оформляется в так называемые протокольные блоки данных (N)-PDU (protocol data units).
Для передачи (N)-PDU логический (N)-объект обращается к услугам расположенного ниже (N-1 )-уровня и передает к нему свои PDU в составе сервисных блоков данных (N-1)-SDU (service data units), используя сервисные (N-1)-примитивы. Логический (N-1)-объект одной системы взаимодействует с логическим (N-1)-объектом другой системы в соответствии с (N-1)-протоколом, вводя содержимое (N-1)-SDU в протокольные блоки данных (N-1)-PDU, то есть дополняя каждый (N-1)-SDU управляющей информацией протокола (N-1)-PCI (protocol control information). Далее, для передачи (N-1)-PDU происходит обращение к услугам (N-2)-ypовня и т.д.
Сказанное иллюстрирует рис. 9.3.