Электронная библиотека книг Александра Фролова и Григория Фролова.
Shop2You.ru Создайте свой интернет-магазин
Библиотека
Братьев
Фроловых

Модемы и факс-модемы. Программирование для MS-DOS и Windows.

© Александр Фролов, Григорий Фролов
Том 16, М.: Диалог-МИФИ, 1993.

[Назад] [Содеожание] [Дальше]

2.3. Коррекция ошибок и сжатие информации

Практически все современные модемы обеспечивают при передаче информации по телефонным линиям автоматическую коррекцию ошибок и компрессию данных. Это позволяет резко повысить качество связи и скорость передачи информации.

2.3.1. Протоколы коррекции ошибок

При передаче данных по зашумленным телефонным линиям всегда существует большая вероятность, что данные, переданные одним модемом, будут приняты другим модемом в искаженном виде. Некоторые передаваемые байты могут изменить свое значение или даже просто исчезнуть. Могут быть приняты данные, которые не были переданы удаленным модемом, то есть принимающий модем может распознать принятый шум на линии как данные.

Для того чтобы пользователь имел гарантию, что его данные переданы без ошибок, используются протоколы коррекции ошибок.

Общая форма передачи данных по протоколам с коррекцией ошибок следующая: модем передает данные отдельными блоками (пакетами) по 16 - 20000 байт, в зависимости от качества связи. Каждый блок снабжается заголовком, в котором указана проверочная информация, например, контрольная сумма блока. Принимающий модем самостоятельно подсчитывает контрольную сумму каждого блока и сравнивает ее с контрольной суммой из заголовка блока. Если эти две контрольные суммы совпали, считается что блок принят без ошибок. В противном случае принимающий модем отсылает передающему модему запрос на повторную передачу этого блока. Передача сбойного блока продолжается до тех пор, пока он не будет принят правильно.

Протоколы коррекции ошибок могут быть реализованы не только на аппаратном, но и на программном уровне. Аппаратный уровень реализации более эффективен. Наиболее распространенны следующие протоколы коррекции ошибок, поддерживаемые модемами на аппаратном уровне - MNP1-MNP10 и V.42.

2.3.2. Протоколы компрессии передаваемых данных

Современные модемы для ускорения передачи данных используют специальные протоколы, позволяющие производить сжатие передаваемой информации. Передающий модем сжимает данные, они в сжатом виде проходят через телефонный канал и принимаются удаленным модемом. Принимающий модем восстанавливает данные и передает их компьютеру.

При использовании модемов с аппаратной поддержкой протоколов сжатия информации следует установить скорость работы COM-порта, к которому подключен модем, выше скорости работы модема. Так, если модем может работать со скоростью 2400 bps, установите скорость COM-порта 9600 bps.

Среди протоколов компрессии, реализованных на аппаратном уровне, наибольшее распространение получили протоколы фирмы Microcom - MNP5 и MNP7, а также протокол, разработанный международным консультативным комитетом по телеграфии и телефонии - V.42 bis.

2.3.3. Протоколы MNP

MNP (Microcom Network Protocols) - серия наиболее распространенных аппаратных протоколов коррекции ошибок и сжатия передаваемой информации, разработанная и реализованная фирмой Microcom. На момент написания книги известны десять протоколов MNP1 - MNP10. Приведем их характеристики:

MNP1 - протокол коррекции ошибок, предназначенный для модемов, передающих информацию в асинхронном полудуплексном режиме. Это самый простой из протоколов MNP. Вследствие малой эффективности данного протокола большинство современных модемов с аппаратной реализацией коррекции ошибок его не поддерживают.

MNP2 - протокол коррекции ошибок, поддерживающий асинхронный дуплексный метод передачи данных.

MNP3 - протокол коррекции ошибок, поддерживающий синхронный дуплексный метод передачи данных между модемами.

