Различие работы пассивного режима и активного. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Различие работы пассивного режима и активного.



5.2.1.1 Активный режим

Действия сервера и клиента:

1. Клиент устанавливает связь и посылает запрос на 21 порт сервера с порта N (N>1024)

2. Сервер посылает ответ на порт N (N>1024) клиента

3. Сервер устанавливает связь для передачи данных по порту 20 на порт клиента N+1

Активный режим

5.2.1.2 Пассивный режим:

Действия сервера и клиента:

1. Клиент устанавливает связь и посылает запрос (сообщает, что надо работать в пассивном режиме) на 21 порт сервера с порта N (N>1024)

2. Сервер посылает ответ и сообщает номер порта для канала данных P (P>1024) на порт N (N>1024) клиента

3. Клиент устанавливает связь для передачи данных по порту N+1 на порт сервера P (P>1024)

Пассивный режим

Активный FTP выгоден для FTP-сервера, но вреден для стороны клиента. FTP сервер пытается соединиться со случайными высокими (по номеру) портами на клиенте, такое соединение наверняка будет блокировано брандмауэром на стороне клиента.

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

5.2.1.3 Примеры

Ниже приведены примеры запроса клиента и ответа сервера:

5.2.1.3.1 Пример запроса на чтение каталога

Установка соединения
Connecting to ftp.ru...
Connected to ftp.ru [194.87.5.52]


сервер: 220 megillah.demos.su FTP server (Version wu-2.4) ready. - // код ошибки, имя хоста, протокол, версия сервера, только для чтения
клиент: USER anonymous - // имя пользователя
сервер: 331 Guest login ok, send your complete e-mail address as password.- //код ошибки, имя пользователя корректно, нужен пароль
клиент: PASS ****** - // пароль клиента
сервер: 230 Guest login ok, access restrictions apply. - //код ошибки, пользователь идентифицирован, продолжайте
клиент: CWD / - // переход к корневой директории
сервер: 250 CWD command successful. - // команда выполнена успешно
клиент: TYPE A - // передавать информацию в текстовом виде
сервер: 200 Type set to A. - // текстовый тип установлен
клиент: PASV - // сервер должен определить нестандартный порт данных, начать его слушать
сервер: 227 Entering Passive Mode (194,87,5,52,9,75) - // сервер возвращает ip-адрес (194.87.5.52) и номер порта (2383)
клиент: LIST - // передать по соединению данных список имен файлов в директории
сервер: Data connection established - // установлено соединение данных
клиент: 150 Opening ASCII mode data connection for /bin/ls. - // татус файла правилен, подготавливается открытие канала

Передача информации по каналу данных
сообщение: Data transfer started - // начало передачи информации
сообщение: DATA connection closed by remote server - // закрытие канала передачи данных

Информирование клиентом пользователя
сообщение: Received 1 428 bytes in 0:00:00 (35 700 bytes/s) - // сколько байт получено ( 1 428 ), за какое время (ч.мм.сс) и с какой средней скоростью ( 35 700 bytes/s )
сообщение: JOB COMPLETED SUCCESSFULLY - // работа завершена

5.2.1.3.2 Пример запроса файла

Установка соединения
Connecting to ftp.ru...
Connected to ftp.ru [194.87.5.52]


