9.1. Модель взаимодействия открытых систем
9.2. Сети с коммутацией пакетов Х.25
9.1. Модель взаимодействия открытых систем
Несколько странным может показаться введение отдельного параграфа в конце второго тома для обсуждения неоднократно упоминавшейся ранее модели взаимодействия открытых систем 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.
9.2. Сети с коммутацией пакетов Х.25
Х.25 представляет собой комплект протоколов трех нижних уровней модели OSI, разработанный МККТТ для интерфейса между терминалами пользователей и сетью с коммутацией пакетов. Протоколы Х.25 использовались для создания всемирной сети коммутации пакетов. В этой сети информация пользователей инкапсулируется (заключается) в пакеты, содержащие данные об адресации, о последовательности пакетов и контроле ошибок, а также сведения о пользователе или приложении. Пакеты передаются по виртуальным каналам между терминалом Х.25 конечного пользователя DTE (Data Terminal Equipment) и окончанием канала двусторонней передачи данных DCE (Data Circuit-Terminating Equipment), используемого в качестве канала доступа к сети пакетной коммутации.
Первая рекомендация Х.25 была утверждена на 6-й пленарной ассамблее МККТТ в 1976 г., а переработанные версии появлялись в 1980 и 1984 гг. К началу 80-х годов протоколы Х.25 уже широко применялись для передачи данных во всем мире, особенно между удаленными терминалами и центральными системами. Стандарты ISDN, рассмотренные в главах 3, 4 данного тома, разрабатывались с учетом поддержки сетей Х.25.
Протокол Х.25 использует неоднократно упоминавшийся в этой книге протокол доступа к звену данных LAPB (Link Access Protocol - Balanced), который был специально разработан для обеспечения надежной передачи данных через звено. Первоначально ориентированный на каналы с низким качеством, протокол LAPB использует принцип, согласно которому каждый узел в сети должен проверять каждый блок данных уровня 2 (кадр), как только он получен, и определять, может ли этот кадр маршрутизироваться к ближайшему узлу или он должен быть передан повторно. Другой принцип, который связан с Х.25, заключается в том, что повторная передача осуществляется к узлу, который детектировал ошибку, из ближайшего к нему узла, принявшего верный кадр. Это означает, что каждый узел должен обеспечивать контроль, что требует затрат на оборудование и вводит задержки в маршрутизацию данных.
Во время появления сетей Х.25 (а они функционируют с конца 60-х годов) такой уровень контроля ошибок был необходим, поскольку он учитывал характеристики существовавших тогда физических коммуникационных линий. Х.25 хорошо работает в ситуациях, когда не могут быть обеспечены каналы связи с высокой надежностью. В областях, где развернуты оптоволоконные сети, Х.25 вряд ли может считаться подходящим выбором, тем более, при наличии такой технологии, как Frame Relay (ретрансляция кадров).
На рис. 9.4 показан пример взаимодействия сетей Х.25 с использованием межсетевых шлюзов Х.75 и устройств сборки-разборки пакетов PAD, которые обеспечивают преобразование различных потоков данных (SNA, асинхронный и т.д.) в протокол Х.25. Фактически протокол Х.25 является интерфейсом между абонентом и сетью, а Х.75 является протоколом для использования между узлами сети коммутации пакетов. Оба протокола аналогичны, но протокол Х.75 предоставляет услуги, которые запрашиваются внутри сети с коммутацией пакетов и не касаются абонентских интерфейсов. Кроме того, Х.75 может рассматриваться только как протокол сетевого уровня, в то время как Х.25 поддерживает повторную передачу, сегментирование и сборку блоков данных.
9.3. Архитектура протокола Х.25
Архитектура Х.25 содержит три уровня, соответствующие трем нижним уровням модели OSI (рис. 9.5). На физическом уровне протокол Х.25 определяет электрический интерфейс между DTE и DCE. Стандарты Х.25 физического уровня приведены в рекомендациях Х21 и Х21-бис.
Второй уровень интерфейса содержит функции, реализующие процедуру управления звеном данных HDLC (High-level Data Link Control Procedure), и отвечает за надежную передачу данных через физический стык. В Х.25 протоколом уровня звена передачи данных является протокол LAPB. Этому протоколу отводится роль формирования кадров, содержащих в информационном поле передаваемые данные. Кадр в процедуре HDLC переносит через интерфейс Х25 один пакет данных. Протокол LAPB применяется для формирования двухточечного соединения между DCE и DTE. Никаких спецификаций мультиплексирования каналов (аналогичных LAPD) не существует. LAPB используется для передачи информации уровня 3 Х.25, но, как уже отмечалось, этот протокол является не самым элегантным методом передачи данных через интерфейсы ISDN. Информацию уровня 3 Х.25 можно поместить в кадр LAPD.
Третий уровень содержит функции, необходимые для упаковки данных в пакеты и для создания виртуальных каналов, по которым эти пакеты передаются. Управление потоком осуществляет механизм окна, связанный с каждым виртуальным каналом. Средства сброса и рестарта дают возможность выполнять в интерфейсе процедуры восстановления после ошибок.
Формат пакетов Х.25 имеет вид, показанный на рис. 9.6 [59]. Первый разряд К/И в байте 3 указывает, является ли пакет информационным или управляющим. Остальная часть байта 3 служит для указания типа управляющего пакета. В следующем байте две группы по 4 разряда служат для указания длины адресного поля вызывающего и вызываемого DTE, соответственно. Затем следуют сами эти поля. В режиме быстрого поиска в конце пакета могут быть добавлены данные пользователя (до 16 байтов).
Фактически различия между архитектурами Х.25 и OSI имеют место именно на этом, сетевом уровне, который по терминологии Х.25 называется уровнем пакетов. Протокол Х.25 ориентирован на соединения в виде виртуальных каналов, которые организуются с использованием ресурса постоянно существующих логических каналов. Каждому DTE доступно до 4095 таких каналов. Точнее говоря, предусматривается до 15 групп логических каналов по 255 каналов в каждом. Группа адресуется четырьмя, а канал - восемью битами в заголовке пакета. Двоичные значения этих полей означают номер группы и номер канала соответственно. Существует взаимно однозначное соответствие между номерами логических каналов в DTE и DCE. Фактическое количество логических каналов, которые может использовать DTE, определяется администрацией сети. Логические каналы используются для организации двух типов виртуальных соединений - устанавливаемых по запросу и постоянных. Иными словами, пакетный уровень реализует два типа услуг предоставления виртуальных каналов - услуги оперативного предоставления виртуального соединения (Virtual Call service, VC) и услуги предоставления постоянного виртуального канала связи {Permanent Virtual Circuit service, РУС),
Виртуальные соединения по запросу (virtual calls) формируются процедурами создания и аннулирования соединения, т.е. пакеты маршрутизируются по виртуальному каналу, организуемому в сети протоколом третьего уровня перед передачей пакетов. Процедура создания инициируется со стороны DTE, посылающего к DCE по свободному логическому каналу пакет запроса соединения. Протокол Х25 предполагает выбор свободного канала с наибольшим номером. Пакет запроса должен в явном виде содержать адрес получателя. По получении пакета с запросом соединения DCE передает этот пакет через сеть к DCE, с которым связан вызываемый DTE, причем на вызываемой стороне выбирается свободный логический канал с наименьшим номером. Вызываемый DTE имеет возможность принять или отвергнуть поступивший запрос, а вызывающий DTE получит ответ, указывающий на то, принял или нет запрос вызываемый DTE. В случае принятия запроса между двумя DTE организуется виртуальное соединение и наступает фаза переноса данных. В случае же, когда соединение по какой-либо причине не может быть установлено, сеть возвращает вызывающему DTE пакет разъединения, содержащий информацию о соответствующей причине. Нарушить установленное соединение может любой из DTE, в нем участвующих.
Постоянный виртуальный канал связи (permanent virtual circuit) представляет собой постоянное соединение между двумя DTE и поддерживается сетью все время. Процедуры оперативного создания и аннулирования для него не нужны, и постоянный виртуальный канал связи подобен, таким образом, выделенной линии связи.
9.4. Применения протокола Х.25
Протокол Х.25 широко используется уже почти четверть века, в первую очередь, для создания всемирной сети с коммутацией пакетов.
Ближе к тематике данной книги применение Х.25 в системах централизации технической эксплуатации ТфОП. Именно таким образом, например, организованы центры дистанционного технического обслуживания и эксплуатации (MMSW) коммутационных станций DX-200 (Nokia) и АТСЦ-90 (ЛОНИИС).
Другая сфера применения Х.25 связана также с дистанционным, но не техническим обслуживанием АТС. Речь идет о мониторинге телефонных разговоров. Практика мониторинга телефонных линий существует достаточно давно: первые упомянутые в литературе устройства для мониторинга телефонных переговоров в России были установлены в помещении IV Государственной думы в 1913 году [45]. Сегодня организационные аспекты в этой области регламентируются законом «Об оперативно-розыскной деятельности в Российской Федерации» от 13.03.92, но более глубокая, по мнению автора, регламентирующая формула появилась на 19 веков раньше и принадлежит Ювеналу: Quis custodiet ipsos custodes? (Кто устережет самих сторожей?). По этой причине технические детали данной сферы применения протокола Х.25 останутся за пределами книги, а внимание будет уделено другой области - ISDN.
Стандарты ISDN разрабатывались так, чтобы сети Х.25 можно было встроить в ISDN. Взаимодействие Х.25 и ISDN описывается в рекомендации ХЗ1. По существу, в этой рекомендации определяются два основных варианта обслуживания терминального оборудования Х.25 сетью ISDN (доступа к услугам связи с коммутацией пакетов через сеть ISDN).
При использовании варианта, обозначенного в рекомендации как Case А, сеть ISDN предоставляет оборудованию Х.25 прозрачный канал (коммутируемый или полупостоянный) для доступа к шлюзу сети Х.25. Устройство DTE Х.25 запрашивает через терминальный адаптер ISDN соединение с устройством DCE Х.25 в режиме виртуального канала. Для установления соединения ISDN между терминальным адаптером и шлюзом используется D-канал и протоколы ISDN. Сигнализация по D-каналу ISDN заканчивается в АТС, а собственно виртуальный канал между DCE и DTE устанавливается по В-каналу ISDN средствами уровня 3 протокола Х.25. Этот же В-канал используется затем для передачи трафика пакетов Х.25.
При использовании варианта Case В возможности коммутации пакетов Х.25 становятся частью ISDN. Устройство DTE создает виртуальный канал средствами ISDN, a ATC ISDN может обеспечить коммутацию пакетов или получить доступ к DCE Х.25. Обслуживание вызова и управление реализуются средствами ISDN. Данный вариант принят в качестве стандарта для североамериканских сетей ISDN и служит основным способом запроса пересылки кадров LAPB по В-каналу, а также методом инкапсуляции кадров LAPB в кадры LAPD для пересылки по D-каналу.
С тех пор, как в исходных стандартах ISDN для коммутации пакетов неречевого трафика был использован стандарт Х.25, произошли значительные усовершенствования в среде передачи данных и в применяемых протоколах, позволяющие достичь очень низкого уровня ошибок. В нормативных документах ISDN, выпущенных после 1988 г., уже рекомендуется вместо коммутации пакетов Х.25 использовать технику Frame Relay, ориентированную лишь на минимальный контроль ошибок при передаче. Снижение непроизводительных затрат времени на контроль ошибок может позволить соответствующим образом увеличить скорость обмена данными.