Смекни!
smekni.com

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

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

Протоколы коррекции ошибок могут быть реализованы как на аппаратном уровне, так и на програмном. Аппаратный уровень реа­лизации более эффективен. Быстродействие аппаратной реализации протокола MNP примерно на 30% выше, чем програмной.

MNP-протоколы

MNP (Microcom Network Protocols) - серия наиболее расп­ространенных аппаратных протоколов, впервые реализованная на модемах фирмы Microcom. Эти протоколы обеспечивают автомати­ческую коррекцию ошибок и компрессию передаваемых данных.

Сейчас известны 10 протоколов:

MNP1. Протокол коррекции ошибок, использующий асинхронный полудуплексный метод передачи данных. Это самый простой из про­токолов MNP.

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

MNP3. Протокол коррекции ошибок, использующий синхронный дуплексный метод передачи данных между модемами (интерфейс мо­дем - компьютер остается асинхронным).

Так как при асинхронной передаче используется десять бит на байт - восемь бит данных, стартовый бит и стоповый бит, а при синхронной только восемь, то в этом кроется возможность ускорить обмен данными на 20%.

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

Эффективность этого метода составляет около 20% по сравне­нию с простой передачей данных.

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

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

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

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

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

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

- многократного повторения попытки установить связь

- изменения размера пакетов в соответствии с изменением уровня помех на линии

- динамического изменения скорости передачи в соответствии с уровнем помех линии

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

Режимы MNP-модемов.

MNP-модем обеспечивает следующие режимы передачи данных:

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

- Режим прямой передачи. Данный режим соответствует обыч­ному модему, не поддерживающему MNP-протокол. Буферизация дан­ных не производится и аппаратная коррекция ошибок не выполня­ется.

- Режим с коррекцией ошибок и буферизацией. Это стандарт­ный режим работы при связи двух MNP-модемов. Если удаленный мо­дем не поддерживает протокол MNP, связь не устанавливается.

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

Протоколы V.42 и V.42bis.

Протокол с коррекцией ошибок и преобразованием асинхрон­ный-синхронный. Протокол использует метод компрессии, при кото­ром определяется частота появления отдельных символьных строк и происходит их замена на последовательности символов меньшей длины. Этот метод компрессии носит название Lempel-Ziv. Данный метод компрессии обеспечивает 50% сжатие текстовых файлов. Вместе с 20% выигрышем от синхронного преобразования это увели­чивает эффективность на 60%.

5.2. Протоколы передачи файлов

В отличие от протоколов нижнего уровня данные протоколы позволяют организовать прием и передачу файлов.

ASCII.

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

XModem.

Наиболее распространены три разновидности протокола XModem:

- оригинальный протокол Xmodem

- Xmodem c CRC

- 1K Xmodem

Оригинальный протокол Xmodem разработал Вард Кристенсен (Ward Christensen) в 1977 году. Вард Кристенсен был одним из первых специалистов по протоколам обмена данными. В честь него этот протокол иногда называют также протоколом Кристенсена.

При передаче файлов с помощью протоколов Xmodem формат данных должен быть следующим: 8-битовые данные, один стоповый бит и отсутствие проверки на четность. Для передачи использу­ется полудуплексный метод, т.е. данные могут передаваться в каждый момент времени только в одном направлении.

Протокол Xmodem Cheksum передает данные пакетами по 128 байт. Вместе с пакетом передается его контрольная сумма. При получении пакета контрольная сумма вычисляется снова и сравни­вается с суммой, вычисленной на передающей машине. Пакет пере­дан без ошибок, если суммы совпадают.

Этот метод обеспечивает достаточно хорошую защиту от оши­бок. Только один из 256 пакетов может содержать ошибки, даже если контрольная сумма правильная.

Xmodem c CRC. Более защищенным от ошибок является протокол Xmodem CRC (Cyclic Redundancy Check). Xmodem CRC - протокол с проверкой циклическим избыточным кодом. В нем 8-битовая конт­рольная сумма заменена на 16-битовый циклический избыточный код. Этот протокол гарантирует вероятность обнаружения ошибок, равную 99,9984%. Только один из 700 биллионов плохих пакетов будет иметь правильный CRC-код. Протокол Xmodem CRC также пере­дает данные пакетами по 128 байт.

1K Xmodem. Если передача идет без ошибок, протокол 1К Xmodem увеличивает размер пакета с 128 до 1024 байт. При увели­чении числа ошибок размер пакета снова уменьшается. Такое изме­нение длины пакета позволяет увеличить скорость передачи фай­лов. В остальном протокол 1K Xmodem совпадает с протоколом Xmodem CRC.

Ymodem.

Протокол Ymodem разработал Чак Форсберг в 1984-1985 годах. Протокол Ymodem похож на протокол 1K Xmodem, но имеет одно от­личие: протокол Ymodem может передавать или принимать за один заход несколько файлов.

Существует модификация протокола Ymodem - Ymodem G. Прото­кол Ymodem G предназначен для использования с модемами, автома­тически осуществляющими коррекцию ошибок на аппаратном уровне. Например, MNP-модемы с аппаратной реализацией MNP. В этом про­токоле упрощена защита от ошибок, т.к. ее выполняет сам модем. Не используете этот протокол, если ваш модем не осуществляет аппаратную коррекцию ошибок.

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

Zmodem.

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

Протокол Zmodem, так же как и протокол 1K Xmodem, может изменять длину пакета (блока) от 64 до 1024 байт в зависимости от качества линии.

Кроме того, протокол обладает следующей полезной особен­ностью: если при передаче файла произошел сбой на линии и вы не успели передать весь файл, то в следующий раз при передаче это­го же файла он автоматически начнет передавать с того же места, где произошел обрыв связи. Таким образом, очень большие файлы вы можете передавать по частям.

Из всех протоколов верхнего уровня, описанных выше, этот протокол самый быстрый и удобный.

BiModem.

Особенностью протокола Bimodem является возможность однов­ременной передачи двух файлов в разных направлениях. Кроме то­го, одновременно с передачей файлов вы можете побеседовать с оператором удаленного компьютера при помощи клавиатуры.