сервер: 220 megillah.demos.su FTP server (Version wu-2.4) ready. - // код ошибки, имя хоста, протокол, версия сервера, только для чтения
клиент: USER anonymous - // имя пользователя
сервер: 331 Guest login ok, send your complete e-mail address as password. - // имя пользователя корректно, нужен пароль
клиент: PASS ****** - // пароль клиента
сервер: 230 Guest login ok, access restrictions apply. - // пользователь идентифицирован, продолжайте
клиент: CWD /www.FAQ.win - // сменить каталог на /www.FAQ.win
сервер: 550 /www.FAQ.win: Not a directory. - // директория /www.FAQ.win не найдена
клиент: TYPE I - // передавать файл в бинарном виде
сервер: 200 Type set to I. - // бинарный тип установлен
клиент: STAT /www.FAQ.win - // запрос информации о файле /www.FAQ.win
сервер: 211-status of /www.FAQ.win: - // начало передачи информации
сервер: -rw-r--r-- 1 root root 31368 Jan 18 1999 /www.FAQ.win - // продолжение передачи информации
сервер: 211 End of Status - // конец передачи информации
клиент: PASV - // сервер должен определить нестандартный порт данных, начать его слушать
сервер: 227 Entering Passive Mode (194,87,5,52,9,79) - // сервер возвращает ip-адрес (194.87.5.52) и номер порта (2383)
клиент: REST 64 - // начать докачку файла, пропустив первые 64 байта
сервер: Data connection established - // установлено соединение данных
сервер: 350 Restarting at 64. (null) - // команда принята
клиент: REST 0 - // начать докачку файла, пропустив первые 0 байтов
сервер: 350 Restarting at 0. (null) - // команда принята
клиент: RETR /www.FAQ.win - // выдать файл www.FAQ.win
сервер: 150 Opening BINARY mode data connection for /www.FAQ.win (31368 bytes). - // статус файла правилен, подготавливается открытие канала данных, размер файла 31 368 байт

Передача информации по каналу данных
сообщение: Data transfer started - // начало передачи файла
сообщение: DATA connection closed by remote server - // закрытие канала передачи данных

Информирование клиентом пользователя
сообщение: Received 31 368 bytes in 0:00:02 (10 477 bytes/s) - // сколько байт получено ( 31 368 ), за какое время (ч.мм.сс) и с какой средней скоростью (10 477 bytes/s)
сообщение: JOB COMPLETED SUCCESSFULLY - // работа завершена

5.2.1.4 Некоторые команды

управления доступом
USER - имя пользователя
PASS - пароль
CWD - имя новой рабочей директории
CDUP - перейти на один уровень директории вверх
QUIT - выход

установки параметров передачи
PORT ip1,ip2,ip3,ip4,p1,p2 - IP адрес клиента (ip1,ip2,ip3,ip4) и порт (p1,p2) (расчет порта p1*256+p2=номер порта)
Пример:
Entering Passive Mode (194,87,5,52,9,79)
194.87.5.52 - IP адрес
2383 - номер порт, расчет порта 9*256+79=2383
PASV - сервер должен определить нестандартный порт данных, начать его слушать и вернуть ip-адрес и номер порта в формате PORT
TYPE { { A | E } [ N | T | C ] } | I | L размер-байта (по умолчанию - A N) - специфицирует тип информации

действия
RETR - имя файла (взять файл)
STOR - имя файла (передать файл)
REST - маркер (для докачки уже частично скаченного файла - обычно указывается смещение в байтах)
DELE - имя удаляемого файла
RMD - имя удаляемой директории
MKD - имя создаваемой директории
PWD - в ответе указать имя текущей директории
LIST [имя директории или файла] - передать по соединению данных список имен файлов в директории или информацию о файле
SYST - ответ должен содержать тип ОС сервера и др. полезную информацию
STAT - ответ содержать информацию о текущем состоянии сервера; если команда выдана в процессе передачи файла и предварена посылкой сигналов telnet-а IP и Synch, то ответ д. содержать информацию о состоянии пересылки
STAT имя файла - ответ должен содержать информацию о файле

прочее
HELP [имя команды] - описание работы данной команды
NOOP - пустая команда

5.2.1.5 Некоторые типы данных:

· ASCII (TYPE A) - передача текстовой информации

· IMAGE (TYPE I) - передача бинарных файлов

5.2.1.6 Коды возврата

При выполнении FTP система возвращает трехразрядные десятичные коды-ошибки, которые позволяют судить о корректности обмена. Выдача кода сопровождается текстом-комментарием. Первая цифра может принимать значения от 1 до 5.

Первая цифра:
1yz - предварительный положительный ответ: команда принята, но не завершена
2yz - действие успешно завершено
3yz - команда принята, сервер ждет дополнительную информацию
4yz - временная неудача, повторить через некоторое время
5yz - фатальная ошибка

