Протокол передачи файлов не требующий аутентификации пользователя

Обновлено: 06.07.2024

Лабораторная работа ставит цели закрепления теоретического материала по протоколам и программному обеспечению службы передачи файлов. В рамках заданий данной лабораторной работы рассматриваются протоколы FTP, TFTP, SFTP и пакеты прикладного ПО для работы с ними.

Ознакомившись с принципами работы основных протоколов передачи файлов, с помощью клиентов служб ftp , tftp и sftp произвести выгрузку заданных файлов с удаленной системы хранения данных и выполнить загрузку указанных файлов на удаленный узел.

5.3. Теоретический материал

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

Несмотря на текущее, постепенное внедрение и распростраенние протоколов, поддерживающих широкие возможности электронного документооборота (например, протоколы WebDAV, SMB, интегрированные сервисы Google Docs и т. д.), службы и протоколы передачи файлов остаются важным приложением в информационном пространстве глобальных и локальных сетей, выполняющим задачи от загрузки файлов на Web-хостинг до распространения программного обеспечения через сетевые репозитории.

Существует несколько вариантов реализаций протокола передачи файлов (FTP), каждая из которых предназначена для наиболее эффективного выполнения задач сетевого обмена информацией. В рамках лабораторной работы будут рассматриваться протоколы TFTP (Trivial File Transfer Protocol), SFTP (SSH File Transfer Protocol) и стандартный протокол IETF FTP. Следует отметить, что протоколы TFTP и FTP имеют официальный статус (стандарт

Internet) и подтверждены спецификациями IETF с номерами RFC 1350 и RFC 959, соответственно. Протокол SFTP разрабатывался в рамках рассмотренного ранее прикладного протокола SSH (IETF RFC 4251), и до настоящего времени является черновиком стандарта (Draft), однако, де-факто, обладает функциональным рядом реализаций (в том числе принятых промышленностью отрасли) и широким распространением среди стандартных служб сети Internet.

Простейший протокол передачи файлов, в качестве сетевого транспорта использует UDP-дейтаграммы. Серверный процесс ожидает получения дейтаграмм на сокете UDP, порт 69. Протоколы FTP и SFTP манипулируют TCPсокетами. SFTP-служба использует туннелирование канала в транспортный TCP поток SSH, т. е. работа сервера SFTP осуществляется поверх работы службы SSH. По-умолчанию для пересылки файлов используется тот же TCPпорт, что и для службы SSH (TCP 22).

Рабочие станции PC

Рис. 5.1. Пересылка файлов в структуре распределенной сети

В отличие от расмотренной ранее утилиты scp из пакета OpenSSH, предназначенной для простого, односеансового, защищенного копирования файлов, служба SFTP реализует не только полный набор возможностей стандартного протокола FTP, но и добавляет шифрование транспортного туннеля, а также возможность аутентификации клиентов по уникальным пользовательским ключам.

В независимости от конкретной реализации, протоколы FTP имеют кли- ент-серверную структуру. Однако базовый протокол FTP отличается достаточно динамичной схемой взаимодействия между клиентским и серверным ПО. По умолчанию используется два соединения между удаленными узлами. Управляющее соединение, инициируемое клиентом, характеризуется пересылкой TCP-сегментов между динамическим сокетом клиента и 21 портом сетевой службы сервера. Данный канал предназначен только для организации текстовой оболочки управления и пересылки командных конструкций (например, загрузка файла, выгрузка, просмотр директорий и т. д.). Направление непосредственной пересылки полезных данных (файлов) зависит от режима работ сервера и клиента FTP.

В первом случае, клиентское ПО, используя управляющее соединение, отсылает серверу номер динамического порта, выделенного ОС для установления внешнего TCP-соединения. После получения соответствующих сегментов TCP-потока, серверная служба FTP попытается установить соединение, используя локальный TCP-порт 20 и указанный динамический порт клиента,

