2. Описание сетевого протокола AX.25
2.1 Назначение и область применения
Для того, чтобы иметь механизм надежной передачи данных между
двумя работающими терминалами, необходимо определить протокол, который
позволяет передавать и принимать данные по различным типам линий
связи. Протокол транспортного уровня AX.25 разработан для обеспечения
передачи данных вне зависимости от того, есть ли другие уровни протокола или нет.
Этот протокол соответствует рекомендациям ISO N 3309, 4335 (включая DAD 1&2) и рекомендации высокого уровня 6256 по управлению передачей данных (HDLC) и использует терминологию, принятую в этих документах. Он также соответствует ANSI X3.66, который описывает симметричный режим ADCCP.
Этот протокол в принципе совпадает с рекомендацией X.25 CCITT, за исключением того, что он предусматривает расширенное поле адреса и дополнительный "Ненумерованный Информационный" (UI) кадр. Он также следует принципам, изложенным в рекомендации CCITT Q.921 (LAPD) в области нескольких соединений, различаемых по полю адреса в одном канале.Протокол будет работать одинаково в условиях как дуплексной, так и полудуплексной связи.
Этот протокол был разработан как для соединения двух индивидуальных радиостанций, так и для соединения индивидуальной радиостанции с многопортовым контроллером.Этот протокол позволяет устанавливать более одного соединения на устройство, если устройство предоставляет этот сервис.
Этот протокол не запрещает самосоединение. Cамосоединение это, когда устройство устанавливает связь само с собой, используя свой собственный адрес, как адрес приемника и передатчика в кадре.Большинство сетевых протоколов с множеством соединений предполагает наличие одого главного (первичного) устройства обычно называемого DCE (Data Circuit-terminating Equipmrnt), к которому подсоединено несколько вторичных (подчиненных) устройств обычно называемых DTE (Data Terminating Equipment). Такой вид несимметричной связи редко используется в распределенных радиосетях. Вместо этого AX.25 предполагает, что оба абонента связи имеют одинаковый класс и, таким образом, исключает два разных класса оборудования. Термин DXE используется в протоколе для описания этого симметричного типа устройства, который обычно встречается в радиосетях.
2.2 Структура кадра (пакета)-----------T------------T-----------T----------T-----------¬ ¦ флаг ¦ адрес ¦ управление¦ FCS ¦флаг ¦ +----------+------------+-----------+----------+-----------+ ¦ 01111110 ¦ 112/560 бит¦ 8 бит ¦ 16 бит ¦01111110 ¦ L----------+------------+-----------+----------+------------ Рис 1.а - организация кадров U и S ---------T----------T----------T----T------T---------T--------¬ ¦флаг ¦адрес ¦управление¦PID ¦Данные¦FCS ¦флаг ¦ +--------+----------+----------+----+------+---------+--------+ ¦01111110¦112/560бит¦8 бит ¦8бит¦N*8бит¦16 бит ¦01111110¦ L--------+----------+----------+----+------+---------+--------- Рис 1.б - организация информационного кадраКаждое поле состоит из целого числа октетов (байт) и имеет определенное назначение, как описано далее.
2.2.1 Поле флага
Поле флага содержит один октет. Так как флаг служит для обозначения
границ кадра, то он присутствует в начале и конце каждого кадра.
Два кадра могут разделять один флаг, который должен обозначать конец
одного кадра и начало следующего кадра. Флаг содержит 0, за которым
следует шесть 1, за которыми следует еще один 0, или 01111110 (7Е шестн.).
Эта последовательность ни при каких условиях не должна появляться нигде внутри кадра.
2.2.3 Поле управления
Поле управление используется для идентификации типа кадра и управления
некоторыми атрибутами при установлении связи по уровню 2. Это
один октет, кодировка которого описана в пункте 2.3.2.1.
старший младший бит бит | | yy01yyyy - используется 3 уровень AX.25 yy10yyyy - используется 3 уровень AX.25 11001100 - используется 3 уровень датаграмм Internet Protocol 11011101 - используется 3 уровень протокола разрешения адреса 11110000 - протокол 3 уровня не используется 11111111 - символ escape следующий октет содержит дополнительную информацию о протоколе 3 уровня где y - заменяет все используемые комбинации.Все формы комбинаций yy11yyyy и yy00yyyyy отличные от перечисленных выше в настоящее время зарезервированны для будущих версий протокола 3 уровня. Присвоение кода новому протоколу 3 уровня делается по соглашению с отделом Digital Communications ARRL Ad Hoc Committee.
К настоящему времени известны следующие протоколы верхних уровней, использующие протокол AX.25:
имя PID код протокол hex binary PID_X25 $01 ;00000001-CCIT X25 PLP PID_SEGMENT $08 ;00001000-Segmentation fragment PID_TEXNET $0C3;11000011-TEXNET Datagram Protocol PID_LQ $0C4;11001000-Link Quality Protocol PID_APPLETALK $0CA;11001010-Appletalk PID_APPLEARP $0CB;11001011-Appletalk ARP PID_IP $0CC;11001100-ARPA Internet Protocol PID_ARP $0CD;11001101-ARPA Address Resolution Protocol PID_NET_ROM $0CF;11001111-NET/ROM PID_NO_L3 $0F0;11110000-No Level 3 ProtocolЭти данные заимствованы из исходных текстов программы NET Phil Karno.
2.2.5 Информационное поле (I)
Информационное поле используется для переноса данных от одного
абонента соединения к другому. I поля могут присутствовать только в 3
типах кадров : I, UI, FRMR. Длина поля I может достигать 256 октетов
и должно содержать целое число октетов.
Вся информация в поле I должна передаваться без изменений, за исключением
вставки нулевых бит (2.2.6), необходимой для предотвращения
появления флагов в I поле.
2.2.7 Последовательность проверки кадра (FCS)
Последовательность проверки кадра (алгоритм CRC-16) - это 16-битовое
число, вычиcляемое как передатчиком, так и приемником кадра. Она
используется для проверки того, чтобы при передаче кадра от одного
терминала к другому, он не был искажен каналом. Это число должно подсчитываться
в соответствии с рекомендациями ISO 3309 (HDLC). Вероятность
ошибки при приеме бита с проверкой по методу CRC-16: 1 на
1000000000 переданных бит.
2.2.9 Ошибочный кадр
Любой кадр длиной менее 136 бит (включая открывающий и закрывающий
флаги), не имеющий открывающего или закрывающего флага или длиной не
кратной октету должен рассматриваться протоколом, как ошибочный.
Смотри также 2.4.4.4.
2.2.11 Заполнение времени между кадрами
Если в силу каких-либо причин необходимо держать передатчик DXE
включенным, не передавая кадров, то необходимо передавать непрерывно
флаги.
2.2.13 Кодировка поля адреса
Поле адреса всех кадров должно содержать позывной как передающей
так и приемной станций. Кроме вторичного идентификатора станции
(SSID), поле адреса должно содержать только алфавитно-цифровые ASCII
символы верхнего регистра. Если необходимо использовать ретрансляторы
второго уровня, то их позывные также должны быть в поле адреса.
2.2.13.1 Кодировка поля адреса без использования ретранслятора
Если ретрансляторы уровня 2 не используются, то поле адреса кодируется
в соответствии с рисунком 2. Адрес приемника - это позывной и
SSID радиостанции, на которую отправляется кадр, а адрес передатчика
- это позывной и SSID станции, которая передает кадр. Эти позывные -
позывные только двухточечного соединения по протоколу AX.25 уровня 2.
-----------------------------------------------¬ ¦ Поле адреса кадра ¦ +--------------------T-------------------------+ ¦ Адрес приемника ¦ Адрес передатчика ¦ +--------------------+-------------------------+ ¦А1 А2 А3 А4 А5 А6 А7¦А8 А9 А10 А11 А12 А13 А14¦ L--------------------+-------------------------- ^первый передаваемый октет Рис 2 - кодировка поля адреса без ретранслятораОктеты А1-А14 - это четырнадцать октетов, которые составляеют два подполя адреса поля адреса. Адрес приемника занимает семь октетов А1-А7 и передается первым. Эта последовательность адреса дает приемникам кадров время на проверку подполя адреса приемника и принятие решения о том, кому адресован кадр, в то время, пока принимается остальная часть кадра. Подполе адреса передатчика передается в октетах А8-А14. Оба этих подполя кодируются одинаковым способом, за исключением того, что бит расширения последнего октета поля адреса устанавливается в 1.
На рисунке 3а показан типичный кадр AX.25 при работе без ретранслятора.
------T-----T----------T-----------¬ ¦Октет¦ASCII¦Дв. данные¦Hex данные ¦ +-----+-----+----------+-----------+ ¦флаг ¦ ¦01111110 ¦ 7E ¦ ¦А1 ¦ K ¦10010110 ¦ 96 ¦ ¦А2 ¦ 8 ¦01110000 ¦ 70 ¦ ¦А3 ¦ M ¦10011010 ¦ 9A ¦ ¦А4 ¦ M ¦10011010 ¦ 9A ¦ ¦А5 ¦ O ¦10011110 ¦ 9E ¦ ¦А6 ¦< > ¦01000000 ¦ 40 ¦ ¦А7 ¦SSID ¦11100000 ¦ E0 ¦ ¦А8 ¦ W ¦10101110 ¦ AE ¦ ¦А9 ¦ B ¦10000100 ¦ 84 ¦ ¦А10 ¦ 4 ¦01101000 ¦ 68 ¦ ¦А11 ¦ J ¦10010100 ¦ 94 ¦ ¦А12 ¦ F ¦10001100 ¦ 8C ¦ ¦А13 ¦ I ¦10010010 ¦ 92 ¦ ¦А14 ¦SSID ¦01100001 ¦ 61 ¦ ¦Упр ¦ I ¦00111110 ¦ 3E ¦ ¦PID ¦нет ¦11110000 ¦ F0 ¦ ¦FCS ¦1ч. ¦XXXXXXXX ¦ HH ¦ ¦FCS ¦2ч. ¦XXXXXXXX ¦ HH ¦ ¦флаг ¦ ¦01111110 ¦ 7E ¦ +-----+-----+----------+-----------+ ¦номера бит 76543210 ¦ L----------------------------------- Рис 3а - организация кадра AX.25 без ретранслятораКадр, приведенный выше - это I кадр, который не использует ретранслятор уровня 2, от WB4JFI (SSID=0) k K8MMO (SSID=0), не использующий протокол 3 уровня. Бит P/F установлен, последовательный номер приема (N(R)) - 1, последовательный номер передачи (N(S)) - 7.
2.2.13.1.1 Кодировка подполя приемника
Рисунок 3 показывает как позывной приемника кадра размещается в
подполе приемника в октетах А1-А7.
------T-----T----------T-----------¬ ¦Октет¦ASCII¦Дв. данные¦Hex данные ¦ +-----+-----+----------+-----------+ ¦флаг ¦ ¦01111110 ¦ 7E ¦ ¦А1 ¦ K ¦10010110 ¦ 96 ¦ ¦А2 ¦ 8 ¦01110000 ¦ 70 ¦ ¦А3 ¦ M ¦10011010 ¦ 9A ¦ ¦А4 ¦ M ¦10011010 ¦ 9A ¦ ¦А5 ¦ O ¦10011110 ¦ 9E ¦ ¦А6 ¦< > ¦01000000 ¦ 40 ¦ ¦А7 ¦SSID ¦CRRSSID0 ¦ E0 ¦ +-----+-----+----------+-----------+ ¦номера бит 76543210 ¦ L----------------------------------- Рис 3 - кодировка подполя приемника.где:
Для индикации того, был пакет передан ретранслятором или нет, бит H устанавливается в 0, когда кадр передается ретранслятору. Ретранслятор устанавливает бит H, когда кадр передается им дальше. Станция-ретранслятор должна наблюдать за битом H и отбрасывать уже ретранслированные пакеты. Рисунок 4 показывает кодировку подполя адреса ретранслятора. Рисунок 4а показывает пример полного кадра после повтора его ретранслятором.
------T-----T----------T-----------¬ ¦Октет¦ASCII¦Дв. данные¦Hex данные ¦ +-----+-----+----------+-----------+ ¦А15 ¦ W ¦10101110 ¦ AE ¦ ¦А16 ¦ B ¦10000100 ¦ 84 ¦ ¦А17 ¦ 4 ¦01101000 ¦ 68 ¦ ¦А18 ¦ J ¦10010100 ¦ 94 ¦ ¦А19 ¦ F ¦10001100 ¦ 8C ¦ ¦А20 ¦ I ¦10010010 ¦ 92 ¦ ¦А21 ¦SSID ¦HRRSSID1 ¦ ¦ +-----+-----+----------+-----------+ ¦номера бит 76543210 ¦ L-----------------------------------где:
------T-----T----------T-----------¬ ¦Октет¦ASCII¦Дв. данные¦Hex данные ¦ +-----+-----+----------+-----------+ ¦флаг ¦ ¦01111110 ¦ 7E ¦ ¦А1 ¦ K ¦10010110 ¦ 96 ¦ ¦А2 ¦ 8 ¦01110000 ¦ 70 ¦ ¦А3 ¦ M ¦10011010 ¦ 9A ¦ ¦А4 ¦ M ¦10011010 ¦ 9A ¦ ¦А5 ¦ O ¦10011110 ¦ 9E ¦ ¦А6 ¦< > ¦01000000 ¦ 40 ¦ ¦А7 ¦SSID ¦11100000 ¦ E0 ¦ ¦А8 ¦ W ¦10101110 ¦ AE ¦ ¦А9 ¦ B ¦10000100 ¦ 84 ¦ ¦А10 ¦ 4 ¦01101000 ¦ 68 ¦ ¦А11 ¦ J ¦10010100 ¦ 94 ¦ ¦А12 ¦ F ¦10001100 ¦ 8C ¦ ¦А13 ¦ I ¦10010010 ¦ 92 ¦ ¦А14 ¦SSID ¦01100000 ¦ 60 ¦ ¦А15 ¦ W ¦10101110 ¦ AE ¦ ¦А16 ¦ B ¦10000100 ¦ 84 ¦ ¦А17 ¦ 4 ¦01101000 ¦ 68 ¦ ¦А18 ¦ J ¦10010100 ¦ 94 ¦ ¦А19 ¦ F ¦10001100 ¦ 8C ¦ ¦А20 ¦ I ¦10010010 ¦ 92 ¦ ¦А21 ¦SSID ¦11100011 ¦ E3 ¦ ¦Упр ¦ I ¦00111110 ¦ 3E ¦ ¦PID ¦нет ¦11110000 ¦ F0 ¦ ¦FCS ¦1ч. ¦XXXXXXXX ¦ HH ¦ ¦FCS ¦2ч. ¦XXXXXXXX ¦ HH ¦ ¦флаг ¦ ¦01111110 ¦ 7E ¦ +-----+-----+----------+-----------+ ¦номера бит 76543210 ¦ L----------------------------------- Рис 4а - кадр AX.25 в режиме ретранслятора.Приводимый выше кадр это тот же кадр, что и на рисунке 3а, за исключением того, что добавлено подполе адреса ретранслятора (WB4JFI SSID=1). Бит H установлен в 1, что означает, что кадр был передан ретранслятором.
2.2.13.3 Работа с несколькими ретрансляторами
Протокол сетевого уровня AX.25 позволяет использовать более одного
ретранслятора, обеспечивая таким образом примитивный механизм маршрутизации
пакетов. В подполе адреса ретранслятора может содержаться до
8 позывных ретрансляторов. Когда присутствует более 1 ретранслятора,
то первое подполе адреса ретранслятора должно рассматриваться как адрес
первого ретранслятора в цепочке ретрансляторов. По мере продвижения
кадра по цепочке ретрансляторов каждый ретранслятор будет устанавливать
соответствующий бит Н в своем октете SSID, индицируя, что
кадр был успешно передан ретранслятором. Никаких других изменений в
кадре не производится ( за исключением вычислений соответствующей
суммы FCS). Приемник кадра может восстановить путь кадра анализируя
поле адреса.
Необходимо отметить, что возможно придется настраивать различные таймеры (смотри 2.4.7), для адаптации ко времени задержки распространения кадра по цепочке ретрансляторов и распространения подтверждения по цепочке ретрансляторов назад.
Подразумевается, что многоретрансляторный режим работы - это временный метод соединения станций на больших расстояниях до того времени, пока не будет использоваться протокол 3 уровня. Как только протокол 3 уровня вступит в строй, цепочки ретрансляторов не должны использоваться.2.3. Элементы процедур
2.3.1 Элементы процедур обсуждаются в терминах действий, которые происходят при приеме кадров.2.3.2 Формат поля управления и переменные состояния
2.3.2.1 Форматы поля управленияСуществует 3 главных типа кадра AX.25. Это: информационный кадр (I), кадр супервизора (S), и ненумерованный кадр (U). Рисунок 5 показывает базовый формат поля управления для этих типов кадров.
--------------------T---------------------¬ ¦Тип поля управления¦ Биты поля управления¦ ¦ +------T---T----T--T--+ ¦ ¦ 7 6 5¦ 4 ¦3 2 ¦1 ¦ 0¦ +-------------------+------+---+----+--+--+ ¦Фрейм I ¦N(R) ¦P ¦ N(S) ¦ 0¦ +-------------------+------+---+----+--+--+ ¦Фрейм S ¦N(R) ¦P/F¦S S ¦0 ¦ 1¦ +-------------------+------+---+----+--+--+ ¦Фрейм U ¦ M M M¦P/F¦M M ¦1 ¦ 1¦ L-------------------+------+---+----+--+--- Рисунок 5 Форматы поля управления.где:
2.3.2.1.2 Формат кадра супервизора (S-кадр)
Кадры супервизора имеют 0-ой бит поля управления, установленный в
1,и 1-ый бит, установленный в 0. S кадр обеспечивает управление соединением,
- подтверждение или запрос I кадров и управление окном на
уровне соединения. Так как S кадры не имеют поля информации, то последовательный
номер передачи не используется. Бит P/F используется так, как описано в 2.4.2.
2.3.2.2 Параметры поля управления
2.3.2.3 Последовательные номера2.3.2.4 Переменные кадра и последовательные номера
2.3.2.4.1 Переменная состояния передачи V(S)2.3.2.4.2 Последовательный номер передачи N(S)
Последовательный номер передачи находится в поле управления всех
I- кадров. Он содержит последовательный номер передаваемого I-кадра.
Перед передачей I-кадра N(S) приравнивается к переменной V(S) состояния передачи.
2.3.2.4.4 Последовательный номер приема N(R)
Последовательный номер приема присутствует как в I-кадре, так и в
S-кадре. До передачи кадров I и S эта переменная приравнивается переменной
состояния приема, таким образом подтверждая правильный прием
всех I-кадров, включая до N(R)-1.
2.3.4 Кодировка поля управления для команд и ответов
Следующие далее команды и ответы, задаваемые их кодировкой в поле
управления, должны выполняться DXE.
------------------------¬ ¦Биты поля управления ¦ +-------T--T--------T---+ ¦7 6 5¦ 4¦ 3 2 1¦ 0 ¦ +-------+--+--------+---+ ¦ N(R) ¦ P¦ N(S) ¦ 0 ¦ L-------+--+--------+---- Рис 6 - поле управления I-кадра2.3.4.2 Поле управления кадра супервизора
--------------------- T--------T---T--T--T--T--¬ ¦Биты поля управления ¦ 7 6 5¦ 4 ¦ 3¦ 2¦ 1¦ 0¦ +-------------------- +--------+---+--+--+--+--+ ¦Готов к приему RR ¦ N(R) ¦P/F¦ 0¦ 0¦ 0¦ 1¦ +-------------------- +--------+---+--+--+--+--+ ¦Не готов к приему RNR¦ N(R) ¦P/F¦ 0¦ 1¦ 0¦ 1¦ +-------------------- +--------+---+--+--+--+--+ ¦Повторить REJ¦ N(R) ¦P/F¦ 1¦ 0¦ 0¦ 1¦ L-------------------- +--------+---+--+--+--+--- Рис 7 - поле управления кадра S.2.3.4.2.1 Команда и ответ Готов к приему (RR)
2.3.4.2.2 Команда и ответ Не Готов к Приему (RNR)
Команда "Не готов к приему" используется для информирования передатчика
I-кадра о том, что принимающий DXE временно занят и не может
больше принимать I-кадры. Кадры вплоть до N(R)-1 подтверждаются. Все
кадры с номерами N(R) и выше, которые были переданы перед командой
RNR и не подтверждены, считаются не подтвержденными.
Статус DXE на другом конце связи может быть запрошен посылкой команды RNR с битом P установленным в 1.
2.3.4.2.3 Команда и ответ "повторить" (REJ)2.3.4.3 Управляющие поля ненумерованных кадров.
Управляющие поля ненумерованных кадров являются или командами или
ответами.
Рис 8 показывает кодировку управляющего поля
в ненумерованном кадре.
-----------------T-----T----------------------¬ ¦Управляющее поле¦ тип ¦биты управляющего поля¦ ¦ ¦ ¦7 6 5 ¦ 4 ¦3 2 ¦ 1 0¦ +----------------+-----+------+----+-----+----+ ¦Установить ¦ ¦ ¦ ¦ ¦ ¦ ¦асинхронный ¦ ¦ ¦ ¦ ¦ ¦ ¦симм. режим SABM¦ ком ¦0 0 1 ¦ P ¦1 1 ¦ 1 1¦ +----------------+-----+------+----+-----+----+ ¦Рассоединение ¦ ¦ ¦ ¦ ¦ ¦ ¦DISC ¦ ком ¦0 1 0 ¦ P ¦0 0 ¦ 1 1¦ +----------------+-----+------+----+-----+----+ ¦Рассоединенный ¦ ¦ ¦ ¦ ¦ ¦ ¦режим DM¦ отв ¦0 0 0 ¦ F ¦1 1 ¦ 1 1¦ +----------------+-----+------+----+-----+----+ ¦Ненумерованное ¦ ¦ ¦ ¦ ¦ ¦ ¦подтверждение UA¦ отв ¦0 1 1 ¦ F ¦0 0 ¦ 1 1¦ +----------------+-----+------+----+-----+----+ ¦Отказ от кадра ¦ ¦ ¦ ¦ ¦ ¦ ¦FRMR ¦ отв ¦1 0 0 ¦ F ¦0 1 ¦ 1 1¦ +----------------+-----+------+----+-----+----+ ¦Ненумерованная ¦ ¦ ¦ ¦ ¦ ¦ ¦информация UI ¦ оба ¦0 0 0 ¦F/P ¦0 0 ¦ 1 1¦ L----------------+-----+------+----+-----+----- Рис 8 - управляющие поля кадра U2.3.4.3.1 Команда "установить асинхронный симметричный режим" (SABM)
В команде SABM не допускаются информационные поля. Любой оставшийся на момент поступления команды SABM I-кадр останется неподтвержденным.
DXE подтверждает прием команды SABM, посылая при ближайшей возможности кадр ответа UA. Если DXE не может выполнять команду SABM, то он должен, если это возможно, ответить кадром DM.2.3.4.3.2 Команда Рассоединение DISC
Команда DISC посылается для окончания сеанса связи между двумя
станциями. В команде DISC не должно присутствовать поля информации.
Для ответа на кадр DISC принимающий DXE подтверждает прием DISC, передавая кадр UA при первой возможности. DXE ,передавший DISC, переходит в рассоединенное состояние после приема ответа UA.
Все неподтвержденные кадры I, оставшиеся на момент прихода команды DISC, останутся неподтвержденными.2.3.4.3.3 Ответ отказ от кадра (FRMR)
2.3.4.3.3.1 Кадр ответа (FRMR)
передается для индикации состояния того,
что приемник кадра не может успешно обработать этот кадр и что состояние
ошибки не может быть скорректировано повторной передачей вызвавшего
ошибку кадра. Обычно это состояние возникает,когда принят кадр с
правильной FCS в одном из следующих состояний:
Неправильным N(S) считается N(S), равный последнему переданному N(S)+k и равный значению переменной состояния приема V(R), где k- максимальное число выставляемых информационных кадров,как описывается в 2.4.7.4 ниже.
Неправильная или неопределенная команда или ответ определяется как кадр с управляющим полем, значение которого неизвестно приемнику этого кадра.2.3.4.3.3.2 Когда передается кадр FRMR,
то к кадру добавляется информационное
поле содержащее информацию о том, где произошел сбой. Это информационное
поле содержит 3 октета и его формат показан на рисунке
9.
-------------------------------------------------¬ ¦ биты информационного поля ¦ ¦2¦2¦2¦2¦1¦1¦1¦1¦1 1 1¦1¦1 1 ¦ ¦ ¦ ¦3¦2¦1¦0¦9¦8¦7¦6¦5 4 3¦2¦1 0 9¦8¦7 6 5 4 3 2 1 0 ¦ +-+-+-+-+-+-+-+-+-----+-+-----+-+----------------+ ¦0¦0¦0¦0¦Z¦Y¦X¦W¦V(R) ¦C¦V(S) ¦0¦управляющее поле¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦R¦ ¦ ¦отброшенного ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦кадра ¦ L-+-+-+-+-+-+-+-+-----+-+-----+-+----------------- Рис 9. - информационное поле кадра FRMRгде:
2.3.4.3.5 Ответ "отсоединенный режим" DM
Ответ DM посылается когда DXE принимает кадр, отличный от SABM или
UI и находится в отсоединенном режиме. Он также передается на запрос
установки режима для индикации того, что станция не может участвовать
в соединении в настоящее время.
При приеме кадра SABM и если установка соединения в настоящий момент невозможна, необходимо передать кадр DM. Это индицирует, что вызываемая станция не может участвовать в связи.
Если DXE находится в отсоединенном режиме, то оно отвечает на все кадры, кроме SABM и UI, кадром DM с установленным битом P/F.2.3.4.3.6 Ненумерованный кадр информации
Ненумерованный кадр информации содержит поле PID и информационное
поле и используется для передачи информации по линии без применения
обычного управления. Это позволяет передавать информационные поля по
линии во всех направлениях без управления потоком. Так как эти кадры
не подтверждаются, то если при их приеме возникнет ошибка, то нет
способа восстановить этот пакет. UI кадр, принятый с установленным
битом P, вызывает передачу ответа. Этим ответом должен быть кадр DM в
отсоединенном состоянии или кадр RR (или RNR) в состоянии передачи
информации.
2.3.5.1 Состояние DXE занят
Если DXE временно не может принимать I-кадры (например его буфер
полон), то он передает кадр RNR (не готов к приему). Это информирует
другой DXE о том, что этот DXE не может больше обрабатыватьI-кадры.
Это состояние сбрасывается передачей кадров UA ,RR, REJ, SABM.
Управляющее поле принятого ошибочного I-кадра должно быть воспринято так, чтобы функции супервизора связи такие как проверка бита P/F попрежнему выполнялись. Из-за этого повторно передаваемый кадр может иметь обновленный бит P и N(R).
2.3.5.3 Исправление ситуации "отказ" (REJ)DXE, принявший команду REJ, должен сбрасывать это состояние, повторно передавая все неподтвержденные I кадры (вплоть до размера окна) начиная с кадра с номером N(R) из кадра команды REJ.
2.3.5.4 Таймауты2.3.5.4.1 Таймер Т1
Если из-за ошибки передачи DXE не принимает (или принимает но
отбрасывает) один I-кадр или последний I-кадр из последовательности
I-кадров, то он не обнаружит ошибку последовательности номера передачи
и, таким образом, не передаст REJ. DXE, который передал неподтвержденный
I-кадр, должен по истечении периода T1 таймаута предпринять
соответствующие действия по определению времени, когда необходимо
повторно передать I-кадр, как описано в 2.4.4.9. Это состояние
сбрасывается при приеме подтверждения переданного кадра или при сбросе
соединения (смотри 2.4.6.)
2.3.5.5 Неправильный кадр или ошибка FCS
При приеме неправильного кадра, или при приеме кадра с ошибочной
FCS этот кадр надо отбросить и не предпринимать никаких действий.
2.4 Описание процедур AX.25
Далее описываются процедуры, используемые для установки,
использования и прекращения соединения между двумя станциями DXE.
2.4.1 Поле адреса
2.4.1.1 Информация об адресеАдрес приемника может быть групповым именем если разрешена работа в режиме один абонент-много абонентов. Работа в режиме, когда в поле адреса приемника стоит групповой адрес еще не стандартизована.
2.4.1.2 Процедура Команда/ОтветУстройство более старшей версии определяет работает ли оно с DXE более младшей версии, проверяя значение 7 бита в октете SSID в подполях адреса передатчика и приемника. Если оба C бита установлены в 0 то устройство использует более старую версию протокола. В новых версиях протокола один из этих бит всегда установлен в 1, а другой бит установлен в 0 в зависимости от того, какое устройство командует а какое отвечает.
Значение информации закодированной в поле адреса показано на рисунке 10.-------------------T--------------------T-----------------------¬ ¦Тип кадра ¦С бит SSID приемника¦ C бит SSID передатчика¦ +------------------+--------------------+-----------------------+ ¦Предыдущая версия ¦ 0 ¦ 0 ¦ +------------------+--------------------+-----------------------+ ¦Команда (V 2.0) ¦ 1 ¦ 0 ¦ +------------------+--------------------+-----------------------+ ¦Ответ (V 2.0) ¦ 0 ¦ 1 ¦ +------------------+--------------------+-----------------------+ ¦Предыдущая версия ¦ 1 ¦ 1 ¦ L------------------+--------------------+------------------------ Рисунок 10 - кодировка команды/ответаТак как все кадры считаются либо командой либо ответом, то один из битов всегда будет установлен в 1 а другой в 0. Использование информации команда/ответ в AX.25 позволяет S кадрам быть либо командой либо ответом. Это помогает поддержанию управления соединением при обмене информацией. 2.4.2 Процедура бита P/F
В ответ на кадр I с установленным битом P в режиме передачи информации DXE должен передать ответ RR, RNR или REJ с установленным битом F.
В ответ на кадр команды супервизора с установленным битом P в режиме передачи информации DXE должен передать ответ RR, RNR или REJ с установленным битом F.В ответ на кадр S и I с установленным битом P в отключенном режиме DXE должен передать ответ DM с установленным битом F.
Бит P используется вместе с состоянием условия таймаута как это описано в 2.3.5.4
Если биты P/F не используются то бит P/F устанавливается в 0.2.4.3 Процедуры установления и окончания соединения
2.4.3.1 Установление соединения LAPB.
Когда один DXE хочет установить соединение с другим DXE, то он
посылает кадр с командой SABM к этому устройству и запускает таймер
(Т1). Если другой DXE присутствует и может ответить, то он отвечает
кадром UA и сбрасывает обе внутренних переменных V(S) V(R). Прием
кадра UA на другом конце соединения приводит к отмене таймера Т1 и
сбросу внутренних переменных в 0.
Если при приеме команды SABM DXE решает, что не может вступить в соединение то, он посылает кадр DM.
При приеме ответа DM DXE, пославший SABM, должен отключить таймер T1, и не входить в состояние соединения.DXE, передавший команду SABM будет игнорировать и отбрасывать все кадры за исключением SABM, DISC, UA и DM, приходящие от другого DXE.
Кадры, отличные от UA и DM, в ответ на принятый SABM будут передаваться только после установления связи и, если не будет стоящих запросов SABM.2.4.3.2 Фаза передачи информации
После установления связи DXE войдет в состояние передачи
информации. В этом состоянии DXE будет приниматьь и передавать кадры I и S в
соответствии с процедурой описанной в 2.4.4.
2.4.3.3 Рассоединение соединения.
2.4.3.3.1 Если DXE находятся в состоянии передачи информации, то любой DXE может запросить рассоединение, передав кадр DISC и запустив таймер T1. (смотри 2.4.7)2.4.3.3.2 Приняв правильный пакет DISC DXE должен передать кадр ответа UA и перейти в отсоединенное состояние. DXE при приеме кадра UA или DM в ответ на команду DISC должен остановить таймер Т1 и перейти в отсоединенное состояние.
2.4.3.3.2 Если ответ UA или DM не принят правильно до истечения таймера T1, то кадр DISC должен быть повторен а таймер T1 запущен опять. Это происходит N2 раз после чего DXE переходит в отсоединенное состояние.2.4.3.4 Отсоединенное состояние
2.4.3.4.1 DXE, находящийся в отсоединенном состоянии, должен продолжать принимать команды и реагировать на прием команды SABM так, как описано в 2.4.3.1 и передавать кадр DM в ответ на команду DISC.2.4.3.4.2 Находясь в отсоединенном режиме DXE может инициировать соединение так, как описано в 2.4.3.1. Он также может отвечать на прием команды SABM и устанавливать соединение или игнорировать SABM и отвечать на него кадром DM.
2.4.3.4.3 Любой DXE, принявший командный кадр, отличный от кадра SABM или UI с установленным P битом, должен отвечать кадром DM с установленным битом F. Сам кадр при этом игнорируется.2.4.3.4.4 Если DXE переходит в отсоединенное состояние в результате ситуации ошибки или внутренней ошибки, то он должен ответить кадром с командой DM, а не DISC и выполнить процедуру рассоединения описанную в 2.4.3.3.3. DXE может попытаться восстановить соединение используя процедуру установки связи описанную в 2.4.3.1.
2.4.3.5 Столкновение кадров
2.4.3.5.1 Столкновения кадров в полудуплексном режиме.2.4.3.5.2 Столкновения ненумерованных команд.
Если принятые и переданные кадры команд SABM и DISC одинаковы, то
оба DXE должны передать кадры UA при первой возможности и оба
устройства должны перейти в указанные состояния.
2.4.3.5.3 Столкновение DM с SABM и DISC
Если передан незапрошенный кадр DM, то может произойти его
столкновение с DISC или SABM. В целях предотвращения пропуска этого кадра
незапрошенный кадр DM должен передаваться с битом F установленным в
0. Все кадры SABM и DISC должны передаваться с битом P установленным
в 1. Это предотвращает неправильное функционирование протокола при
приеме кадра DM.
Способ, которым режим круглого стола осуществляется технически, находится за пределами соединения AX.25, но использует структуру кадра AX.25.
AX.25 для этого режима работы использует специальные кадры, называемые ненумерованными кадрами информации UI. Если используется этот вид работы, то поле адреса приемника должно иметь общее кодовое слово, что должно предотвратить прием участниками круглого стола всех сообщений передаваемых по радиоканалу. Например группа радиостанций, работающих в круглом столе и обсуждающих протокол AX.25, может поместить в поле адреса приемника кадовое слово PACKET и, таким образом, будут приниматься только кадры предназначенные для участников круглого стола. Дополнительным преимуществом протокола AX.25 в этом режиме является то, что адрес источника сообщения содержится в подполе адреса передатчика и програмное обеспечение может автоматически отображать позывной источника сообщения. Так как этот режим работы не использует установление соединения, то не будет запросов на повторную передачу запорченных кадров. Так же может происходить столкновение кадров, при этом столкнувшиеся кадры будут пропадать.2.4.4 Процедура передачи информации.
После того, как соединение установлено так, как описано выше, оба
устройства готовы принимать кадры I,S и U.
Если DXE находится в состоянии "занят", то он может передавать I кадры до тех пор, пока другой DXE не будет занят.
Если DXE находится в режиме отказа кадра, то он должен прекратить передачу I кадров.2.4.4.2 Прием I-кадров
Если DXE принимает правильный I-кадр, (то есть с правильной FCS и
последовательным номером передачи, равным значению переменной состояния
приема) и он не занят, то он воспринимает этот кадр, увеличивает
на 1 значение переменноий состояния приема, и поступает одним из следующих способов:
Если состояние "занято" существует, то DXE, принявший сигнал о занятости другого абонента, должен периодически проверять это состояние, пока абонент не выйдет из состояния занятости.
DXE может проверять занятость периодически передавая кадры RR или RNR с установленным битом P.Прием I-кадров с полем информации с нулевой длиной должен сообщаться протоколу следующего уровня, но ни какого содержимого поля информации не передается.
2.4.4.3 Прием кадров с не последовательным номером.2.4.4.4 Прием неправильных кадров
Если DXE принимает кадр с неправильной FCS, неправильный кадр или
кадр с неправильным адресом, то это кадр не должен рассматриваться.
2.4.4.6 Прием отказа
При приеме кадра REJ, передающий DXE должен установить значение
своей внутренней переменной состояния передачи V(S) равным значению
последовательного номера приема N(R) из управляющего поля. DXE затем
должен передать все ждущие кадры выполняя следующие условия:
2.4.4.7 Прием кадра RNR.
Если DXE принимает кадр RNR, то он должен прекратить передачу I
кадров до тех пор, пока не будет снято состояние занято. Если таймер
Т1 истекает после приема сообщения RNR, то должна быть выполнена процедура
ожидания подтверждения (2.4.4.9). Для проверки текущего состояния
занятого DXE могут использоваться S кадры с установленным битом P.
2.4.4.9 Ожидание подтверждения
Если таймер Т1 истекает при ожидании подтверждения переданного
I-кадра от другого DXE, то DXE должен перезапустить таймер T1 и передать
соответствующий кадр супервизора RR или RNR с установленным битом P.
Если DXE принимает правильный кадр-ответ супервизора с установленным
битом F, и N(R) в пределах допустимого окна от последнего
правильно принятого N(R) до последнего переданного N(S)+1, то DXE
должен перезапустить таймер T1 и установить свою переменную состояния
передачи V(S) равной принятому N(R). Затем он может возобновить передачу
I-кадров. Если же DXE принимает правильный кадр ответа супервизора
с неустановленным битом F, или I-кадр или кадр команды супервизора
с N(R) в пределах допустимого окна от последнего правильно принятого
N(R) до последнего переданного N(S)+1, то DXE не должен перезапускать
таймер T1, но использовать принятый N(R) как индикатор подтверждения
переданного I-кадра, включая I-кадр с номером до N(R)-1.
2.4.5 Состояния отказа кадра
DXE должен инициировать процедуру сброса кадра при приеме кадра с
правильной FCS и правильным полем адреса, если он находится в состоянии
передачи информации и имеет место одно из условий пересисленных в 2.3.4.3.3.
После передачи кадра FRMR передающий DXE входит в состояние отказа кадра. Это состояние сбрасывается когда DXE, передавший кадр FRMR, принимает команды SABM или DISC или кадр ответа DM. Любая другая команда, принятая в то время, пока DXE находится в состоянии отказа кадра вызывает передачу другого кадра FRMR с таким-же информационным полем, что и у первого.
В состоянии отказа кадра дополнительные I-кадры не передаются, а принятые кадры I и S игнорируются DXE.DXE, передавший кадр FRMR, должен запустить таймер T1. Если до истечения таймера T1 не принят пакет SABM или DISC, то необходимо повторно передать кадр FRMR и перезапустить таймер T1 так, как описано в 2.4.4.9. Если FRMR передается N2 раз без получения ответа то связь должна быть разорвана.
2.4.6 Процедура сброса2.4.6.1 Процедура сброса используется для инициализации потока данных в обоих направлениях если возникает неисправимая ошибка. Эта процедура сброса используется только в состоянии передачи информации протокола AX.25.
2.4.6.2 DXE должен инициировать процедуру сброса, если он принимает неожидаемый кадр ответа UA или неожидаемый кадр ответа с установленным битом F. DXE может также инициировать процедуру сброса при приеме кадра FRMR. Альтернативно DXE может ответить на кадр FRMR окончанием соединения, послав кадр DISC.2.4.6.3 DXE должен сбросить соединение, послав кадр SABM и запустив таймер T1. При приеме кадра SABM от DXE, с которым ранее было соединение, приемник кадра SABM должен при первой возможности послать назад кадр UA, установить переменные состояния приема и передачи V(S) и V(R) равными 0 и остановить таймер T1, если только он не передал кадр SABM или DISC сам. Если UA правильно принят начальным DXE, то он сбрасывает свои переменные состояния приема и передачи V(S) и V(R) и останавливает таймер T1. Все существовавшие ранее состояния занятости также сбрасываются.
Если принимается ответ DM, то DXE должен войти в отсоединенное состояние и остановить таймер T1. Если таймер T1 истекает до приема ответа UA или DM, то кадр SABM должен быть передан повторно и таймер T1 должен быть перезапущен. Если таймер Т1 истекает N2 раз, то DXE переходит в отсоединенное состояние, а все ранее существовавшие связи сбрасываются.Все другие команды и ответы, принятые DXE до завершения процедуры сброса отбрасываются.
2.4.6.4 Один DXE может запросить другого DXE сбросить соединение, послав ему кадр ответа DM. После передачи кадра DM передающий DXE должен войти в рассоединенное состояние.2.4.7 Список системных параметров
2.4.7.1 Таймеры2.4.7.1.1 Таймер подтверждения T1
Первый таймер, Т1, используется для того, чтобы DXE не ждал бесконечно
ответа на переданный им кадр. Этот таймер не может быть выражен
в абсолютном времени, так как время необходимое на пересылку кадра
сильно зависит от скорости передачи информации на 1 уровне протокола.
T1 должен быть по крайней мере вдвое больше интервала времени передачи
кадра максимальной длины к DXE и приема правильного ответа от DXE.
Это дает DXE приемнику время на обработку кадра перед ответом.
2.4.7.1.2 Таймер задержки ответа Т2
Второй таймер, Т2, может быть использован DXE для определения
максимальной задержки между приемом правильного I-кадра и
передачей соответствующего кадра ответа. Эта задержка может быть
введена для того, чтобы определить передаются следующие I-кадры
или нет. Если приниаются следующие кадры, то DXE может все их (но
не более 7) подтвердить за один раз, а не подтверждать по одному.
Использование таймера Т2 не является обязательным, но рекомендуется
для повышения эффективности использования канала. Заметим, что в
дуплексной связи подтверждение не следует задерживать при числе
кадров менее К/2 где К определяется в 2.4.7.4
2.4.7.2 Максимальное число повторов (N2)
Максимальное число повторов используется вместе с таймером T1.
2.4.7.4 Максимальное число активных I кадров
Максимальное число активных кадров I равно 7.