Вторая цифра:
x0z - синтаксис
x1z - ответ на запрос информации
x2z - ответ относится к состоянию управляющего соединения или соединения данных
x3z - аутентификация и учет
x4z - смысл не определен
x5z - состояние файловой системы сервера

5.2.1.6 Некоторые коды возврата

110 Комментарий

120 Функция будет реализована через nnn минут

125 Канал открыт, обмен данными начат

150 Статус файла правилен, подготавливается открытие канала

200 Команда корректна

211 Системный статус или отклик на справочный запрос

212 Состояние каталога

213 Состояние файла

214 Справочное поясняющее сообщение

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

221 Благополучное завершение по команде quit

225 Канал сформирован, но информационный обмен отсутствует

226 Закрытие канала, обмен завершен успешно

230 Пользователь идентифицирован, продолжайте

250 Запрос прошел успешно

331 Имя пользователя корректно, нужен пароль

332 Для входа в систему необходима аутентификация

421 Процедура не возможна, канал закрывается

425 Открытие информационного канала не возможно

426 Канал закрыт, обмен прерван

450 Запрошенная функция не реализована, файл не доступен, например, занят

451 Локальная ошибка, операция прервана

452 Ошибка при записи файла (не достаточно места)

500 Синтаксическая ошибка, команда не может быть интерпретирована (возможно, она слишком длинна)

501 Синтаксическая ошибка (неверный параметр или аргумент)

502 Команда не используется (нелегальный тип MODE)

503 Неудачная последовательность команд

504 Команда не применима для такого параметра

530 Система не загружена (not logged in)

532 Необходима аутентификация для запоминания файла

550 Запрошенная функция не реализована, файл не доступен, например, не найден

552 Запрошенная операция прервана, недостаточно выделено памяти

5.2.1.7 Соединение к FTP с помощью Telnet

Подсоединимся к командному порту FTP (21):

>telnet ipm.kstu.ru 21

Протокол TFTP

TFTP -тоже протокол FTP, но поверх протокола UDP (т.е. протокол без гарантированной доставки). Может использоваться в локальной сети, где скорость передачи важнее. На практике используется редко.

Программы клиенты

FTP -программа запускается с командной строки.

Windows Comander - может работать как FTP-клиент. Позволяет работать с удаленными каталогами также как с локальными.

NetVampire - Специализированный FTP-клиент, который позволяет качать большие файлы и качать по плохим каналам.

· Лекция 6 - Служба WWW. Протокол HTTP.

· Семенов Ю.А. (ГНЦ ИТЭФ)

· Гипертекстный протокол HTTP Семенов Ю.А. (ГНЦ ИТЭФ)

· Лабиринт Internet. Павел Храмцов, Электронинформ, 1996

· Описание протокола HTTP

· HTTP -- CGI

· HTTP - Hypertext Transfer Protocol Overview - официальная документация

Служба WWW

Служба WWW (World Wide Web) - предназначена для обмена гипертекстовой информацией.

Проект был предложен в 1989 году. В 1993 появился первый браузер.

WWW построена по схеме "клиент-сервер".

Браузер (Internet Explorer, Opera...) является мультипротокольным клиентом и интерпретатором HTML. И как типичный интерпретатор, клиент в зависимости от команд (тегов) выполняет различные функции. В круг этих функций входит не только размещение текста на экране, но обмен информацией с сервером по мере анализа полученного HTML-текста, что наиболее наглядно происходит при отображении встроенных в текст графических образов.

Сервер HTTP (Apeche, IIS...) обрабатывает запросы клиента на получение файла (в самом простом случае).

Взаимодействие клиент и сервера по протоколу HTTP.

В начале служба WWW базировалась на трех стандартах:

· HTML (HyperText Markup Lan-guage) - язык гипертекстовой разметки документов;

· URL (Universal Resource Locator) - универсальный способ адресации ресурсов в сети;

· HTTP (HyperText Transfer Protocol) - протокол обмена гипертекстовой информацией.

Позже добавили:

· CGI (Common Gateway Interface) - универсальный интерфейс шлюзов. Создан для взаимодействия HTTP - сервера с другими программами, установленными на сервере (например, СУБД).

Протокол HTTP