т. е. организовать исходящее соединение от сервера к клиенту. После передачи файлов (любых иных данных) данное соединение будет закрыто, а повторная передача потребует выделения клиентом нового динамического порта, для ожидания входящего подключения с стандартного TCP-порта 20 сервера. Такой режим передачи файлов получил название «активный». На рис. 5.2 изображена условная диаграмма управляющего соединения и пересылки файлов.

10.10.15.8: 41245 ->10.10.15.99: 21

10.10.15.8: 41245 ->10.10.15.99: 21

10.10.15.8: 52345 <-10.10.15.99: 20

Рис. 5.2. Активный режим передачи файлов

Основным и наиболее очевидным недостатком рассмотренного режима является проблема создания соединения с клиентским ПО, расположенным за сетевыми экранами (firewall, netfilter). Политика сетевого экрана, по сложив-

шейся общественной практике, заключается в разрешении всех легитимных исходящих соединений (от клиентов внутренней сети) и запрете любого входящего подключения (извне внутренней сети), не принадлежащего текущим (открытым) исходящим TCP-потокам. Таким образом, все попытки удаленного FTP-сервера установить TCP-подключение к внутреннему клиенту будут завершаться неудачно. Следует подчеркнуть, что указанное ограничение, в подавляющем большинстве случаев, распространяется только на клиентов корпоративных сетей, расположенных, как правило, за сетевыми экранами организации и использующих различные варианты трансляции сетевых адресов (NAT). Кроме этого, следует отметить, что некоторые распространенные реализации серверов служб FTP, функционируя в активном режиме, не используют порт TCP 20, тем самым частично нарушая алгоритм указанный в RFC 959. В таком случае, для создания исходящего соединения сервером FTP используется один из свободных портов TCP динамического диапазона ОС, что дополнительно осложняет взаимодействие удаленных систем через межсетевой экран, поскольку возможность подбора номера порта TCP, с которого будет осуществляться входящее соединение, представляется маловероятной. В любом другом сценарии, когда не существует явного запрета на создание входящих TCP-соединений, допустимо использование активного режима передачи файлов по протоколу FTP.

Для преодоления существующего ограничения в работе с клиентами, расположенными за сетевыми экранами, применяется обратный метод установления транспортного соединения («пассивный» режим). По аналогии с рассмотренным алгоритмом, используется два соединения TCP. Подключение, управляющее сессией FTP, организуется между динамическим портом клиента и 21 TCP-портом FTP-службы сервера. При запросе передачи файлов клиентом, сервер отправляет сегмент с номером динамического порта (поумолчанию, серверная служба FTP использует диапазон TCP-портов 49152– 65534), на котором будет ожидаться входящее подключение, по направлению от клиента к серверу. ОС клиента выделяет еще один динамический TCP-порт и инициирует исходящее подключение к указанному динамическому TCPпорту сервера FTP. На рис. 5.3 изображена диаграмма работы в пассивном режиме.

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

В общем случае, аутентификация пользователя необходима для выделения ряда полномочий учетной записи. Использование набора учетных записей позволяет контролировать и разделять доступные ресурсы сервера между всеми пользователями данной службы. Под ресурсами следует понимать не

p, blockquote 1,0,0,0,0 -->


p, blockquote 2,0,0,0,0 -->

Место протокола FTP в стеке TCP/IP

p, blockquote 3,0,0,0,0 -->

FTP в стеке TCP

p, blockquote 4,0,0,0,0 -->

Принцип работы протокола FTP

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

p, blockquote 5,0,0,0,0 -->

Принцип работы протокола FTP

p, blockquote 6,0,0,0,0 -->

p, blockquote 7,0,0,0,0 -->

URL состоит из 3-х частей:

В отличии от других протоколов прикладного уровня, протокол FTP использует два отдельных соединения. Первое соединение управляющее, второе соединение для передачи данных.

p, blockquote 9,0,1,0,0 -->

оединение управляющее, второе соединение для передачи данных в ftp

p, blockquote 10,0,0,0,0 -->

Взаимодействие с транспортным уровнем

FTP использует протокол транспортного уровня TCP, а для управляющего соединения на сервере используется порт 21. Соединение для данных может быть установлено в двух режимах: в активном и пассивном, при этом используются разные номера портов.

