Методические указания по выполнению лабораторного практикума дисциплина Сети эвм и телекоммуникации
Скачать 389.91 Kb.
|
6.2 Особенности управления процессом обмена данными Основу передачи данных FTP составляет механизм установления соедине- ния между соответствующими портами и выбора параметров передачи. Каждый участник FTP-соединения должен поддерживать порт передачи данных по умолчанию. По умолчанию «Программа передачи данных пользователя» ис- пользует тот же порт, что и для передачи команд, а «Программа передачи дан- 61 ных сервера» использует порт L-1, где L – управляющий порт. Однако для ус- корения процессов обмена данными участники соединения часто используют другие порты передачи данных. Передача данных может вестись в активном или пассивном режиме. Если доступ к ftp-серверу осуществляется через proxy-сервер, то возможна работа только в пассивном режиме. Установление соединения передачи данных при активном режиме ра- боты происходит следующим образом: 1. Клиент создает сокет на выбранном им порте Р и активизирует его (переводит в режим ожидания соединения). 2. Клиент направляет серверу по управляющему соединению команду PORT (описание приведено ниже), в которой указывает свой IP-адрес и вы- бранный для передачи данных порт Р. 3. В случае успешного получения и обработки команды PORT сервер по управляющему соединению отправляет клиенту положительный отклик. Затем сервер пытается соединиться с портом Р клиента со своего локального порта данных А (может быть выбран сервером произвольно). 4. Клиент обнаруживает событие соединения на порт Р и начинает про- цесс передачи данных с использованием управляющего соединения для отправ- ки команд FTP-сервиса и соединения передачи данных для получения либо от- правки данных. Установление соединения передачи данных при пассивном режиме работы происходит следующим образом: 1. Клиент отправляет по управляющему соединению команду PASV, указывающую серверу о намерении клиента работать в пассивном режиме. 2. В случае успешного получения и обработки команды PASV сервер создает сокет на выбранном им порте Р, активизирует его (переводит его в ре- жим ожидания соединения) и отправляет клиенту по управляющему соедине- нию отклик, в котором указываются параметры соединения (IP-адрес сервера и порт Р). 62 3. Клиент, получив положительный отклик с параметрами соединения, создает на произвольном порте А сокет и активизирует его, то есть пытается соединиться с портом Р сервера. 4. В случае успешного установления соединения клиент начинает про- цесс передачи данных с использованием управляющего соединения для отправ- ки команд FTP-сервиса и соединения передачи данных для получения либо от- правки данных. Одновременно с передачей данных по установленному соединению в обо- их режимах по каналу «Интерпретатор протокола сервера» – «Интерпретатор протокола пользователя» могут передаваться уведомления о получении дан- ных. Протокол FTP требует, чтобы управляющее соединение было открыто, пока по каналу обмена данными идет передача. Как правило, сервер FTP ответственен за открытие и закрытие канала пе- редачи данных. Сервер FTP должен самостоятельно закрыть канал передачи данных в следующих случаях: 1. Сервер закончил передачу данных в формате, который требует закры- тия соединения. 2. Сервер получил от пользователя команду «прервать соединение». 3. Пользователь изменил параметры порта передачи данных. 4. Было закрыто управляющее соединение. 5. Возникли ошибки, при которых невозможно возобновить передачу данных. 6.3 Команды и ответы протокола FTP Все команды протокола FTP отправляются «Интерпретатором протокола пользователя» в текстовом виде – по одной команде в строке. Каждая строка команды – идентификатор и аргументы – заканчиваются символами CRLF. Имя команды отделяется от аргумента символом пробела. Обработчик команд возвращает код обработки каждой команды, состоя- щий из трех цифр. Коды обработки составляют определенную иерархическую структуру и, как правило, определенная команда может возвратить только оп- 63 ределенный набор кодов. За кодом обработки команды следует символ пробела и текст пояснения. Описание команд и основных кодов ответов приведено в пункте 6.5 «Справочные данные». Команды протокола FTP, которыми обмениваются «Интерпретатор прото- кола сервера» и «Интерпретатор протокола пользователя», можно разделить на три группы. 1. Команды управления доступом к системе обеспечивают авторизацию пользователя в системе, выход из нее и настройку некоторых текущих парамет- ров соединения. 2. Команды управления потоком данных устанавливают параметры пе- редачи данных. Все параметры, описываемые этими командами, имеют значе- ние по умолчанию, поэтому команды управления потоком используются только тогда, когда необходимо изменить значение параметров передачи, используе- мых по умолчанию. Команды управления потоком могут подаваться в любом порядке, но все они должны предшествовать командам FTP-сервиса. 3. Команды FTP-сервиса определяют действия, которые необходимо про- извести с указанными файлами. Как правило, аргументом команд этой группы является имя файла. 6.4 Задание на лабораторную работу 1. Ознакомиться с теоретическим и справочным материалом. 2. Запустить приложение простейшего ftp-сервера «babyftp.exe». Сервер поддерживает работу только с анонимными пользователями (имя пользователя – «anonymous», пароль – любой адрес электронного почтового ящика). Пара- метры доступа настраиваются в окне «Settings». 3. Разработать приложение ftp-клиента, реализующие следующие функ- ции: − создание и удаление папок; − перемещение по папкам; − чтение списка содержимого папки; 64 − получение, отправка, удаление и переименование файлов. Для получения списка содержимого папки необходимо использовать ак- тивный режим. Для получения и отправки файлов – пассивный. Приложение использует для обмена с сервером транспортный протокол TCP/IP. Процесс об- мена командами и ответами должен отображаться на экране. Примечание: Для отправки файлов на сервер необходимо использовать метод SendStreamThenDrop класса TСustomWinSocket. Данный метод обеспе- чивает автоматическое закрытие соединения после завершения передачи файла. В этом случае для связывания метода с файлом необходимо создать файловый поток (класс TFileStream). 6.5 Справочные данные Команды протокола FTP. 1. Команды управления доступом к системе USER. Как правило, эта команда открывает сессию FTP между клиентом и сервером. Аргументом команды является имя (идентификатор) пользователя для работы с файловой системой. Эта команда может подаваться не только в начале, но и в середине сессии, если, например, пользователь желает изменить идентификатор, от имени которого будут проводиться действия. При этом все переменные, относящиеся к старому идентификатору, освобождаются. Если во время изменения идентификатора происходит обмен данными, обмен заверша- ется со старым идентификатором пользователя. PASS. Данная команда подается после ввода идентификатора пользователя и содержит в качестве аргумента пароль пользователя. CWD. Команда обеспечивает возможность работы с различными катало- гами удаленной файловой системы. Аргументом команды является строка, ука- зывающая путь каталога удаленной файловой системы, в котором желает рабо- тать пользователь. REIN. Команда реинициализации. Эта команда очищает все переменные текущего пользователя, сбрасывает параметры соединения. Если в момент по- 65 дачи команды происходит передача данных, передача продолжается и заверша- ется с прежними параметрами. QUIT. Команда закрывает управляющий канал. Если в момент подачи ко- манды происходит передача данных, канал закрывается после окончания пере- дачи данных. 2. Команды управления потоком данных PORT. Команда указывает серверу адрес и порт, которые будут использо- ваться клиентом для прослушивания соединения. Синтаксис команды: «PORT PASV. Эта команда отправляется серверу для указания, что он должен «слушать» соединение. Ответом на данную команду является строка, содержа- щая адрес и порт узла, находящегося в режиме ожидания соединения. Формат представления данных соответствует формату команды PORT. Команды TYPE, STRU, MODE определяют, соответственно, тип переда- ваемых данных (ASCII, Image и другие), структуру или формат передачи дан- ных (File, Record, Page), способ передачи (Stream, Block и другие). Использова- ние этих команд очень важно при построении взаимодействия в гетерогенных средах и весьма отличающихся операционных и файловых систем взаимодей- ствующих узлов. 3. Команды FTP-сервиса RETR. Эта команда указывает модулю «Программа передачи данных сер- вера» передать копию файла, заданного параметром этой команды, модулю пе- редачи данных на другом конце соединения. STOR. Команда указывает модулю «Программа передачи данных сервера» принять данные по каналу передачи данных и сохранить их как файл, имя кото- рого задано параметром этой команды. Если такой файл уже существует, он будет перезаписан, если нет, будет создан новый. 66 Таблица 6.1 – Основные коды ответов на команды протокола FTP Код Описание 110 Комментарий 125 Канал открыт, обмен данными начат 150 Статус файла правилен, подготавливается открытие канала 200 Команда корректна 220 Слишком много подключений к FTP-серверу (можете попро- бовать позднее). В некоторых версиях указывает на успешное завершение промежуточной процедуры 221 Успешное завершение по команде quit 225 Канал сформирован, но информационный обмен отсутствует 226 Закрытие канала, обмен завершен успешно 230 Пользователь идентифицирован, продолжайте 250 Запрос прошел успешно 331 Имя пользователя корректно, нужен пароль 332 Для входа в систему необходима аутентификация 421 Процедура невозможна, канал закрывается 425 Открытие информационного канала невозможно 426 Канал закрыт, обмен прерван 450 Запрошенная функция не реализована, файл недоступен, на- пример, занят 451 Локальная ошибка, операция прервана 452 Ошибка при записи файла (недостаточно места) 500 Синтаксическая ошибка, команда не может быть интерпрети- рована (возможно, она слишком длинна) 501 Синтаксическая ошибка (неверный параметр или аргумент) 503 Неудачная последовательность команд 504 Команда не применима для такого параметра RNFR и RNTO. Команды должны следовать одна за другой. Первая ко- манда содержит в качестве аргумента старое имя файла, вторая – новое. После- довательное применение этих команд переименовывает файл. ABOR. Команда предписывает серверу прервать выполнение предшест- вующей сервисной команды (например, передачу файла) и закрыть канал пере- дачи данных. DELE. Удаление указанного файла. MKD. Создание указанного в аргументе каталога. RMD. Удаление указанного в аргументе каталога. 67 LIST. Получение списка файлов в указанном каталоге. Передача списка осуществляется по соединению «Программа передачи данных сервера» – «Про- грамма передачи данных клиента». 6.6 Контрольные вопросы 1. Сколько логических соединений необходимо для работы протокола FTP? Каким образом они используются? 2. Какие стадии можно выделить в FTP-сессии? 3. В чем заключается особенность работы протокола FTP в активном ре- жиме? 4. В чем заключается особенность работы протокола FTP в пассивном ре- жиме? 5. Какая сторона соединения отвечает за закрытие канала передачи дан- ных? В каких случаях это происходит? 6. Опишите структуру команды и ответа протокола FTP. 7. На какие группы можно разбить команды протокола FTP? Каково назна- чение команд каждой из групп? 68 Список рекомендуемой литературы 1. Олифер, В.Г. Компьютерные сети. Принципы, технологии, протоколы: Учебник для вузов [Текст] / В.Г. Олифер, Н.А. Олифер. – СПб: Издательство «Питер», 2005, – 864 с. 2. Блэк, Ю. Сети ЭВМ: Протоколы, стандарты, интерфейсы [Текст] / Ю. Блэк. – М.: Мир, 1990. – 506 с. 3. Золотов, С. Протоколы в Internet: Руководство для профессионалов [Текст] / С. Золотов. – СПб.: BHV, 1998, – 304 с. 69 Приложение А (обязательное) Пример оформления титульного листа отчета по лабораторной работе ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ ОРЛОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ Кафедра «Информационные системы» О Т Ч Е Т о выполнении лабораторной работы на тему: «___________________________________» по дисциплине «Сети ЭВМ и телекоммуникации» Выполнил(и):____________________ Шифр:_______________ Ф. И. О. Факультет:___________________________________________________________ Специальность:_______________________________________________________ Группа:_____________ Орел 200_ |