Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические указания к лаб работам.doc
Скачиваний:
28
Добавлен:
27.08.2019
Размер:
456.7 Кб
Скачать

Лабораторная работа №3 Протокол ftp

File Transfer Protocol (FTP) предназначен для передачи данных в интернете независимо от платформы на которой он установлен, он основан на клиент/сервер архитектуре. RFC 959[1] определяет FTP разделив его на 2 различных канала. Один служит для отправки данных (через TCP-порт 20), а другой для передачи команд (TCP-порт 21). Этим каналом управляют клиент и сервер, обмениваясь друг с другом информацией о передаваемых данных.

FTP соединение происходит в несколько этапов:

  • Авторизация пользователя

  • Установление соединения на 21 порт

  • Установка соединения на 20 порт

  • Закрытие соединения

Контроль над передачей данных выполняет протокол TCP (Transmission Control Protocol), который гарантирует получателю доставку сообщения, поэтому FTP нет необходимости проверять были ли пакеты потеряны и произошли ли какие-нибудь ошибки во время их передачи. TCP гарантирует, пришли ли они без ошибок и в правильной последовательности.

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

  • Поток

  • Блок

  • Сжатие

Определяют еще два различных режима:

  • ASCII-режим

  • Binary-режим

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

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

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

Использование ftp

Для соединение с удаленной FTP-site в ответ на системное приглашение (>) введите:

> ftp [address]|[name]

или

> ftp

ftp> open [address]|[name]

где [address] - адрес, [name] доменное имя удаленной FTP-site, например:

> ftp

ftp> open fti.sitc.ru

Если удаленная FTP-site не отвергла посланный запрос на соединение, например, по причине перегруженности, она запросит входное имя (login). Как правило, можно ввести ftp или anonymous. Если дополнительно запрашивается пароль (Passwd), обычно нужно ввести свой адрес в Сети (таким образом, термин anonymous не понимается в буквальном смысле, так как для подключения к серверу может быть проведена проверка указанного и реального обратного адреса, а те, у кого anonymous ошибочно ассоциируется с анонимностью, могут всегда пользоваться вместо anonymous именем ftp). Если на данной FTP-site нет запрета доступа для сторонних абонентов, можно обратиться к его архиву.

Основные команды ftp

Некоторые FTP команды могут отличаться в зависимости от типа компьютерной платформы и используемой операционной системы, но в целом это обычные UNIX команды. Вы всегда можете проверить их список набрав 'help' или '?'. Кроме того, если вы работаете в UNIX системе, то как правило, справочная информация о FTP доступна по команде man - наберите 'man ftp' или 'man ftpd'. В manual pages OS UNIX содержатся исчерпывающие данные о командах, и о их синтаксисе.

open - устанавливает связь с FTP-site. Эта команда нужна, если при вызове программы ftp связь с требуемой FTP-site не была установлена, например, из-за ошибки в названии удаленной машины. Она применяется также при обращении к разным FTP-site во время сеанса работы с ftp. При этом нужно сначала закрыть связь с одной ftp-площадкой с помощью команды close, а затем вызвать другую машину.

Пример:

ftp> open ftp.ict.nsc.ru

user - позволяет повторно ввести входное имя и пароль. Полезна, скажем, если удаленная машина не допускает пользователей с именем ftp, но может допустить с именем anonymous.

Пример:

ftp> user anonymous

close - закрывает связь с данной FTP-site

bye или quit. - Закрывает все связи и прекращает выполнение программы ftp.

help или ? - запрашивает помощь по командам ftp, поддерживаемых на вашей локальной машине. Может иметь параметр - имя интересующей команды. Если параметр не задан, выводит список команд ftp, аналогичный данному описанию, на английском языке.

remotehelp - запрашивает справку, какие команды ftp поддерживает удаленный FTP сервер.

! [команда[аргументы]]

Выход в shell - интерпретатор на вашей локальной системе.

Просмотр содержимого архива

Как правило удаленный FTP-сервер размещают на компьютере, работающим под какой-либо разновидность ОС Unix. Файловая система Unix по сравнению с MS DOS имеет некоторые особенности. Хотя она организована иерархически, подобно MS-DOS, имена каталогов в ней разделяются символом "/", а не "\". Корневой каталог обозначается просто как "/" (в том числе и корневой каталог FTP сервера).