MNP4 - протокол, поддерживающий синхронный дуплексный метод передачи информации. Обеспечивает большую эффективность, чем протоколы MNP2 и MNP3. Протокол MNP4 может менять размер блоков передаваемых данных при изменении числа ошибок на линии. При увеличении числа ошибок размер блоков уменьшается, увеличивая вероятность успешного прохождения отдельных блоков.

MNP5 - протокол, использующий простой метод сжатия передаваемой информации. Символы, часто встречающиеся в передаваемом блоке, кодируются цепочками битов меньшей длины, чем редко встречающиеся символы. Дополнительно кодируются длинные цепочки одинаковых символов. Обычно при этом текстовые файлы сжимаются до 35% своей исходной длины.

Конечно, если вы передаете уже сжатые, например, архиватором ARJ данные, а в большинстве случаев это так и есть, или данные, не содержащие избыточной информации, дополнительного увеличения эффективности за счет сжатия данных модемом не происходит. Наоборот, когда модем будет пытаться сжать уже скомпрессованые данные, объем передаваемой информации может даже увеличиться.

MNP6 - протокол, который дополняет протокол MNP4 автоматическим переключением между дуплексным и полудуплексным методами передачи в зависимости от типа передаваемой информации. Протокол MNP6 также обеспечивает совместимость с протоколом V.29.

MNP7 - протокол, который по сравнению с протоколом MNP5, использует более эффективный метод сжатия данных.

MNP9 - протокол, который использует рекомендацию V.32 и соответствующий метод работы, обеспечивающий совместимость с низкоскоростными модемами.

MNP10 - протокол, предназначенный для обеспечения связи на сильно зашумленных линиях, таких, как линии сотовой связи, междугородные линии, сельские линии. Стабильность связи достигается за счет многократного повторения попытки установить связь, изменения размера пакетов и скорости передачи в соответствии с уровнем помех на линии.

Все протоколы MNP совместимы между собой снизу вверх. При установлении связи происходит установка наивысшего возможного уровня MNP-протокола. Если же один из связывающихся модемов не поддерживает протокол MNP, то MNP-модем работает без него.

2.3.4. Рекомендация CCITT V.42

Вскоре после разработки фирмой Microcom протоколов коррекции ошибок MNP международный консультативный комитет по телеграфии и телефонии приступил к созданию собственного стандарта. Таким стандартом стала рекомендация CCITT V.42. Модемы, соответствующие рекомендации V.42 более устойчивы и обеспечивают большую производительность, чем модемы с поддержкой протоколов MNP. Рекомендации V.42 включают в себя протоколы MNP2-MNP4, чтобы обеспечить совместимость со старыми модемами и новый протокол коррекции ошибок LAPM (Link Access Procedure for Modems). Протокол LAPM включается только в том случае, если модем соединился с другим модемом, поддерживающим рекомендацию V.42.

Некоторые торговые фирмы пытаются продать старые модемы, которые аппаратно поддерживают только протоколы MNP, а не LAPM, как модемы, совместимые со стандартом V.42. Конечно, они совместимы, но это не имеет никакого отношения к достоинствам модема. Просто рекомендации CCITT V.42 включают в себя как часть поддерживаемые этим модемом старые протоколы MNP. Поэтому при покупке модема обратите особое внимание на то, что модем должен быть не просто совместим с CCITT V.42, а полностью соответствовать V.42 (т. е. поддерживать протокол LAPM).

2.3.5. Рекомендация CCITT V.42 bis

Протокол V.42 bis использует метод компрессии, при котором определяется частота появления отдельных символьных строк и происходит их замена на последовательности символов меньшей длины (токены). Этот алгоритм компрессии носит название Limpel-Ziv.

За счет применения алгоритма Limpel-Ziv модемы, реализующие V.42 bis, сильнее сжимают данные, чем модемы, поддерживающие MNP5.

Модемы с V.42 более "разборчивы", чем с MNP5. Если передаваемые данные не содержат избыточной информации, они не пытаются их сжать и передают в исходном виде.

[Назад] [Содеожание] [Дальше]