Фазы работы протоколов mnp2, mnp3
Общие сведения
При передаче данных по зашумленным телефонным линиям всегда существует вероятность, что данные, передаваемые одним модемом, будут приняты другим модемом в искаженном виде. Например, некоторые передаваемые байты могут изменить свое значение или даже просто исчезнуть.
Для того чтобы пользователь имел гарантии, что его данные переданы без ошибок, используются протоколы коррекции ошибок. Общая форма передачи данных по протоколам с коррекцией ошибок следующая: данные передаются отдельными блоками (пакетами) по 16-20000 байт, в зависимости от качества связи. Каждый блок снабжается заголовком, в котором указана проверочная информация, например контрольная сумма блока. Принимающий компьютер самостоятельно подсчитывает контрольную сумму каждого блока и сравнивает ее с контрольной суммой из заголовка блока. Если эти две контрольный суммы совпали, принимающая программа считает, что блок передан без ошибок. В противном случае принимающий компьютер передает передающему запрос на повторную передачу этого блока.
Протоколы коррекции ошибок могут быть реализованы как на аппаратном уровне, так и на программном. Аппаратный уровень реализации более эффективен. Быстродействие аппаратной реализации протокола MNP примерно на 30% выше, чем программной.
Протокол MNP2.
Протокол коррекции ошибок MNP2 является байт-ориентированным протоколом типа BSC (Binary Synchronous Communications). Самый первый протокол защиты, ориентирован на старт-стопное символьное представление информации. Его наличие или отсутствие никак не затрагивает формат передачи байта по каналу: он подвергается асинхронно-синхронному преобразованию. Каждый элемент кадра - байт - состоит из 8 информационных бит, передается по каналу последовательно, младшим битом вперед; выдача первого бита предваряется стартовым битом, служащим синхросигналом приемнику; после передачи последнего бита выдается стоповый бит. Если следующий байт не готов к выдаче, передается поток стоповых битов. Таким образом можно считать, что байт состоит как минимум из 10 бит, включая один стартовый и один стоповый биты.
Из этого обстоятельства есть два весьма существенных следствия. Во-первых, процедура входа в протокол прозрачна и не требует специального синхронного переключения обоих модемов в какой-то специфический режим работы асинхронно-синхронного преобразования данных. В любой момент модем может начать передачу символов, являющихся не самоценными данными, а служебным полем кадра протокола MNP2. Лишь бы приемник был готов на логическом уровне идентифицировать это обстоятельство. Во-вторых, реализация протокола может быть вынесена на уровень программного обеспечения компьютера, оставляя модем и вовсе в неведении относительно наличия протокола коррекции ошибок.
Формат кадра MNP2 следующий:
где каждый знак представлен символом в виде:
Пакет MNP2 включает в себя:
· управляющее поле начального флага, включающее три байта: SYN, DLE и STX (16h, 10h, 2h - шестнадцатиричные коды указанных байт);
- прозрачные пользовательские данные переменной длины (PDU);
- управляющее поле конечного флага, включающее 2 байта: DLE и ETX (10h, 3h);
· двухбайтовая контрольная последовательность кадра, подсчитанная с помощью образующего полинома X**16 + X**15 + X**2+ 1.
Передающая сторона должна обеспечить прозрачность данных, чтобы приемник мог отличать флаг от информации. Кодовая прозрачность управляющих полей обеспечивается байтом DLE, сигнализирующим о специальном значении следующего за ним байта.
Если же этот байт встречается в пользовательских данных, то он должен дублироваться, чем обеспечивается прозрачность самих пользовательских данных. Иногда процедуру вставки байта DLE в пользовательские данные в протоколе типа BSC называют байтстаффингом. Поскольку протокол MNP2 - знак-ориентированный, в нем нет специального межкадрового заполнителя. Им служит банальный межбайтовый заполнитель - поток стоповых битов.
В протоколе MNP2 существуют 6 типов кадров: LR, LD, LT, LA, LN и LNA. Каждый тип кадра в поле прозрачных пользовательских данных имеет свою собственную логическую структуру, в которой кодируется признак типа кадра, а также присущие ему параметры и пользовательская информация.
Протокол MNP3
Протокол коррекции ошибок MNP3 является бит-ориентированным протоколом. Кадровый формат его радикальным образом отличается от вышеизложенного и полностью соответствует основной части V.42, включая асинхронно-синхронное преобразование байта, подсчет двухбайтовой контрольной последовательности кадра с точностью до образующего полинома, обеспечение прозрачности данных и межкадровый заполнитель. Все же остальное - перечень типов кадров, их логическая структура и собственно протокол - полностью идентично протоколу MNP2. По сути MNP3 - это паллиатив между MNP2 и V.42.
При бесспорном снижении накладных расходов, обусловленном переходом на синхронный кадровый формат, MNP3 не достигает кондиций V.42, теряя в гибкости по сравнению с MNP2. Даже экономии вычислительных ресурсов невозможно добиться, отказываясь от реализации байт-ориентированного режима MNP. По той простой причине, что процедура входа в протокол MNP3 заключается в обмене сторонами кадрами LR в байт-ориентированном режиме. Только согласовав с помощью этого кадра применение в дальнейшем бит-ориентированного режима, стороны синхронно в него переключаются. Таким образом, все вычислительные процедуры, присущие MNP2 - формирование кадра специфического формата, вычисление контрольной последовательности по специфическому образующему полиному, байтстаффинг и прочее - все это необходимо реализовывать для установки протокола MNP3
Формат синхронного пакета MNP (MNP3 и выше) следующий:
где FLAG — флаг, представляющий собой комбинацию <01111110> (7Eh). В данном случае каждый передаваемый знак представляется байтом без стартового и стопового битов. Исключение стартовых и стоповых бит существенно повышает эффективность передачи информации при помощи синхронных протоколов.
Процедура соединения MNP (лучше написать)
При использовании протоколов MNP модемы взаимодействуют друг с другом, передавая и принимая ПБД, включенные в пакеты синхронных или асинхронных битовых потоков.
Соединение инициализируется, когда один из модемов (передатчик) передает по каналу блок данных "Запрос соединения" (LR). Приемник отвечает, передавая собственный ПБД LR обратно передатчику. После этого передатчик передает PDU "Подтверждение приема" (LA), и на этом соединение считается установленным. Этот трехэтапный процесс подтверждения связи называется фазой установления соединения. После фазы установления передатчик пересылает данные со своего компьютера приемнику в форме ПБД "Передача по каналу" (LT). Приемник подтверждает корректное получение этих сообщений, посылая обратно передатчику ПБД "Подтверждение приема" (LA). Таким образом, реализуется метод решающей обратной связи для повышения достоверности передачи информации. Число сообщений, передача которых разрешена до того момента, как будет принят PDU LA, устанавливается при обмене "запросами соединения" (LR). Этот обмен данными и подтверждениями их приема называется фазой передачи данных.
В случае приема сообщения с ошибками программное обеспечение, реализующее механизм автоматического запроса повторения в модеме MNP также посылает передатчику ПБД "Подтверждение приема" с номером последнего правильно принятого протокольного блока LT. В этом случае блок "Подтверждение приема" (LA) указывает передатчику, что надо передавать ПБД LT, следующий за тем, чей номер помещен в параметр данного блока. То есть следующий номер и будет номером полученного с искажениями информационного блока LT. Приемник выносит решение об искажении информационного блока, если обнаружена некорректная контрольная последовательность пакета, неправильная последовательность приема ПБД LT или получение большего числа сообщений, чем может обработать приемник.
Один из модемов может завершить сеанс связи, послав ПБД "Разъединение канала" (LD). Отправитель ПБД LT подразумевает, что сеанс завершен после передачи им запроса на разъединение канала. Модемы MNP откликаются на сигнал DTE BREAK, посылая сигналы удаленному модему на основе сигнализации, предусмотренной ПБД "Прерывание канала" и "Отклик на прерывание канала" (LN и LNA). "Прерывание канала" LN вырабатывается в ответ на прерывание и указывает, должны ли данные, переданные до сигнала BREAK, быть доставлены пользователю или отменены. Приемник возвращает "Отклик на прерывание канала" (LNA), указывающий SSN подтверждаемого ПБД LN.
В ходе фазы установления соединения передатчик и приемник достигают соглашения об услугах, которые они будут использовать при передаче данных. Кроме того, они "договариваются" о следующем:
- будет связь синхронной или асинхронной;
- будет ли применяться сжатие данных и если будет, то в соответствии с каким протоколом;
- какой класс (классы) MNP активизировать.
Соглашение по этим вопросам достигается в ходе трехэтапного обмена блоками данных LR и LA. Обмен начинается с асинхронной передачи отправителем своего LR. Это происходит в соответствии с протоколом MNP2, поскольку его поддерживают все MNP-модемы.
LR передатчика содержит информацию о наборе функций, которые передатчик хотел бы использовать. В ответ приемник посылает передатчику LR, указывающий, какие из запрошенных функций он поддерживает.
Передатчик подтверждает получение LR приемника, посылая кадр LA, который содержит набор функций, согласованных с приемником. С этого момента передатчик и приемник начинают взаимодействие, используя перечень выбранных функций. Например, они могут теперь переключиться с асинхронного режима на синхронный, если "договорились" о его использовании.