Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
RGR_VSSiT_караваев А.Е._21-PI__kopia (1).doc
Скачиваний:
19
Добавлен:
28.03.2015
Размер:
260.61 Кб
Скачать
    1. Протоколы tftp и sftp

FTP-протокол имеет двух «младших братьев»: SFTP – Simple FTP и TFTP – Trivial FTP.

TFTP-протокол – это простейший протокол передачи файлов. Он работает поверх транспортного протокола UDP и обеспечивает выполнение только самых элементарных операций передачи файлов, а именно, записи и чтения файлов. TFTP был разработан как простой и легкий в применении протокол. Он не позволяет вызвать список каталога и не имеет никаких средств аутентификации, но может передавать 8-битную информацию в соответствии со всеми стандартами Internet.

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

TFTP работает лишь пятью командами:

  1. Read request (RRQ) - запрос на чтение.

  2. Write request (WRQ) - запрос на запись.

  3. Data (DATA) - пакет данных.

  4. Acknowledgment (ACK) - подтверждение.

  5. Error (ERROR) - ошибка.

Процесс передачи данных начинается с поступления от клиента TFTP на сервер запроса на чтение или запись файла. Соединение устанавливается после получения подтверждения готовности на один из запросов, либо на запись, либо на чтение.

При открытии соединения, каждая из сторон выбирает (случайным образом) уникальный идентификатор - TID, который используется и UDP как порт соединения. Каждый пересылаемый пакет ассоциирован с двумя TID, соответствующими каждой стороне соединения. Первоначальный запрос отправляется инициатором TFTP-соединения на UDP-порт 69 (порт инициализации), в котором указывается порт соединения. Дальнейший обмен уже происходит через порты, выбранные участниками передачи данных.

Если сервер разрешает запрос, обмен открывается, и указанный файл передается (блоками по 512 байт). Каждый пакет передаваемых данных содержит один блок (512 байт) и номер блока в передаваемом потоке. Поступление каждого блока на хост назначения должно быть подтверждено пакетом ACK (подтверждение), с номером поступившего блока. Только после получения пакета подтверждения будет отправлен следующий пакет данных.

Если длина пакета менее 512 байт - это служит сигналом для закрытия канала связи. В случае потери пакета при передаче, через некоторый промежуток времени сервер отправит этот пакет данных повторно.

Три типа ситуаций порождают отправку ошибочных пакетов:

  • Не подтвержденный запрос, например, не был найден файл, нет прав доступа и др.

  • Неправильный формат пакета, например, произошла ошибка коммутации.

  • Потеря доступа к требуемому ресурсу.

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

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

SFTP поддерживает механизмы идентификации пользователя, передачу файлов, просмотр каталогов, изменение текущего каталога, переименование и удаление файлов. В большинстве операций, которые пользователь проводит с удаленным FTP-сервером, этого сервиса вполне достаточно. SFTP может передавать 8-битный поток данных и использует, как TFTP, только один канал соединения - как для команд, так и для данных. В отличие от TFTP, SFTP работает поверх TCP, порт 115.

Команда SFTP имеют почти тот же синтаксис и предназначение, что и аналогичные команды FTP.

SFTP вполне удовлетворяет работе с одним пользователем и одним сервером, кроме того, его легко использовать и программировать.

    1. Утилита FTP

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

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

По сути, FTP-утилита представляет собой интерпретатор команд оболочки в команды (и их последовательности) FTP-протокола. Отправка команд FTP-соединения, анализ ответов сервера FTP, открытие канала передачи данных, процесс передачи данных — все это происходит внутри FTP-модуля. Обо всех событиях передачи команд и данных пользователь информируется в соответствии с интерпретацией этих событий FTP-утилитой.

В качестве примера приведен сценарий передачи с FTP-сервера текстового файла на локальный хост.

C:\>ftp ftp> open ftp.sun.com 220-Welcome to Sun Microsystems Corporate FTP Server. 220- 220- ftp FTP server (ftpd Wed Oct 30 23:31:06 PST 1996) ready. User (ftp.sun.com: (none)): ftp 331 Guest login ok, send your complete e-mail address as password. Password: 230 Guest login ok, access restrictions apply. ftp> dir 200 PORT command successful. 150 Opening ASCII mode data connection for /bin/ls. total 34 dr-xr-xr-x 8 root 0 512 Feb 14 1997 . d--x--x--x 3 root users 512 Oct 31 1996 etc drwxrwx-wt 3 root 42 5120 Nov 21 10:37 incoming drwxrwxr-x 12 root 42 4096 Nov 19 23:26 pub dr-xr-xr-x 4 root users 512 Jun 7 1996 usr -rw-r--r-- 1 root users 49 Sep 27 1996 welcome.msg 226 Transfer complete. 624 bytes received in 19,66 seconds (0,03 Kbytes/sec) ftp> get welcome.msg primer.txt 200 PORT command successful. 150 Opening ASCII mode data connection for welcome.msg (49 bytes). 226 Transfer complete. 50 bytes received in 2,73 seconds (0,02 Kbytes/sec) ftp> quit 221 Goodbye.

Синтаксис команды:

ftp [-v] [-d] [-n] [host]

  • v - подавляет ответы серверы и статистику передачи данных;

  • n - управляет режимом идентификации пользователя. Если указан этот ключ, то сначала проверяется файл .netrc;

  • i - выключает подтверждения передачи файла при массовом копировании файлов;

  • d - включает режим отладки;

  • g - отключает прозрачность передачи имен.

Важными командами являются команды приема/передачи данных get, put, mget, mput и bin. Команды get и put предназначены соответственно для приема и передачи одного файла. Команды mget и mput выполняют те же действия, что и предыдущие, но для группы файлов. Команда bin позволяет передавать данные в двоичном режиме, что важно для передачи программ и архивов, кроме того, этот режим бывает полезен для символьных данных с произвольной длиной строки (ASCII ограничивает длину строки 254 символами). Другой полезной командой является команда hash. Строка: “ftp> hash #” при работе с медленными линиями или передаче больших файлов

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]