p, blockquote 11,0,0,0,0 -->

В активном режиме FTP инициатором установки соединения для передачи данных является сервер. В этом случае используется порт 20 на сервере, а со стороны клиента порт больше 1024.

p, blockquote 12,0,0,0,0 -->

В активном режиме FTP

p, blockquote 13,0,0,0,0 -->

Однако, если между сервером и клиентом находится межсетевой экран или устройство трансляции сетевых адресов NAT , то сервер установить соединение с клиентом не сможет. В этом случае используется пассивный режим, при котором соединение для передачи данных устанавливает клиент. В пассивном режиме и на клиенте и на сервере используются порты с номерами больше, чем 1024.

p, blockquote 14,0,0,0,0 -->

Аутентификация в FTP

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

p, blockquote 15,0,0,0,0 -->

p, blockquote 16,0,0,0,0 -->

Команды протокола FTP

Протокол FTP, как и многие протоколы прикладного уровня работает в текстовом режиме. Команды FTP похожи на команды протокола POP3 . Большинство из них состоит из 4-х символов, команды:

p, blockquote 17,0,0,0,0 -->

команды протокола FTP

  • Команды USER и PASS используются для аутентификации;
  • LIST позволяет посмотреть содержимое текущего каталога;
  • CWD поменять текущий каталог;
  • RETR позволяет загрузить файл с сервера на клиент;
  • STOR позволяет сохранить файл на сервере;
  • Протокол FTP может передавать данные в двух режимах, текстовом и бинарном. В текстовом режиме возможна отправка управляющих символов, которые будут обработаны специальным образом. В бинарном режиме, обработка специальных символов не производится. Для выбора режима, который будет использоваться для передачи файлов, служит команда TYPE;
  • DELE позволяет удалить файлы;
  • Команды MKD и RMD используются для создания и удаления каталога;
  • По умолчанию FTP сервер работает в активном режиме, т.е. соединение для передачи данных устанавливает сервер. Команда PASV служит для перехода в пассивный режим;
  • Команда QUIT используется для корректного закрытия соединения FTP после того, как все необходимые операции с файлами и каталогами были завершены.

Пример сеанса FTP

Мы подключились к серверу на порт 21, создали управляющее соединение, сервер нам выдал ответ.

p, blockquote 19,0,0,0,0 -->

p, blockquote 20,0,0,0,0 -->

Сначала необходимо пройти аутентификацию. Для этого используется команда USER anonymous и мы хотим подключиться, как анонимный пользователь.

p, blockquote 21,0,0,0,0 -->

p, blockquote 22,0,0,0,0 -->

331 Guest login ok, send your complete e-mail address as password . В данном случае сервер говорит, что он принимает гостевой логин, т.е. идентификатор анонимного пользователя и просит прислать ваш e-mail в качестве пароля.

p, blockquote 23,0,0,0,0 -->

p, blockquote 24,0,0,0,0 -->

Сервер никак не анализирует e-mail, который ему передали, говорит, что аутентификация прошла успешно, но права доступа ограничены 230 Guest login ok, access restrictions apply .

p, blockquote 25,0,0,0,0 -->

Устанавливаем бинарный режим передачи файлов с помощью команды TYPE 1 . Сервер отвечает, что тип передачи данных успешно установлен в 1. 200 Type set to 1 .

p, blockquote 26,0,0,0,0 -->

Мы хотим загрузить сервера в файл, показан путь /pud/tex/latex/llncs2e.zip , но перед тем как загрузить, мы хотим узнать его размер, для этого выдаем команду SIZE /pud/tex/latex/llncs2e.zip . Сервер в ответ выдает размер файла в байтах 213 230229 .

p, blockquote 27,0,0,1,0 -->

Переходим в пассивный режим с помощью команды PASV .

p, blockquote 28,0,0,0,0 -->

пассивный режим FTP

p, blockquote 29,0,0,0,0 -->

