Архитектура Х.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 и поддерживается сетью все время. Процедуры оперативного создания и аннулирования для него не нужны, и постоянный виртуальный канал связи подобен, таким образом, выделенной линии связи.