Сети Х.25 являются на сегодняшний день самыми распространенными сетями с коммутацией пакетов, используемыми для построения корпоративных сетей. Основная причина такой ситуации состоит в том, что долгое время сети Х.25 были единственными доступными сетями с коммутацией пакетов коммерческого типа, в которых давались гарантии коэффициента готовности сети. Сеть Internet также имеет долгую историю существования, но как коммерческая сеть она начала эксплуатироваться совсем недавно, поэтому для корпоративных пользователей выбора не было. Кроме того, сети Х.25 хорошо работают на ненадежных линиях благодаря протоколам с установлением соединения и коррекцией ошибок на двух уровнях - канальном и сетевом.
Стандарт Х.25 «Интерфейс между оконечным оборудованием данных и аппаратурой передачи данных для терминалов, работающих в пакетном режиме в сетях передачи данных общего пользования» был разработан комитетом CCITT в 1974 году и пересматривался несколько раз. Стандарт наилучшим образом подходит для передачи трафика низкой интенсивности, характерного для терминалов, и в меньшей степени соответствует более высоким требованиям трафика локальных сетей. Как видно из названия, стандарт не описывает внутреннее устройство сети Х.25, а только определяет пользовательский интерфейс с сетью. Взаимодействие двух сетей Х.25 определяет стандарт Х.75.
Технология сетей Х.25 имеет несколько существенных признаков, отличающих ее от других технологий.
· Наличие в структуре сети специального устройства - PAD (Packet Assembler Disassembler), предназначенного для выполнения операции сборки нескольких низкоскоростных потоков байт от алфавитно-цифровых терминалов в пакеты, передаваемые по сети и направляемые компьютерам для обработки. Эти устройства имеют также русскоязычное название «Сборщик-разборщик пакетов», СРП.
· Наличие трехуровневого стека протоколов с использованием на канальном и сетевом уровнях протоколов с установлением соединения, управляющих потоками данных и исправляющих ошибки.
· Ориентация на однородные стеки транспортных протоколов во всех узлах сети - сетевой уровень рассчитан на работу только с одним протоколом канального уровня и не может подобно протоколу IP объединять разнородные сети. Сеть Х.25 состоит из коммутаторов (Switches, S), называемых также центрами коммутации пакетов (ЦКП), расположенных в различных географических точках и соединенных высокоскоростными выделенными каналами (рис. 6.22). Выделенные каналы могут быть как цифровыми, так и аналоговыми.
Рис. 6.22. Структура сети Х.25
Асинхронные старт-стопные терминалы подключаются к сети через устройства PAD. Они могут быть встроенными или удаленными. Встроенный PAD обычно расположен в стойке коммутатора. Терминалы получают доступ ко встроенному устройству PAD по телефонной сети с помощью модемов с асинхронным интерфейсом. Встроенный PAD также подключается к телефонной сети с помощью нескольких модемов с асинхронным интерфейсом. Удаленный PAD представляет собой небольшое автономное устройство, подключенное к коммутатору через выделенный канал связи Х.25. К удаленному устройству PAD терминалы подключаются по асинхронному интерфейсу, обычно для этой цели используется интерфейс RS-232C. Один PAD обычно обеспечивает доступ для 8, 16 или 24 асинхронных терминалов.
К основным функциям PAD, определенных стандартом Х.З, относятся:
· сборка символов, полученных от асинхронных терминалов, в пакеты;
· разборка полей данных в пакетах и вывод данных на асинхронные терминалы;
· управление процедурами установления соединения и разъединения по сети Х.25 с нужным компьютером;
· передача символов, включающих старт-стопные сигналы и биты проверки на четность, по требованию асинхронного терминала;
· продвижение пакетов при наличии соответствующих условий, таких как заполнение пакета, истечение времени ожидания и др.
Терминалы не имеют конечных адресов сети Х.25. Адрес присваивается порту PAD, который подключен к коммутатору пакетов Х.25 с помощью выделенного канала.
Несмотря на то что задача подключения «неинтеллектуальных» терминалов к удаленным компьютерам возникает сейчас достаточно редко, функции PAD все еще остаются востребованными. Устройства PAD часто используются для подключения к сетям Х.25 кассовых терминалов и банкоматов, имеющих асинхронный интерфейс RS-232.
Стандарт Х.28 определяет параметры терминала, а также протокол взаимодействия терминала с устройством PAD. При работе на терминале пользователь сначала проводит некоторый текстовый диалог с устройством PAD, используя стандартный набор символьных команд. PAD может работать с терминалом в двух режимах: управляющем и передачи данных. В управляющем режиме пользователь с помощью команд может указать адрес компьютера, с которым нужно установить соединение по сети Х.25, а также установить некоторые параметры работы PAD, например выбрать специальный символ для обозначения команды немедленной отправки пакета, установить режим эхо - ответов символов, набираемых на клавиатуре, от устройства PAD (при этом дисплей не будет отображать символы, набираемые на клавиатуре до тех пор, пока они не вернутся от PAD - это обычный локальный режим работы терминала с компьютером). При наборе комбинации клавиш Ctrl+P PAD переходит в режим передачи данных и воспринимает все последующие символы как данные, которые нужно передать в пакете Х.25 узлу назначения.
В сущности, протоколы Х.З и Х.28 определяют протокол эмуляции терминала, подобный протоколу telnet стека TCP/IP. Пользователь с помощью устройства PAD устанавливает соединение с нужным компьютером, а затем может вести уже диалог с операционный системой этого компьютера (в режиме передачи данных устройством PAD), запуская нужные программы и просматривая результаты их работы на своем экране, как и при локальном подключении терминала к компьютеру.
Компьютеры и локальные сети обычно подключаются к сети Х.25 непосредственно через адаптер Х.25 или маршрутизатор, поддерживающий на своих интерфейсах протоколы Х.25. Для управления устройствами PAD в сети существует протокол Х.29, с помощью которого узел сети может управлять и конфигурировать PAD удаленно, по сети. При необходимости передачи данных компьютеры, подключенные к сети Х.25 непосредственно, услугами PAD не пользуются, а самостоятельно устанавливают виртуальные каналы в сети и передают по ним данные в пакетах Х.25.
Адресация в сетях Х.25
Если сеть Х.25 не связана с внешним миром, то она может использовать адрес любой длины (в пределах формата поля адреса) и давать адресам произвольные значения. Максимальная длина поля адреса в пакете Х.25 составляет 16 байт.
Рекомендация Х.121 CCITT определяет международную систему нумерации адресов для сетей передачи данных общего пользования. Если сеть Х.25 хочет обмениваться данными с другими сетями Х.25, то в ней нужно придерживаться адресации стандарта Х.121.
Адреса Х.121 (называемые также International Data Numbers, IDN) имеют разную длину, которая может доходить до 14 десятичных знаков. Первые четыре цифры IDN называют кодом идентификации сети (Data Network Identification Code, DNIC). DNIC поделен на две части; первая часть (3 цифры) определяет страну, в которой находится сеть, а вторая - номер сети Х.25 в данной стране. Таким образом, внутри каждой страны можно организовать только 10 сетей Х.25. Если же требуется перенумеровать больше, чем 10 сетей для одной страны, проблема решается тем, что одной стране дается несколько кодов. Например, Россия имела до 1995 года один код - 250, а в 1995 году ей был выделен еще один код - 251. Остальные цифры называются номером национального терминала (National Terminal Numbe, NTN). Эти цифры позволяют идентифицировать определенный DTE в сети Х.25.
Международные сети Х.25 могут также использовать международный стандарт нумерации абонентов ISO 7498, описанный выше.
По стандарту ISO 7498 для нумерации сетей Х.25 к адресу в формате Х.121 добавляется только один байт префикса, несущий код 36 (использование в адресе только кодов десятичных цифр) или 37 (использование произвольных двоичных комбинаций). Этот код позволяет универсальным коммутаторам, например коммутаторам сети ISDN, поддерживающим также и коммутацию пакетов Х.25, автоматически распознавать тип адреса и правильно выполнять маршрутизацию запроса на установление соединения.
Стек протоколов сети Х.25
Стандарты сетей Х.25 описывают 3 уровня протоколов (рис. 6.23).
Рис. 6.23. Стек протоколов сети X.25
· На физическом уровне определены синхронные интерфейсы Х.21 и Х.21 bis к оборудованию передачи данных - либо DSU/CSU, если выделенный канал является цифровым, либо к синхронному модему, если канал выделенный.
· На канальном уровне используется подмножество протокола HDLC, обеспечивающее возможность автоматической передачи в случае возникновения ошибок в линии. Предусмотрен выбор из двух процедур доступа к каналу: LAP или LAP-B.
· На сетевом уровне определен протокол Х.25/3 обмена пакетами между оконечным оборудованием и сетью передачи данных.
Транспортный уровень может быть реализован в конечных узлах, но он стандартом не определяется.
Протокол физического уровня канала связи не оговорен, и это дает возможность использовать каналы разных стандартов.
На канальном уровне обычно используется протокол LAP-B. Этот протокол обеспечивает сбалансированный режим работы, то есть оба узла, участвующих в соединении, равноправны. По протоколу LAP-B устанавливается соединение между пользовательским оборудованием DTE (компьютером, IP- или IPX-маршрутизатором) и коммутатором сети. Хотя стандарт это и не оговаривает, но по протоколу LAP-B возможно также установление соединения на канальном уровне внутри сети между непосредственно связанными коммутаторами. Протокол LAP-B почти во всех отношениях идентичен протоколу LLC2, описанному в главе 3, кроме адресации. Кадр LAP-B содержит одно однобайтовое адресное поле (а не два - DSAP и SSAP), в котором указывается не адрес службы верхнего уровня, а направление передачи кадра - 0х01 для направления команд от DTE к DCE (в сеть) или ответов от DCE к DTE (из сети) и 0х03 для направления ответов от DTE к DCE или команд от DCE к DTE. Поддерживается как нормальный режим (с максимальным окном в 8 кадров и однобайтовым полем управления), так и расширенный режим (с максимальным окном в 128 кадров и двухбайтовым полем управления).
Сетевой уровень Х.25/3 (в стандарте он назван не сетевым, а пакетным уровнем) реализуется с использованием 14 различных типов пакетов, по назначению аналогичных типам кадров протокола LAP-B. Так как надежную передачу данных обеспечивает протокол LAP-B, протокол Х.25/3 выполняет функции маршрутизации пакетов, установления и разрыва виртуального канала между конечными абонентами сети и управления потоком пакетов.
После установления соединения на канальном уровне конечный узел должен установить виртуальное соединение с другим конечным узлом сети. Для этого он в кадрах LAP-B посылает пакет Call Request протокола X.25. Формат пакета Call Request показан на рис. 6.24.
Рис. 6.24. Формат пакета Call Request
Поля, расположенные в первых трех байтах заголовка пакета, используются во всех типах кадров протокола Х.25. Признаки Q и D и Modulo расположены в старшей части первого байта заголовка. Признак Q предназначен для распознавания на сетевом уровне типа информации в поле данных пакета. При получении пакета информация, расположенная в поле данных, а также значение бита Q передается верхним уровням пользовательского стека протоколов (непосредственно транспортному уровню этого стека). Значение Q=1 означает управляющую пользовательскую информацию, а Q=0 - данные. Признак D означает подтверждение приема пакета узлом назначения. Обычный механизм подтверждения принятия пакетов с помощью квитанций имеет для протокола Х.25 только локальный смысл - прием пакета подтверждает ближайший коммутатор сети, через который конечный узел запросил и установил виртуальное соединение. Если же узел-источник запросил подтверждение приема конечным узлом, то это подтверждение индицируется установкой бита D (delivery confirmation) в пакетах, идущих от узла назначения.
Признак Modulo говорит о том, по какому модулю - 8 или 128 - ведется нумерация пакетов. Значение 10 означает модуль 128, а 01 - модуль 8.
Поле Номер логической группы (Lodical Group Number, LGN) содержит значение номера логической группы виртуального канала. Каналы образуют логические группы по функциональному признаку, например:
· постоянный виртуальный канал;
· коммутируемый виртуальный канал только для входящих сообщений (симплексный);
· коммутируемый виртуальный канал только для исходящих сообщений (симплексный);
· коммутируемый дуплексный виртуальный канал.
Максимальное количество логических групп - 12, хотя в конкретной сети допустимо и меньшее количество.
Поле Номер логического канала (Logical Channel Number, LCN) содержит номер виртуального канала, назначаемый узлом-источником (для коммутируемых виртуальных каналов) или администратором сети (для постоянных виртуальных каналов). Максимальное количество виртуальных каналов, проходящих через один порт, равно 256.
Поле Тип (Type) указывает тип пакета. Например, для пакета Call Request отведено значение типа, равное 0х0В. Младший бит этого поля определяет, является ли пакет управляющим (бит равен 1) или пакетом данных (бит равен 0). Значение 0х0В содержит 1 в младшем бите, поэтому это управляющий пакет, а остальные биты в этом случае определяют подтип пакета. В пакете данных остальные биты поля Type используются для переноса номеров квитанций N(S) и N(R).
Следующие два поля определяют длину адресов назначения и источника (DA и SA) в пакете. Запрос на установление виртуального канала указывает оба адреса. Первый адрес нужен для маршрутизации пакета Call Request, а второй - для принятия решения узлом назначения о возможности установления виртуального соединения с данным узлом-источником. Если узел назначения решает принять запрос, то он должен отправить пакет Call Accepted - «Запрос принят», в котором также указать оба адреса, поменяв их, естественно, местами. Адреса могут иметь произвольный формат или же соответствовать требованиям стандарта Х.121 или ISO 7498.
Сами адреса назначения и источника занимают отведенное им количество байт в следующих двух полях.
Поля Длина поля услуг (Facilities length) и Услуги (Facilities) нужны для согласования дополнительных услуг, которые оказывает сеть абоненту. Например, услуга «Идентификатор пользователя сети» позволяет задать идентификатор пользователя (отличный от его сетевого адреса), на основании которого могут оплачиваться счета за пользование сетью. Пользователь с помощью услуги «Согласование параметров управления потоком» может попросить сеть использовать нестандартные значения параметров протокола - размера окна, максимального размера поля данных пакета и т. п. Протокол Х.25 допускает следующие максимальные значения длины поля данных: 16,32, 64,128, 256,512 и 1024 байт. Предпочтительной является длина 128 байт.
Пакет Call Request принимается коммутатором сети и маршрутизируется на основании таблицы маршрутизации, прокладывая при этом виртуальный канал. Начальное значение номера виртуального канала задает пользователь в этом пакете в поле LCN (аналог поля VCI, упоминавшегося при объяснении принципа установления виртуальных каналов). Протокол маршрутизации для сетей Х.25 не определен.
Для сокращения размера адресных таблиц в коммутаторах в сетях Х.25 реализуется принцип агрегирования адресов. Все терминалы, имеющие общий префикс в адресе, подключаются при этом к общему входному коммутатору подсети, соответствующей значению префикса. Например, если путь ко всем терминалам, имеющим адреса с префиксом 250 720, пролегает через общий коммутатор К1, то в таблице маршрутизации коммутаторов, через которые проходит путь к коммутатору К1, помещается единственная запись - 250 720, которая соответствует как конечному узлу 250 720 11, так и конечному узлу 250 720 26. Маски в коммутаторах не используются, а младшие разряды адреса, которые не нужны при маршрутизации, просто опускаются.
После установления виртуального канала конечные узлы обмениваются пакетами другого формата - формата пакетов данных (пакет Data). Этот формат похож на описанный формат пакета Call Request - первые три байта в нем имеют те же поля, а адресные поля и поля услуг отсутствуют. Пакет данных не имеет поля, которое бы определяло тип переносимых в пакете данных, то есть поля, аналогичного полю Protocol в IP-пакете. Для устранения этого недостатка первый байт в поле данных всегда интерпретируется как признак типа данных.
Коммутаторы (ЦКП) сетей Х.25 представляют собой гораздо более простые и дешевые устройства по сравнению с маршрутизаторами сетей TCP/IP. Это объясняется тем, что они не поддерживают процедур обмена маршрутной информацией и нахождения оптимальных маршрутов, а также не выполняют преобразований форматов кадров канальных протоколов. По принципу работы они ближе к коммутаторам локальных сетей, чем к маршрутизаторам. Однако работа, которую выполняют коммутаторы Х.25 над пришедшими кадрами, включает больше этапов, чем при продвижении кадров коммутаторами локальных сетей. Коммутатор Х.25 должен принять кадр LAP-B и ответить на него другим кадром LAP-B, в котором подтвердить получение кадра с конкретным номером. При утере или искажении кадра коммутатор должен организовать повторную передачу кадра. Если же с кадром LAP-B все в порядке, то коммутатор должен извлечь пакет Х.25, на основании номера виртуального канала определить выходной порт, а затем сформировать новый кадр LAP-B для дальнейшего продвижения пакета. Коммутаторы локальных сетей такой работой не занимаются и просто передают кадр в том виде, в котором он пришел, на выходной порт.
В результате производительность коммутаторов Х.25 оказывается обычно невысокой - несколько тысяч пакетов в секунду. Для низкоскоростных каналов доступа, которыми много лет пользовались абоненты этой сети (1200-9600 бит/с), такой производительности коммутаторов хватало для работы сети.
Гарантий пропускной способности сеть Х.25 не дает. Максимум, что может сделать сеть, - это приоритезировать трафик отдельных виртуальных каналов. Приоритет канала указывается в запросе на установление соединения в поле услуг.
Протоколы сетей Х.25 были специально разработаны для низкоскоростных линий с высоким уровнем помех. Именно такие линии составляют пока большую часть телекоммуникационной структуры нашей страны, поэтому сети Х.25 будут по-прежнему еще долго являться наиболее рациональным выбором для многих регионов.
Сети Frame Relay