Центральное место среди канальных протоколов телекоммуникаций занимают протоколы передачи файлов по телефонным каналам. Функции канальных протоколов: управление потоком данных, координация работы передатчика с приемником. Различают протоколы по способам обнаружения и исправления ошибок, по реакции на возникновение ошибок (старт-стопные и конвейерные), по способам защиты от несанкционированного доступа.
Способы обнаружения и исправления ошибок рассмотрены ниже.
Старт-стопный протокол характеризуется тем, что, прежде чем посылать новый кадр информации, передатчик ждет подтверждения о правильном получении приемником предыдущего кадра, в конвейерных протоколах такое подтверждение может быть получено после передачи нескольких кадров. В последнем случае меньше задержки на ожидание подтверждений (квитанций), но больше затраты на повторную пересылку в случае ошибок.
Защита от несанкционированного доступа реализуется или аппаратно в модеме, или в связной (коммутационной) программе.
Обычно в протоколах предусматриваются режимы командный и обмена данными.
Примеры действий, выполняемых по командам в командном режиме: имитация снятия трубки и ответ на вызов; имитация снятия трубки и набора номера (после того как связь установится, модем переходит в режим обмена данными); переход из дуплексного режима в полудуплексный; отключение внутреннего динамика модема и др. Команды может набирать пользователь, но в большинстве почтовых программ типовые последовательности команд выполняются автоматически после обращения к соответствующим процедурам.
Стандартом "де-факто" стал набор команд, реализуемый фирмой Hayes в своих модемах, это так называемые AT- или Hayes-команды. Операции, выполняемые в режиме обмена данными, иллюстрирует фрагмент процесса, показанный на рис. 4.4. Имеется ограничение на число подряд поданных сигналов ack или nak и на время передачи.
Рисунок 4.4 – Процесс связи по протоколу XModem
Основой для многих протоколов модемной связи стал протокол XModem. В базовом варианте этого протокола используется старт-стопное управление, размер одного блока сообщения (пакета) равен 128 байт и 1 байт отводится под контрольную сумму. В варианте XModem-CRC реализован более жесткий контроль ошибок за счет использования циклического кода с 16-разрядной проверяющей комбинацией. В варианте XModem-1k дополнительно введено автоматическое увеличение длины блока до 1024 байт при малой частоте ошибок. В варианте YModem по сравнению с XModem-CRC разрешена групповая передача файлов.
ZModem используется конвейерное управление (иначе называемое оконным), длина пакета автоматически меняется от 64 до 1024 байт в зависимости от качества канала. Если на приемном конце ZModem не поддерживается, то автоматически протокол переходит в Ymodem. Прерванная передача продолжается с места прерывания.