Первый документ (но не стандарт) - RFC1945 (Hypertext Transfer Protocol -- HTTP/1.0 T. Berners-Lee, R. Fielding, H. Frystyk May 1996)

Последняя версия - RFC2616 (Hypertext Transfer Protocol -- HTTP/1.1 R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, T. Berners-Lee June 1999)

Hypertext Transfer Protocol - протокол передачи гипертекста, протокол высокого уровня (а именно, уровня приложений).
. Используется службой WWW для передачи Web-страниц.

Протокол HTTP определяет запрос-ответный способ взаимодействия между программой-клиентом и программой-сервером в рамках технологии World Wide Web. Ниже приведены примеры запроса клиента и ответа сервера:

Листинг запроса и ответа HTTP

Установка соединения
Connecting to ipm.kstu.ru...
Connected to ipm.kstu.ru [195.208.44.20]

Запрос клиента:
GET /internet/index.php HTTP/1.1 - (запрос файла и указание протокола HTTP/1.1)
Connection: close - (закрыть соединение после отправки файла)
Host: ipm.kstu.ru - (указание адреса сервера)
Accept: */* - (предпочтение типов данных)
Cache-Control: no-cache - (не кешировать)
Referer: http://ipm.kstu.ru/internet/ - (от куда пришел клиент)
User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows 95) - (название программы клиента)

Ответ сервера
HTTP/1.0 200 OK - (какой протокол используется, 200 - означает, что файл найден)
Date: Wed, 23 Oct 2002 08:32:31 GMT - (дата и время ответа)
Server: Apache/1.3.26 (Unix) PHP/4.1.2 rus/PL30.15 - (название, версия и модули http-сервера)
X-Powered-By: PHP/4.1.2 - (чем создана страница)
Connection: close - (закрыть соединение после получения файла)
Content-Type: text/html; charset=windows-1251 - (тип данных html, кодировка windows-1251)

Дальше идет содержимое файла (тело запроса).

Работа по протоколу HTTP происходит следующим образом: программа-клиент устанавливает TCP-соединение с сервером (стандартный номер порта-80) и выдает ему HTTP-запрос. Сервер обрабатывает этот запрос и выдает HTTP-ответ клиенту.

HTTP-запрос состоит из заголовка запроса и тела запроса, разделенных пустой строкой. Тело запроса может отсутствовать.

Заголовок запроса состоит из главной (первой) строки запроса и последующих строк, уточняющих запрос в главной строке. Последующие строки также могут отсутствовать.

Запрос в главной строке состоит из трех частей, разделенных пробелами:

1) Метод (иначе говоря, команда HTTP):

GET - Метод GET служит для получения любой информации, в соответствии URI-запроса.

HEAD - запрос заголовка документа. Отличается от GET тем, что выдается только заголовок запроса с информацией о документе. Сам документ не выдается.

POST - этот метод применяется для передачи данных CGI-скриптам. Сами данные следуют в последующих строках запроса в виде параметров.

PUT - поместить документ на сервере. Запрос с этим методом имеет тело, в котором передается сам документ.


DELETE -используется для удаления ресурсов, идентифицированных с помощью URI-запроса

2) Ресурс - это путь к определенному файлу на сервере (называется URI), который клиент хочет получить (или разместить - для метода PUT). Если ресурс - просто какой-либо файл для считывания, сервер должен по этому запросу выдать его в теле ответа. Если же это путь к какому-либо CGI-скрипту, то сервер запускает скрипт и возвращает результат его выполнения. Кстати, благодаря такой унификации ресурсов для клиента практически безразлично, что он представляет собой на сервере.

3) Версия протокола - версия протокола HTTP, с которой работает клиентская программа.

Строки после главной строки запроса имеют следующий формат:

Параметр: значение.

Таким образом, задаются параметры запроса. Это является необязательным, все строки после главной строки запроса могут отсутствовать; в этом случае сервер принимает их значение по умолчанию или по результатам предыдущего запроса (при работе в режиме Keep-Alive).



Поделиться:


Последнее изменение этой страницы: 2017-02-22; просмотров: 261; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.222.182.105 (0.044 с.)