В ответ сервер говорит, что он перешел в пассивный режим 227 Entering Passive Mod (213, 71, 6, 142, 35, 141) и передает нам 6 чисел, которые нужно использовать для установки соединения для передачи данных. Первые 4 числа это IP-адрес , вторые два числа используются, чтобы узнать порт на который нужно установить соединение. Первое число 35 нужно умножить на 256 и прибавить второе число 141, так мы узнаем порт.

p, blockquote 30,0,0,0,0 -->

Для того, чтобы загрузить нужный нам файл используем команду RETR /pud/tex/latex/llncs2e.zip . После того, как мы выдали эту команду сервер ждет, что мы установим соединение с IP-адресом и портом, которые он нам указал.

p, blockquote 31,0,0,0,0 -->

После того, как соединение для передачи данных установлено, сервер сообщает нам об этом в управляющем соединении. 150 Opening BINARY mode data connection for /pud/tex/latex/llncs2e.zip (230229 bytes). Также сервер говорит, что передача данных ведется в бинарном режиме.

p, blockquote 32,0,0,0,0 -->

После того, как передача файла закончена, сервер сообщает нам об этом 226 Transfer complete . Клиент выдает команду QUIT чтобы разорвать соединение. Сервер сообщает нам некоторую статистику, сколько было передано байт и файлов. 221 You have transferred 239229 bytes in 1 file . И говорит до свидания 221 Goodbye. На этом сеанс работы по протоколу FTP завершен.

p, blockquote 33,0,0,0,0 -->

Заключение

p, blockquote 34,0,0,0,0 -->

Протокол FTP использует два соединения управляющее соединение и соединение для передачи данных. Использование отдельного соединения для передачи данных, приводят к проблемам в работе FTP с межсетевыми экранами и устройствами NAT. Для решения этой проблемы был придуман пассивный режим FTP при котором соединение для передачи данных устанавливается со стороны клиента. Еще одна проблема низкая безопасность.

Почти все компьютеры мира сегодня подключены к интернету, и работа в сети осуществляется при помощи сетевого протокола. Однако далеко не все пользователи знают, что собой представляет сетевой протокол, в чем заключается назначение и каковы особенности каждого из типов. Ответим в данной статье на эти вопросы.

Что такое сетевой протокол?

Сетевой протокол

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

Типы сетевых протоколов

Типы сетевых протоколов

Функционирование сети основывается на работе сразу нескольких протоколов, располагаемых на разных уровнях. Выделяют следующие уровни протоколов:

  • физический — среда, где осуществляется обмен данными, на этом уровне трансформируются в бинарный код электрические импульсы, которые далее передаются на более высокие уровни (на данном уровне функционируют медиаконвертеры, сигнальные ретрансляторы, хабы);
  • канальный — уровень, на котором данные передаются на хост с целью обработки, а чтобы идентифицировать информацию, применяется MAC-адрес;
  • сетевой — актуализируются IP-адреса, благодаря которым в интернете идентифицируются пользователи, данные поступают пакетами;
  • транспортный — в обязательном порядке осуществляется доставка пакетов к адресатам, протокол отслеживает целостность и корректность донесения информации, для этих целей используются алгоритмы фрагментирования или объединения;
  • сессионный — протоколы обеспечивают поддержку сетевого сеанса, синхронность начала и конца соединения, а также проверяют права на доступ;
  • репрезентативный (уровень представления) — полученная информация декодируется либо кодируется, файлы распаковываются или сжимаются, то есть осуществляется перевод данных на уровень, который подойдет конкретному браузеру (приложению);
  • прикладной — происходит регулировка связи пользователей и сети, даются разрешения на доступ, реализовывается работа протоколов высшего уровня.

Данные типы представлены в порядке иерархии, то есть из действий, которые осуществляются на нижестоящем уровне, вытекают алгоритмы нового уровня.

Особенности и назначение распространенных сетевых протоколов

Назначение сетевых протоколов

Разница между сетевыми протоколами будет более наглядной, если сравнивать наиболее популярные виды, разобраться с особенностями и функциями каждого.

