Форматы передаваемых данных

Способность MNP к непрерывному совершенствованию и расширению своих функциональных возможностей определяется базисным элементом сообщения MNP, называемым протокольным блоком данных (PDU — Protocol Data Unit). PDU включается в синхронный или асинхронный пакет, передаваемый от модема к модему. Ниже приведена диаграмма асинхронного байт-ориентированного пакета MNP2:

где каждый знак представлен символом в виде:

Пакет MNP2 включает в себя поле начального флага, содержащее три байта: SYN, DLE и STX (16h, 10h, 2h); прозрачные пользовательские данные переменной длины в виде PDU; управляющее поле конечного флага, включающее два байта: DLE и ЕТХ (10h, 3h); двухбайтовую контрольную последовательность кадра, полученную с помощью образующего полинома CRC-16 g^^W+A
Формат синхронного пакета MNP (MNP3 и выше) следующий:

где FLAG — флаг, представляющий собой комбинацию <01111110> (7Eh). В данном случае каждый передаваемый знак представляется байтом без стартового и стопового битов. Исключение стартовых и стоповых бит существенно повышает эффективность передачи информации при помощи синхронных протоколов.
Блок данных PDU содержит всю информацию, требуемую для описания и реализации услуг управления соединением и пересылки данных между модемами. Существует всего восемь типов PDU. Общий формат блоков PDU приведен ниже:

LEN

TYPE

Parameters

User data

где LEN — это длина PDU в байтах, TYPE — код от 1 до 9, указывающий тип PDU и Parameters — это строка служебных знаков. Значение Parameters определяется его позицией в PDU и значением кода TYPE. Например, Parameters порядковый номер передачи N(S) указывает последовательный номер данного PDU в потоке передаваемых пакетов и позволяет приемному модему определить правильность приема очередного пакета.
MNP позволяет сформировать до 256 различных параметров и, соответственно, до 256 различных типов PDU. Это предоставляет большие возможности по развитию и расширению протоколов MNP, каждый из которых будет совместим с предыдущими.
В настоящее время определены следующие восемь типов PDU.
Link Request (LR) — запрос соединения:

LR: TYPE=1
Инициализирует или подтверждает соединение. Параметры включают класс услуг MNP, число сообщений, которые могут быть приняты без подтверждения, и максимальную длину данных пользователя в PDU.
Link Disconnect (LD) — разъединение канала:
;
LD:TYPE=2
Запрашивает разрыв соединения по каналу. Длина блока LD может быть равна 4 или 7 байт. При этом соответственно передается один или два параметра (второй параметр необязательный). Информация в блоке Parameters содержит причину разъединения. В настоящее время оговорены следующие четыре причины разъединения:
> ошибка в фазе установления протокола (не получен блок LR), — код причины 1;
> в третьем байте блока LR содержится запрос режима работы, неподдерживаемого локальным модемом (код причины 2);
> принятый блок LR имеет несовместимое или неизвестное значение параметра, — код причины 3;
> завершение связи по инициативе пользователя, — код причины 255.
Link Transfer (LT) — передача по каналу:

LT: TYPE=4
Переносит данные пользователя по каналу. Данные пользователя добавляются к блоку LT как поле переменной длины до 256 байт. Единственный параметр (р) — это последовательный номер передачи SSN, идентифицирующий положение PDU в потоке передаваемых блоков.
Link Acknowledgement (LA) — подтверждение приема:

LA: TYPE=5
Подтверждает прием сообщения. Parameters указывают количество PDU LT, которое приемник может принять до переполнения (до окончания размера окна). Link atteNtion (LN) — линейное предупреждение (разрыв связи):

LN: TYPE=6
Прерывает связь между передатчиком и приемником. Parameters указывают на то, что делать с переданными, но не подтвержденными данными передатчика: доставить их до прерывания, после прерывания или не доставлять вообще (разрушить). Обычно используется для передачи сигнала разъединения. Передача данных в блоке LN запрещена, длина фиксирована и равна 7 байт. Блок содержит два параметра — номер извещения и тип извещения.
Параметр "Тип извещения" определяет порядок обработки состояния разрыва связи. При получении сигнала "Линейное предупреждение", устройство управления должно определить параметр разрыва. От этого параметра зависит, во-первых, как обрабатывать накопленные, но еще не переданные пользователю данные. Если данные доставляются пользователю, то разрыв называется не разрушающим; если же вся накопленная информация уничтожается, разрыв считается разрушающим. Во-вторых, требуется установить последовательность доставки пользователю информации о разрыве и накопленных данных. Если сообщение о разрыве может быть передано в общем потоке данных, то разрыв является несрочным (обычным); если такое сообщение передается с высшим приоритетом, то разрыв считается срочным.


В соответствии с данными понятиями кодируется поле типа извещения, которое может принимать следующие значения:
1 — срочный разрушающий разрыв;
2 — срочный неразрушающий разрыв;
3 — несрочный (обычный) неразрушающий разрыв.
Link atteNtion Acknowledgement (LNA) — подтверждение приема блока линейного предупреждения LN:

LNA:TYPE=7
Подтверждает прием PDU LN и позволяет корректно выполнить процедуру разрыва. Parameters включает номер SSN подтверждаемого блока LN. Длина блока равна 4 байт, в нем содержится всего один параметр, а данные отсутствуют. Этот блок подтверждает правильный прием всех блоков предупреждения LN, имеющих номер, меньший или равный указанному.
Link Management (LM) — управление каналом:

LM:TYPE=8
Реализует функции классов 6 и 10 MNP, включая возможность управления изменением скорости передачи модема в течение сеанса связи. Параметры содержат требуемую скорость передачи.
Link Management Acknowledgement (LMA) — подтверждение приема LM:

LR: TYPE=1
Подтверждает правильный прием блока LM. Parameters — это SSN подтверждаемого PDU LM.