Стандарты и протоколы
Для того, чтобы два устройства могли обмениваться данными друг с другом, требуется определить и согласовать интерфейс. Для модемов стандарты определяют методы модуляции, способы коррекции ошибок и компрессии данных и ряд других параметров. Существует несколько организаций, занимающихся разработкой стандартных интерфейсов. ITU (International Telecommunications Union - Международный союз по Электросвязи) - комитет ООН (Женева, Швейцария), ISO (Innternational Standards Organisation - Международный комитет по стандартизации), ITU-T занимаются разработкой стандартов для модемов.
Cтандарты для модемов разрабатывались годами и публиковались как серия рекомендаций, помеченных префиксом V. В сША основным разработчиком стандартов является ANSI - American National Standards Institute. Комитеты ANSI, занимающиеся обработкой информации и передачей данных, обозначаются соответственно X3 и X3S3. Эти организации имеют дело со стандартами de-jure.
Существуют также стандарты de-facto, разработанные отдельными производителями оборудования, использующими в своей продукции новые свойства, еще не определенные комитетами по стандартизации. Когда такие расширения принимаются другими производителями, они становятся стандартами de-facto.
Некоторые примеры стандартов de-facto приведены ниже. Стандарт Bell-100 разработан Bell Systems для своих модемов серий 100 и 200; Bell 103 (300 bps) разработанный в 1958 году, был первым модемом для передачи данных по
телефонным линиям. Язык AT-команд, разработанный фирмой Hayes (от слова Attention) для своих модемов используется сейчас всеми производителями
модемов. Этот язык делает позволяет управлять модемами - от простого набора номера до задания числа звонков, после которого модем "поднимает
трубку". Другим примером стандарта de-facto являются протоколы MNP, разработанные фирмой Microcom Inc. и используемые в настоящее время почти во всех модемах.
Стандарт | Год принятия | Скорость | Тип линии | Модуляция |
V.21 | 1964 | 200 | HDX/FDX Общего пользования | FSK |
V.22 | 1980 | 1200 | FDX (FDM)Общего пользования | PSK |
V.22 bis | 1984 | 2400 | FDX (FDM)Общего пользования | QAM |
V.23 | 1964 | 1200 | FDX (FDM) Общего пользования | FSK |
V.26 | 1968 | 2400 | HDX Частные | PSK |
V.26 bis | 1972 | 2400 | HDX Общего пользования | PSK |
V.26 ter | 1984 | 2400 | FDX (EC) Общего пользования | PSK |
V.27 | 1972 | 4800 | HDX Частные | PSK |
V.27 bis | 1976 | 4800 | HDX Частные | PSK |
V.27 ter | 1976 | 4800 | HDX Общего пользования | PSK |
V.29 | 1976 | 9600 | HDX Частные | QAM |
V.32 | 1984 | 9600 | FDX (EC) Общего пользования | QAM |
V.32 bis | 1991 | 14400 | TCM | |
V.32 Ter | 19200 | TCM | ||
V.FC | 28800 | TCM | ||
V.34 | 1994 | 28800 | ||
V.34M | 1995 | 33600 |
Существуют и другие стандарты, определяющие
функции, связанные с модемами.
Некоторые из этих стандартов
и протоколов перечислены ниже.
Компрессия (сжатие) данных включает различные методы, подобные кодированию Хаффмана или групповому кодированию (run length coding). Первый метод испоьзует кодирование часто встречающихся символов короткими последовательностями бит, а редких символов - длинными последовательностями. Во втором методе передается значение бита и длина
цепочки одинаковых битов вместо передачи всей цепочки. Главной чертой протоколов компрессии является буферизация данных с последующим их сжатием и передачей другому модему. Получивший сжатые данные модем
должен выпонить обратное преобразование. Алгоритмы сжатия данных подобны алгоритмам, используемым программами сжатия ARC, ZIP и ARJ. Код программы
компрессии хранится в ПЗУ модема и обеспечивает компрессию в реальном
времени. Степень сжатия зависит от характера данных. Например, исполняемые файлы PC могут быть сжаты на 40-50%. Сжатие текстовых файлов может достигать 100% (вдвое).
Протоколы, используемые модемами для передачи файлов. Широко растпространены протоколы передачи файлов Xmodem, Ymodem, Zmodem, в мэйнфреймах используется также протокол Kermit. Протокол Xmodem делит данные на блоки, каждый из которых содержит 128 байт данных и 4-байтовую
контрольную сумму. На приемном конце контрольная сумма блока (128 байт)
вычисляется заново и сравнивается с полученным в блоке значением. Если суммы не совпадают, запрашивается повторная передача блока. Протокол Ymodem использует блоки длиной 1024 байта с 4-байтовой контрольной суммой. За счет увеличения размера блока протокол Ymodem обеспечивает
более быструю передачу. Кроме того, Ymodem обеспечивает пакетную передачу
файлов с включением в пакет информации о каждом файле и его размере. Это позволяет пользователю на другом конце линии оценить время, требующееся
для передачи файлов. Zmodem является свободно распространяемой (public domain) программой, которую написал Chuck Forsberg (Omen Technology). Этот протокол имеет несколько преимуществ. Размер блока составляет от 16 до 1024 байт протокол динамически определяет оптимальный размер блока
в соответствии с качеством линии.
Начальный размер блока составляет
1К. При наличии в линии сильных шумов размер блока автоматически
уменьшается, при повышении качества связи - увеличивается заново. Скорость передачи растет с увеличением размера блока, но следует помнить, что при возникновении ошибки приходится повторять передачу большого
блока. Поскольку протокол может автоматически регулировать размер блока
в зависимости от качества линии, он позволяет обеспечить высокую скорость передачи. Протокол Zmodem обеспечивает продолжение передачи файла при обрыве связи с места обрыва. Размер контрольной суммы составляет 8 байт (CRC32), что повышает достоверность контроля ошибок.
Организация соединения. Организация соединения между двумя модемами
включает процесс согласования параметров (handshaking), заключающийся
в передаче специальных сигналов, позволяющих установить оптимальные параметры для каждого модема. Метод FallBack (снижение скорости) используется для нахождения способа обмена. Модем-инициатор связи (тот, который набирал номер) пытается соединиться на максимальной скрости с
использованием наилучшей схемы сжатия данных и контроля ошибок. Если отвечающий модем не подтверждает возможность работы на такой скорости или с такими режимами компрессии/контроля ошибок, иниицатор снижает скорость или переходит к более простой схеме компрессии/контроля ошибок и пытается повторно установить связь. Попытки продолжаются до
установления связи или осознания ее невозможности.