Главная
Новости
Статьи и обзоры
Горожанин
Обнинск в Internet
Web Design
Hardware
Software
Безопасность
Серфинг
Игродром
Relax
Технологии
Web-обзор
Интернет-ликбез
Опросник
УП-Технологии
ART.net
Ссылки
Архив
О нас
Контакты
Форумы
Основатель: К.Николаенко
Главный Редактор: С.Коротков
Web Design: Neutron
|
|
= Технологии =
ИСТИННАЯ ПЕРЕДАЧА ДАННЫХ
(c) Дмитрий Солошенко
Самой распространенной службой в Интрнет после НТТП и SMNP является, наверное, FTP (File Trasfer Prpnocol). Эта служба может использоваться для различных целей: обепечение доступа к файловым архивам для различных целей; обеспечение доступа к файловым архивам, открытым для пользователей Интрнет; организация сайта; обмен больщими объемами информации через Сеть.
При выполнении всех этих трех действий требуется обмен или односторонняя передача файлов. Протокол FTP дает возможность копировать файлы между клиентом и сервером, просматривать содержимое каталогов, удалять и переименовывать файлы и каталоги на сервере. Протокол FTP выделяется среди прочих протоколов прикладного уровня, устанавливающих соединение ТСТ, тем, что для своей работы он использует больше одного ТСТ-соединения. Ранее рассмотренные протоколы HTTP и SMTP открывали сессию из одного соединения между клиентом и сервером, выполняли все необходимые действия и закрывали сессию. FTP же открывает одно соединение для управления, и оно остается открытым до конца сеанса работы, а другое соединение, предназначенное для передачи данных, периодически открывается и закрывается.
Работа с управляющим соединением происходит по протоколу Telnet. Его подробное описание можно найти в RFC 854. Вкратце же общее назначение протокола Telnet сводится к обмену командами между клиентом и сервером. Обычно пользователь не сам устанавливает сессию Telnet c FTP-сервером, а пользуется FTP-клиентами. Чаще всего такие программы выглядят и раьотают наподобие файловых менеджеров. То есть пользователь работает с содержимым сервера как с содержимым сетевой папки или локального диска. При этом программа-клиент сама заботится о подаче нужных команд серверу обслуживания соединений, а также приеме и передаче файлов.
СОЕДИНЕНИЯ
Рассмотрим подробнее процессы, происходящие с соединениями при работе с протоколом FTP. Для начала клиент устанавливает управляющие (control connection) ТСР-соединения на 21-й порт сервера. Это соединение остается открытым до конца работы с FTP. Через управляющее соединение происходит авторизация пользователя, установка некоторых параметров дальнейшей работы с FTP. Также, используя только управляющее соединение, пользователь может переименовывать и удалять файлы и каталоги, менять текущий каталог, получать информацию о состоянии текущей сессии. Через управляющее соединение на сервер поступают команды, инициирующие передачу данных.
Соединения для передачи данных (data connection) открывается не только для обмена файлами и каталогами, но и для получения клиентом информации о содержимом каталога. Это соединение устанавливается сервером с порта, номер которого на один меньше, чем у управляющего соединения (то есть в большинстве случаев это 20-й порт). Номер порта получателя клиент выбирает сам и сообщает о нем серверу командой PORT. После самой команды через пробел следует шесть десятичных чисел, разделенных запятой. Последние два из них - это 16-битный номер порта, байты которого по отдельности переведены в десятичные числа. Первые четыре числа являются октетами IP-адреса, на который нужно устанавливать соединение для данных. Эта возможность может для ситуации, когда клиент ПЕРЕМЕЩАЕТ ДАННЫЕ МЕЖДУ ДВУМЯ СЕРВЕРАМИ. Существует также и другой метод установки соединения для данных - когда клиент работает в так называемом "пассивном" режиме (passive mode). Для перехода в пассивный режим клиент посылает команду PASV. Сервер возвращает ответ, содержащий шесть чисел. Первые четыре - это IP-адрес FTP-сервера. Последние два - номер порта (выбирается произвольно), на котором он будет ждать соединения. Клиент устанавливает соединение на порт, указанный в ответе сервера. Номер порт-источника на клиенте выбирается числом на один больше, чем у участвующего в управляющем соединении порта.
ТАКИЕ РАЗНЫЕ ПЕРЕДАЧИ
Помимо всяких хитростей с соединениями в FTP изначально заложены широкие возможности по работе с данными различных видов. Различными командами клиент может влиять и на формат передачи, и на процесс преобразования данных для хранения после передачи. Тип файла данных (data type) задается командой TYPE и может иметь четыре различных значения: ASCII, EBCDIC, Image и локальный. После самой команды TYPE через пробел следует условное обозначение самого типа. ASCII(A) и EBCDIC(E) используются для передачи текстовых данных. Image (I) - для передачи двоичных файлов. Локальный тип (L) используется в системах, имеющих в байте отличное от восьми количество бит. В этом случае после обозначения локального типа - L - через пробел ставится количество бит в байте. При любом типе данных передача все равно происходит 8-битными байтами, но после получения система преобразует (если это требуется) данные в соответствии с собственными их представлениями. Таким образом, тип "L-8" равносилен типу "I". На самом деле сейчас используются только типы ASCII и Image. Причем ASCII используется в основном для передачи или скачивания определенных данных. Для текстовых файлов предусмотрено целых три различных типа управления вертикальным форматом (format control), из которого используется только один - non-print - для файлов, не содержащих специальной информации о вертикальном формате. Также существуют по три разных параметра для структуры файла (задается командой STRU) и для режима передачи (задается командой MODE), из которых только одно значение по умолчанию.
ОТВЕТЫ СЕРВЕРА
Теперь рассмотрим подробнее, как применяется управляющее соединение. Клиент посылает серверу протокол Telne команды и, когда это необходимо, аргументы к ним. Ответы сервера начинаются с трехзначного числа, обозначающего реакуию сервера и текущее состояние сессии. После трехзначного числа через пробел следует текстовая строка с поясняющим текстом. Если ответ ложен содержать несколько строк, то в первой строке после трехзначного числа следует не пробел, а знак "-", далее идут необходимые строки ответа (если строка начинается с цифры, то в ее начало добавляется пробел), заканчивается ответ строкой, начинаюшейся с того же трехзначного числа. Первая цифра несет в себе общую информацию: понят ли запрос клиента, способен ли сервер воспринимать команду или ожидает дополнительных команд. В зависимости от значения первой цифры ответ можно отнести к одному из пяти типов. "1" - предварительно-предложительный (Positive Preliminary) - сервер воспринял команду и начал ее выполнение. Клиенту следует дождаться еще одного ответа, перед тем как посылать следующую команду (ответ такого типа клиент получает, например, при открытии соединения данных). "2" - окочательно-положительный (Positive Completion) - команда успешно выполнена, сервер готов к выполнению новых команд (завершение передачи или установка парамметров). "3" - промежуточно-положительный (Positive Intermediate) - команда воспринята, ожидается дполнительная информация от клиента. "4" - временно-отрицательный (Transient Negatie Completion) - команда не выполнена, но причины временны, запрос может быть послан позднее (случайный разрыв соединения; внутренняя ошибка сервера; файл, с которым производится действие, занят). "5" - отрицательный (Permanent Negative Completion) - команда не выполнена по объективным причинам (неправильный синтаксис запроса, неподдерживаемая команда, несогласование параметров).
Вторая цифра конкретизирует ответ и указывает, к чему именно относится сообщение сервера. Вариантов тоже может быть пять. "0" - Information - сообщение информационного характера (например, информация о состоянии). "2" - Connection - информация о соединениях (установка, разрыв, ожидание). "3" - Authentication and accountink - вопросы авторизации. "5" - File system - проблемы и состояния файловой системы сервера.
Окончание следует.
|
|