Hyper Text Transfer protocol является основополагающим для функционирования всех интернет-ресурсов. Задача данного протокола — предоставление возможности запроса ресурсов, которые нужны в удаленной системе (к примеру, файлов).

Internet Protocol является маршрутизируемым протоколом на сетевом уровне TCP/IP. Благодаря IP стало возможным объединить во всемирную сеть разные компьютерные сети. Главной целью протокола считается доставка пакетов между разнообразными маршрутизаторами. В числе характерных свойств:

  • отсутствие надежности — гарантию доставки без ошибок обеспечивают на более высоких уровнях протоколов, в то время как IP не исключает дубли, повреждения, нарушения порядка и даже отсутствие отправки;
  • уникальность — для каждого компьютера существуют отдельные IP-адреса, благодаря которым машины находят и идентифицируют друг друга в интернете;
  • фрагментированность — протокол проходит через разнообразные каналы доставки, и в случае превышения возможностей определенных узлов предусмотрено дробление пакетов.

Данный алгоритм реализован при помощи таких видов, как IPv4 и IPv6. В модели TCP/IP он относится к сетевому уровню.

Протокол Secure Shell реализован на уровне приложений и предназначен, чтобы удаленно управлять системой посредством защищенного канала. Данный вариант применяется в работе многих технологий. Подключение по SSH включают такие особенности:

  • шифрование — характерное свойство SSH — авторизация по ключу, то есть происходит кодирование всего трафика, в том числе паролей, с помощью разных алгоритмов;
  • безопасность — данное свойство вытекает из предыдущего, так как благодаря шифрованию увеличивается надежность удаленной работы;
  • возможность сжатия — эта особенность актуальна при передаче информации.

Копирование файлов по SSH позволяет повысить уровень защиты при передаче информации. Secure Shell считается протоколом прикладного уровня, и его прямое назначение — обеспечение удаленного доступа.

File Transfer Protocol — один из самых старых прикладных вариантов. Протокол FTP служит для доступа к удаленным хостам и передачи программного обеспечения. Чтобы точнее понимать, что такое FTP, следует разобраться с его особенностями. Так, свойства протокола подразумевают:

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

Post Office Protocol Version 3 — стандартный вариант на прикладном уровне, который задействуется клиентами email-сервисов. Главная задача POP3 — обеспечить отправку почты с удаленного сервера посредством TCP-соединения.

Помимо данного стандарта, чтобы извлечь электронную почту, также используется IMAP. Как правило, на современных клиентах реализованы оба варианта. Особенности POP3 предусматривают:

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

Media Access Control является протоколом, размещенным на низком уровне. Его задача состоит в том, чтобы идентифицировать устройства локальных сетей. Свойства MAC подразумевают:

  • уникальность — для каждого устройства есть уникальный MAC-адрес, который изначально задан производителем;
  • защиту от ошибок — благодаря созданию и проверке алгоритмов обеспечивается дополнительная защита на этом подуровне;
  • контроль — MAC контролирует доступ к физической среде передачи.

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

Распространенные порты сетевых протоколов

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

Выбор правильного протокола и порта позволяют оптимизировать работу системы и обезопасить соединение. Если протоколы не согласованы между собой, веб-ресурсы будут работать некорректно и давать постоянные сбои.

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

Служба FTP (от протокола - File Transfer Protocol) - предназначена для обмена файлами.

FTP служба построена по хорошо известной схеме "клиент-сервер".

Клиент (браузер,Windows Commander, NetVampir . ) посылает запросы серверу и принимает файлы.

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

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

Служба FTP базируется на двух стандартах:

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

FTP (File Transfer Protocol) - протокол передачи файлов.

Протокол FTP

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

Первый стандарт - RFC114 (File Transfer Protocol A.K. Bhushan Apr-10-1971).

Последняя версия - RFC959 (File Transfer Protocol J. Postel, J.K. Reynolds Oct-01-1985).

FTP отличается от других приложений тем, что он использует два TCP соединения для передачи файла.

Соединение данных - соединение для передачи файлов.

Схема двух каналов соединения по протоколу FTP

