logo
Будылдина2 / ПДС_ЭКЗАМЕН

37. Протоколы передачи файлов используемые в модемах.

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

Основной целью этих протоколов является обеспечение безошибочной передачи данных. Для этого передаваемые данные разбиваются на блоки ( кадры ) определенной длины, и в каждый из них включается проверочная комбинация кода, обнаруживающая ошибки. На приеме происходит проверка проверочной комбинации. Если она принята верно, то посылается сигнал подтверждения, в противном случае посылается запрос на повторную передачу блока.

Другой важной задачей протоколов передачи файлов является управление потоком передаваемых данных. Очередной блок не передается до тех пор, пока не поступит подтверждение правильного приема предыдущего блока ( в простых протоколах ). В более совершенных протоколах предусматривается непрерывная передача блоков до поступления подтверждения. Необходимо использовать память для хранения некоторого количества блоков.

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

Протокол передачи файлов представляет собой набор правил передачи файлов. В его задачи входит:

- исправление возникающих при передаче ошибок.

- передача и прием определенных кодов, служащих для организации связи.

- выполнение некоторых функций передачи файлов и прекращения передачи.

Наиболее распространенные протоколы передачи файлов:

Протокол XModem.

Появился одним из первых в 1977г. Широко использовался в справочных службах, вводится в недорогие программы для ПК и стал стандартом для связи между ПК с использованием модемов. Последовательность действий, выполняемых при передаче файла:

Передающий ПК начинает передачу файла только после получения от принимающего ПК знака “nak”. Принимающий ПК будет передавать этот знак, пока не начнется передача файла. Если было передано 9 знаков “nak” , а передача не началась, процесс возобновляется вручную.

После приема знака “nak” передающий ПК посылает знак начала блока “soh” ( start of header ), два номера блока, блок данных из 128 байт и контрольную сумму «хх».

Принимающий ПК вычисляет контрольную сумму и сравнивает с принятой. Если суммы не совпадают или если прошло 10 секунд, а прием блока не завершен, то посылается знак “nak”, означающий запрос на повторную передачу последнего блока. В случае правильного приема блока приемник выдает знак “ask”. После девяти неуспешных попыток передачи блока связь прекращается.

Для исключения повторной передачи одного и того же блока из-за потери подтверждающего сообщения , принимающий ПК контролирует адреса блоков. Если блок дублируется, то он сбрасывается. После успешной передачи данных передающий ПК посылает знак завершения “eot”, сообщающий об окончании передачи файла. Перерыв в передаче блока свыше 1 минуты считается разрывом связи.

В данном протоколе отсутствует проверка на четность. Данные могут передаваться одновременно только в одном направлении ( полудуплексный режим ).

Преимущества:

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

- простота реализации на языках высокого уровня.

- малый объем приемного буфера 256 байт.

- возможность передачи не только символьных, но и исполняемых ( ехе, сом ) файлов.

- эффективность обнаружения ошибок 99,6 %.

Недостатки:

- низкое быстродействие.

- большая вероятность необнаруженных ошибок.

- необходимость задания имени файла на приеме.

- относительно большой объем передаваемой служебной информации.

Для устранения этих недостатков были разработаны последующие модификации протокола XModem.

Протокол XModeemCRC.

Второй вариант протокола XModem. Более защищен от ошибок. В нем 8 битовая контрольная сумма, заменена 16 битную проверочную комбинацию CRC-16 ( проверка избыточным циклическим кодом ). Проверка CRC-16 гарантирует обнаружение всех одиночных и двойных ошибок, всех нечетных ошибок и т.д. с вероятностью 99,99%.

В начале соединения вместо знака “nak”, передается знак “c”. Если передатчик не поддерживает этот протокол, то он игнорирует эти знаки. Не получив ответа на три знака “c” , приемник переходит на протокол XModem и выдает знак “nak” .

Протокол XModem – 1к.

