Опубликован: 11.08.2008 | Уровень: специалист | Доступ: платный
Лекция 13:

Протоколы передачи файлов (FTP и TFTP)

Контроль ошибок

TFTP-механизм контроля над ошибками отличается от других протоколов. Он симметричный — это означает, что отправитель и получатель оба используют тайм-аут. Отправитель применяет его для сообщений данных; получатель — для подтверждения сообщений. Если сообщение данных потеряно, отправитель повторяет его после истечения тайм-аута. Если подтверждение потеряно, получатель повторяет его после истечения тайм-аута. Эта гарантирует нормальную работу.

Поврежденное сообщение

При этом нет никаких отрицательных подтверждений. Если блок данных поврежден, это обнаруживается приемником и блок удаляется. Передатчик ожидает подтверждение и не получает его в период тайм-аута. Блок посылается опять. Заметим, что в сообщении DATA при TFTP нет поля контрольной суммы. Приемник может обнаружить искажение только одним путем: через поле контрольной суммы в пользовательской дейтаграмме UDP.

Потеря сообщения

Если блок потерян, он никогда не достигнет приемника, и не будет послано подтверждение. Передатчик повторяет блок после тайм-аута.

Потеря подтверждения

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

Дублирование сообщения

Дублирование блока может быть обнаружено приемником по номеру блока. Если блок дублирован, он просто удаляется приемником.

"Ошибка ученика волшебника"

Хотя контроль потока и ошибок в TFTP симметричен, он может привести к так называемой "ошибке ученика волшебника". Представьте себе карикатурный персонаж, который, неосторожно используя волшебство, вызывает метлу, которая непрерывно копирует сама себя. Это случается, если сообщение ACK не теряется, но задерживается. В этой ситуации каждый успешный блок посылает двойное или более подтверждение и получает удвоенную информацию.

Рисунок 13.17 показывает проблему. Подтверждение для пятого блока задерживается. Затем истекает тайм-аут, передатчик повторно передает пятый блок, который будет подтвержден передатчиком опять. Передатчик получает два подтверждения для пятого блока, которые запускают посылку шестого блока дважды. Приемник получает седьмой блок дважды и опять посылает два подтверждения, как результат посылки седьмого блока дважды. И так далее.

"Ошибка ученика волшебника"

увеличить изображение
Рис. 13.17. "Ошибка ученика волшебника"

TFTP-опции

Было предложено расширение к протоколу TFTP, которое позволяло дополнительные опции к сообщениям RRQ и WRQ. Опция главным образом используется для того, чтобы договориться о размере блока и, возможно, о начальной последовательности чисел. Без этой опции размер блока равен 512 байт, за исключением последнего блока. Договор может определить размер блока с любым числом байт и такую длину сообщения, которое может быть вставлено в пользовательскую дейтаграмму UDP.

Новый тип сообщения, "опция подтверждения" ( OACK- option acknowledgment ), нужен для того, чтобы позволить другой стороне принять или отклонить предложенные опции.

Безопасность

Одно важное замечание о TFTP – это то, что он не обеспечивает безопасности. В нем нет ни идентификатора пользователя, ни его пароля. Однако сегодня такие предосторожности должны быть предприняты, чтобы препятствовать хакерам обращаться к файлам. Одна из мер защиты должна ограничить доступ TFTP к некритическим файлам. Другой путь для дополнения секретности – это использование прикладных программ, таких как TELNET, в сочетании с TFTP. Пользователь должен вначале получить доступ к TELNET; TELNET проверяет, имеет ли пользователь право на доступ к системе и к соответствующему файлу. Затем он вызывает TFTP клиента и передает имя файла клиенту. Далее клиент осуществляет соединение TFTP к серверу TFTP на пользовательский сайт ( Рисунок 13.18).

Использование TELNET в сочетании с TFTP для обеспечения безопасности

Рис. 13.18. Использование TELNET в сочетании с TFTP для обеспечения безопасности

Заметим, что в этом процессе пользователь работает с TFTP-процессом сервера, а удаленный сайт работает с процессом клиента. Также заметим, что действия, выполняемые пользователем, резервированы: если пользователь захочет читать файл, удаленный сайт использует операцию "записать"; если пользователь хочет записать файл, удаленный сайт теперь использует операцию "читать".

Приложения

TFTP очень полезен для передачи основных файлов, где безопасность не является главным элементом. Он может быть использован для инициализации устройств, таких как "мост" или маршрутизатор. Его главное применение — согласование с протоколами BOOTP или DHCP. TFTP требует небольшого объема памяти и использует только службу UDP и IP. Он может просто конфигурировать память только для чтения (ROM) (или программируемую память PROM). Когда станция включена, TFTP будет подключен к серверу и станция может быть загружена файлом конфигурации от сервера по протоколам BOOTP (или DHCP).

Илья Сидоркин
Илья Сидоркин
Как получить диплом?
Наталья Шульга
Наталья Шульга
Здравствуйте. Актуален ли данный курс?
Александр Грибов
Александр Грибов
Россия, Село Верх-Усугли забайкальский край тунгокоченский район