В старых версиях для передачи данных использовался только 20-й порт (активный режим), в современных версиях FTP-серверов порт для канала данных может назначаться сервером из нестандартных (N > 1024) портов (пассивный режим).

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

Работа FTP на пользовательском уровне содержит несколько этапов:

Идентификация (ввод имени и пароля).

Определение режима обмена (поблочный, поточный, ascii или двоичный).

Выполнение команд обмена (get, mget, dir, mdel, mput или put).

Завершение процедуры (quit или close).

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

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

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

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

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

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

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

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

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

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

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

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

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


сервер: 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. - // татус файла правилен, подготавливается открытие канала

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 Запрошенная операция прервана, недостаточно выделено памяти

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

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

Протокол TFTP

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

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

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

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

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

text-align: center; src=p соединения

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

Connection (соединение) - может принимать значения Keep-Alive и close. Keep-Alive ("оставить в живых") означает, что после выдачи данного документа соединение с сервером не разрывается, и можно выдавать еще запросы. Большинство браузеров работают именно в режиме Keep-Alive, так как он позволяет за одно соединение с сервером "скачать" html-страницу и рисунки к ней. Будучи однажды установленным, режим Keep-Alive сохраняется до первой ошибки или до явного указания в очередном запросе Connection: close.
close ("закрыть") - соединение закрывается после ответа на данный запрос.

User-Agent - значением является "кодовое обозначение" браузера, например:

Mozilla/4.0 (compatible; MSIE 5.0; Windows 95; DigExt)

Accept - список поддерживаемых браузером типов содержимого в порядке их предпочтения данным браузером, например:

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, */*

Это, очевидно, нужно для случая, когда сервер может выдавать один и тот же документ в разных форматах.

Значение этого параметра используется в основном CGI-скриптами для формирования ответа, адаптированного для данного браузера.

Referer - URL, с которого перешли на этот ресурс.

Host - имя хоста, с которого запрашивается ресурс. Полезно, если на сервере имеется несколько виртуальных серверов под одним IP-адресом. В этом случае имя виртуального сервера определяется по этому полю.

Accept-Language - поддерживаемый язык. Имеет значение для сервера, который может выдавать один и тот же документ в разных языковых версиях.

Формат ответа очень похож на формат запроса: он также имеет заголовок и тело, разделенное пустой строкой.

Заголовок также состоит из основной строки и строк параметров, но формат основной строки отличается от таковой в заголовке запроса.

Основная строка запроса состоит из 3-х полей, разделенных пробелами:

Версия протокола - аналогичен соответствующему параметру запроса.

Код возврата (ошибки, состояния) - кодовое обозначение "успешности" выполнения запроса.

Например, код 200 означает "все нормально" (OK).

Словесное описание ошибки - "расшифровка" предыдущего кода. Например, для 200 это OK, для 500 - Internal Server Error.

Таблица кодов возврата

Connection - этот ответ аналогичен соответствующему параметру запроса.

Если сервер не поддерживает Keep-Alive (есть и такие серверы), то значение Connection в ответе всегда close.

Content-Type - содержит обозначение типа содержимого ответа в MIME.

В зависимости от значения Content-Type браузер воспринимает ответ как HTML-страницу, картинку gif или jpeg, как файл, который надо сохранить на диске, или как что-либо еще и предпринимает соответствующие действия.

Некоторые типы содержимого:

text/html - текст в формате HTML (веб-страница);
text/plain - простой текст (аналогичен "блокнотовскому");
image/jpeg - картинка в формате JPEG;
image/gif - то же, в формате GIF;

Также может передавать кодировку для текстовых данных.

Content-Length - длина содержимого ответа в байтах (размер файла).

Last-Modified - дата и время последнего изменения документа.

Программа TeleportPro.

Бывают ситуации, когда необходимо работать с информацией с локального диска, например:

отсутствие доступа в Internet.

очень медленный канал.

очень большое количество документов.

создание резервной копии, вдруг сервер закроется.

для экономии при оплате канала, при выходе по модему.

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

задание глубины сканирования сайта, и внешних ссылок

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

Читайте также: