Еженедельник Свет в Интернет

Главная

Новости

Статьи и обзоры
  Горожанин
  Обнинск в Internet
  Web Design
  Hardware
  Software
  Безопасность
  Серфинг
  Игродром
  Relax
  Технологии
  Web-обзор
  Интернет-ликбез
  Опросник
  УП-Технологии
  ART.net

Ссылки

Архив

О нас

Контакты

Форумы


Основатель:
К.Николаенко

Главный Редактор:
С.Коротков

Web Design:
Neutron


Наш спонсор






Порт POPULAR.RU
POPULAR.RU RegionalBanner Network.






Океан


НПП Метра - промышленные электронные автомобильные вагонные весы
Goldy Interior - салон офисной мебели: кабинеты руководителей, мебель для персонала

= Технологии =

ИСТИННАЯ ПЕРЕДАЧА ДАННЫХ

(c) Дмитрий Солошенко

окончание, начало в:#6(154)

ОТВЕТЫ СЕРВЕРА

Теперь рассмотрим подробнее, как применяется управляющее соединение. Клиент посылает серверу по протоколу Telnet команды и, когда это необходимо, аргументы к ним. Ответы сервера начинаются с трехзначного числа, обозначающего реакцию сервера и текущее состояние сессии. После трехзначного числа через пробел следует текстовая строка с поясняющим текстом. Если ответ должен содержать несколько строк, то в первой строке после трхзначного числа следует не пробел, а знак "-", далее идут необходимые строки ответа (если строка начинается с цифры, то в ее начало добавляется пробел), заканчивается ответ строкой, начинающейся с того же трехзначного числа. Первая цифра ответа несет в себе общуюю информацию: понят ли запрос клиента, способен ли сервер воспринимать команды или ожидает дополнительных команд. В зависимости от значения первой цифры ответ можно отнести к одному из пяти типов. "1" - предварительно-положительный (Positive Preliminary) - сервер воспринял команду и ее выполнение начато. Клиенту следует дождаться еще одного ответа, перед тем как посылать следующую команду (ответ такого типа клиент получает, например, при открытии соединения данных). "2" - окончательно-положительный (Positive Completion) - команда успешно выполнена, сервер готов к выполнению новых команд (завершение передачи, успешная авторизация или установка параметров). "3" - промежуточно-положительный (Positive Intermediat) - команда воспринята, ожидается дополнительная информация от клиента. "4" - временно-отрицательный (Transient Negative Completion) - команда не выполнена, но причины временны, запрос может быть послан позднее (случайный разрыв соединения; внутренняя ошибка сервера; файл, с которым производится действие, занят). "5" - отрицательный (Permanent Negative Completion) - команда не выполнена по объективным причинам (направильный синтаксис запроса, неподдерживаемая команда, несогласование параметров).
Вторая цифра конкретизирует ответ и указывает, к чему именно относится сообщение сервера. Вариантов тоже может быть пять. "0" - Syntax - синтаксическая ошибка, ошибка в применении или последовательности команд. "1" - Infiormation - сообщение информационнного характера (например, информация о состоянии). "2" - Connection - информация о соединениях (установка, разрыв, ожидание). "3" - Authentication and accounting - вопросы авторизации. "5" - File System - проблемы и состояния файловой системы сервера.

УПРАВЛЯЮЩЕЕ СОЕДИНЕНИЕ

Итак, коиент устанавливает ТСР-соединение на 21-й порт FTP-сервера. Сервер посылает одну или несколько информационных строк с приветствием (код ответа "220" - Sеrvice ready for new user) и, возможно, некоторым описанием сервера (это может быть просто информация о владельце или довольно подробные правила пользования). После этого практически для любого действия сервер потребует авторизации. Поэтому следующая команда, посылаемая клиентом - это USER. Через пробел следует имя, с которым хочет работать пользователь. В Интернете распространены анонимные серверы. Для входа на эти серверы не требуется иметь на них собственных учетных записей, а в качестве имени пользователя передается зарезервированное для этого случая слово anonymous. После чего сервер сообщает, что анонимный доступ разрешен и в качестве пароля нужно ввести свой адрес электронной почты. Пароль следует после команды PASS. После удачной авторизации сервер возвращает ответ с кодом "230" - User logged in, procced.
Сразу после этого клиент производит некоторые действия для подготовки к дальнейшей работе. Команда SYST (system) позволяет узнать, под какой операционной системой работает сервер. Команда FEAT (features) запрашивает информацию о поддерживаемых расширениях FTP. Сервер возвращает список условных обозначений расширений, по одному в каждой строке. Расширений существует множество. Некоторые из них носят чисто информационный характер. Например, расширение SIZE позволяет узнать объем данных,которые будут передаваться для конкретного файла. Этот объем зависит не только от размера файла, но и от типа данных, структуры файла, режима передачи. При помощи расширения MDTM (Modification Time) можно узнать дану последнего изменения файла. Это плезно при восстанавливании прерванного процесса передачи данных.
Затем FTP-клиент делает текущим каталог, в котором будет работать пользователь, (команда CWD) и пытается получить список его содержимого. Для этого тип передаваемых данных устанавливается в ASCII (команда TYPE A), и серверу сообщаются параметры передачи данных: обычный режим (команда PORT) или пассивный (команда PASV). В случае удачного выполнения первой команды сервер взвращает ответ "200" (Command okay), в случае перехода в пассивный режим - "227" (Entering
Passive Mode) и информацию о том, куда должен устанавливать соединение клиент. Клиент жает серверу команду LIST (отобразить содержимое текущего каталога). После этого открывается соединение передачи данных и начинается процесс побайтной передачи оглавления каталога. По завершении передачи сервер возвращает ответ "226" (Closing data connection). Надо заметить, что, например, операция переименования делается в две команды, каждая из которых принимает по одному аргументу, а не в одно, как это происходит в командных процессорах операционных систем. Команда RNFR (rename from) задает исходное имя переименовываемого объекта, а RNTO (rename to) - его новое имя.

ПЕРЕДАЧА ДАННЫХ

Операция закачивания файлов на сервер требует установки дополнительного соединения. Для этого FTP-клиент устанавливает тип даных Image (TYPE I) и отправляет серверу необходимую команду. Для помещения файла на сервер используется команда STOR (store), после которой через пробел следует имя файла. Эта команда открывает соединение данных и указывает FTP-серверу на то, что данные, принятые через это соединение, нужно сохранить с именем, указанным в параметре команды. Если файл с таким именем уже существует, его содержимое будет презаписано. Поэтому есть еще две команды для копирования файла на сервер: STUO (store unique) - сервер сохранит файл под уникальным для указанного каталога именем; APPE (append) - принятые данные будут добавлены к существующему файлу с указанным именем, а если файл не существует, то он будет создан. Команда RETR (retrieve) служит для получения файла клиентом и указывает серверу, что нужно открыть соединение данных и передать по нему файл с именем, указанным в параметре команды. В процессе передачи возможна ситуация, когда соединение данных неожиданно оборвется (например, из-за неполадки в сети, или истечения времени ожидания ТСР-соединения, или по команде пользователя) В таком случае у принимающей стороны останется уже переданная часть данных. Если пользователь решит прдолжить процесс, то, чтобы избежать повторной передачи данных, можно использовать расширение REST (restart). Эта команда указывает серверу, что передаваться будет не файл, а его часть. Синтаксис команды для сервера зависит от метода передачи данных.

БЕЗОПАСНОСТЬ

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



Copyright © Свет в Internet   Designed by Свет в Internet