3 вариант протокола XModem. Данный протокол представляет собой модификацию протокола XModem – CRC с блоками длиной 1024 байт. При такой длине блоков значительно снижается влияние задержек в системах с разделением времени, модемах и сетях с коммутацией пакетов. Уменьшается относительная доля заголовка в общем объеме передаваемой информации. Если передача идет без ошибок, то происходит автоматическое увеличение длины пакетов от 128 до 1024 байт. При увеличении числа ошибок длина пакетов автоматически будет уменьшаться.

Протокол YModem.

Это протокол XModem – CRC , в котором реализована групповая передача файлов. Его повление было вызвано необходимостью устранения недостатков протокола XModem.

Как и в случае передачи одного файла, приемник инициирует групповую передачу путем посылки знака “с”. Передатчик открывает файл и передает номер 0 блока и последующую информацию. Для групповой передачи требуются только имена файлов. Имя файла и путь файла передаются в 0 блоке. Все неиспользованные байты 0 блока имеют значение ноль. Если блок имени файла принят с ошибкой по коду, необходимо запросить повторную передачу. Прием блока с именем файла, успешно открытого для записи, подтверждается знаком “ask”. Если файл не может быть открыт для записи, приемник прерывает передачу знаком “can”.

Затем приемник инициирует передачу содержимого файлов в соответствии с протоколом XModem – CRC. После приема содержимого файла приемник запрашивает имя следующего файла. Передача нулевого имени файла означает окончание групповой передачи файлов.

Протокол YModem-g.

Этот протокол обеспечивает высокую эффективность при очень высоких скоростях передачи. Данный протокол используется приемником, который инициализирует групповую передачу путем посылки знака “g”. Передатчик, распознав этот знак, прекращает ожидание обычных подтверждений по каждому переданному блоку и передает последовательные блоки на полной скорости с использованием метода управления потоком ( например XON/XOFF ).

Прежде чем передавать файл, передатчик ожидает первоначальных знаков “g”, а в конце передачи каждого файла – подтверждающего знака “ask”. При обнаружении ошибки приемник прерывает передачу, посылая последовательность из многих знаков “can”.

Данный протокол позволяет значительно увеличить скорость передачи в каналах с защитой от ошибок ( при использовании модемов со встроенным протоколом защиты от ошибок ). Это достигается за счет отказа от переспроса принятых с ошибками блоков. При обнаружении ошибки передача файла просто прерывается.

Для повышения быстродействия в последующих протоколах ( ZModem ) был применен «оконный » алгоритм, при котором последующие блоки передаются подряд, без ожидания подтверждения правильного приема блока.

Протокол ZModem.

Данный протокол получил в настоящее время наибольшее распространение. Представляя собой развитие предыдущих протоколов, этот протокол устраняет их недостатки и будучи совместимым с ними, имеет ряд преимуществ:

Протокол ZModem разрабатывался для следующих областей применения:

- для работы в сетях с большим временем задержки и малой вероятностью ошибок.

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

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

Протокол ZModem может быть использован самостоятельно, либо в сочетании с защитой от ошибок канального уровня, реализованной протоколами Х.25,V.42, MNP и др. В сочетании с этими протоколами, протокол ZModem обеспечивает обнаружение и исправление ошибок в интерфейсах между средой, в которой исправляется ошибка, и остальной частью канала.

Протокол ZModem – это результат технического компромисса между требованиями: простотой реализацией и использования, обеспечением высокой пропускной способности, сохранением целостности информации и высокой надежностью передачи.

Протокол позволяет программной инициировать передачу файлов, либо передавать команды другим программам. Имена файлов вводятся только один раз. При групповой передаче достаточно указать тип файлов ( *.тхт ). Количество команд, вводимых с клавиатуры, сводится к минимуму.

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

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

Протокол Kermit.

Реализован практически во всех связных программах и предназначен в основном для передачи файлов между ЭВМ разных типов. Он оптимизирован для работы как при сильных помехах, так и при больших задержках сигнала. В нем используются пакеты с максимальной длиной 94 байта. Обеспечивает групповую передачу файлов.

Недостатки:

- Его высокая сложность. Для работы с ним необходимо детальное ознакомление с режимами и особенностями его работы.

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