Форматы передаваемых данных
Способность 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.