Имя файла может иметь произвольную (Unix этих ограничений на формат имени файла и, более того, у файла может быть несколько префиксов (расширений), начинающихся с точки, например, file.my.love. И самое главное, в отличие от MS DOS и MS Windows, строчные и прописные буквы в именах файлов считаются различными .

Установив соединение с файловой системой удаленного компьютера, ориентироваться и перемещаться в ней можно, используя стандартные команды с параметрами (ключами) или без параметров операционной системы Unix:

pwd - Определить текущий каталог на удаленном компьютере.

ls - Просмотреть краткий список файлов и подкаталогов. В качестве параметра можно задать имя интересующего вас каталога или способ выдачи информации о файлах из каталого. Если параметр каталога не задан, подразумевается текущий каталог. Команда ls с ключом -l дает более подробную информацию, включая размер файлов, их принадлежность и дату создания. У команды ls очень много ключей, но используются довольно часто ключи -l (или -al - выдать полную информацию о файлах).

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

mls - Поместить краткий список файлов и подкаталогов каталога на удаленной машине в файл на локальном устройстве.

mdir - Поместить детальный список файлов и подкаталогов каталога на удаленной машине в файл на локальном компьютере.

mkdir - Создать каталог на удаленной машине.

ftp>mkdir [имя_каталога]

cd - Перейти в другой каталог на удаленном компьютере.

lcd - Перейти в другой каталог на локальном компьютере.

Примечание: некоторые программные оболочки, поддерживающие протокол FTP, команды, относящиеся к локальному компьютеру, начинают с символа "!" (! - выход в shell интерпретатор локальной машины), т.е. предыдущая команда lcd может быть эквивалентна команде !cd.

Примеры:

ftp> lcd /pub/doc

ftp> dir internet/example

ftp> mdir /doc/ftp/news_ftp.txt

Установка режимов передачи файлов (все команды без параметров)

ascii - Устанавливает текстовый режим передачи файлов.

binary или bin - Устанавливает бинарный режим, необходимый например, для передачи исполняемых файлов.

verbose - Включает/выключает вывод протокольных и статусных сообщений удаленной машины.

prompt - Включает/выключает запросы на переход к передаче очередного файла в макрокомандах типа mget *.

Команды передачи файлов

При работе с файлами вы можете, либо указать его полное имя в текущем каталоге (или вместе с путем от корня или от текущего каталога), либо использовать групповую операцию UNIX'а (маску). При задании маски используются правила, принятые в OS UNIX: символ "*" обозначает любое количество символов, стоящих на его месте; символ "?" обозначает один символ, стоящий на его месте.

get или recv -

ftp>get [удаленный_файл] [локальный_файл]

Получить файл с удаленного компьютера. В качестве обязательного параметра требуется указать имя этого файла на удаленной машине. Допускает второй параметр - новое имя файла на локальном компьютере. Пример:

ftp> get /pub/winsite/news/win.zip

mget -

ftp>mget [список удаленных_файлов]

Получить несколько файлов по списку или в соответствии с маской. Пример. Получить файл news.txt и все файлы с расширением tex:

ftp> mget news.txt *.tex

put или s - Переслать файл с локальной машины на удаленную. По аналогии с командой get указывается имя файла на локальном компьютере в качестве параметра. Вторым параметром может быть указано новое имя файла на удаленной машине (по умолчанию сохраняется имя локального файла). Пересылать файлы можно только при авторизованном доступе к FTP архиву или в специально выделенный для этого каталог, как правило, имеющий имя incoming. Пример:

ftp> put myfile newmyfile.

mput - Переслать несколько файлов по списку или маске. Пример. Переслать файл myfile.txt и все файлы с расширением doc:

ftp> mput myfile.txt *.doc

delete [имя_файла] -

Стереть файл на удаленной машине (требует авторизованного доступа).

Замечание: Многие UNIX системы позволяют организовать режим "докачки" файлов (reget) после прерванного соединения. К сожалению этот режим не работает под операционными системами MS Windows.

Важный момент: обрыв передачи файлов. Для этого используется команда: Ctrl-C (^C). Команда Ctrl-D (^D) обычно закрывает соединение с удаленным компьютером. Таким же образом следует действовать при получении сообщения о запуске команды shutdown на системе, с которой вы работаете (перезагрузка или выключение компьютера). Однако при этом локальный процесс FTP может остаться на удаленной системе и администратор вынужден "убивать" его вручную, это считается "дурным тоном" в поведении пользователя.

Некоторые серверы допускают выполнение команды 'ls-lR' (рекурсивный вывод всех файлов), либо уже содержат индексные файлы, хотя они могут иметь порой очень большой размер - порядка нескольких МБ. В этих файлах FTP сервера представляют информацию о своем содержании под кодовыми названиями index, fullindex или readme (и т.п.), как в корневом каталоге так и в других. В этих файлах, как правило, содержится каталог (список с краткой аннотацией) файлах из данном каталога или FTP сервера в целом. Прочитав эти файлы, вы сэкономите свое время, требуемое для поиска нужной вам информации и время загрузки сети.