Сайт о телевидении

Сайт о телевидении

» » Протокол FTP — что это такое, для чего используют. Что такое ftp? Поиск файлов. Способы передачи файлов. Особенности протокола. Основные функции, правила работы

Протокол FTP — что это такое, для чего используют. Что такое ftp? Поиск файлов. Способы передачи файлов. Особенности протокола. Основные функции, правила работы

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

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

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

FTP использует два заданных порта: порт 21 для управления и порт 20 для передачи данных.


Рис. 13.5.

Тип файла

FTP может передавать через соединение для передачи данных следующие типы файлов:

  • ASCII-файл . Это формат, используемый по умолчанию для трансляции текстовых файлов. Каждый символ закодирован с использованием NVT ASCII-символов. Передатчик преобразует файл из собственного представления в NVT ASCII, и приемник преобразует символы NVT ASCII в собственное представление.
  • EBCDIC-файл . Если оба конца соединения используют кодирование EBCDIC , файл может быть передан с использованием EBCDIC -кодирования.
  • Image-файл . Этот файл по умолчанию - формат для передачи двоичных файлов. Файл посылается как непрерывный поток бит без всякой интерпретации и кодирования. Он в большинстве случаев используется для передачи двоичных файлов, таких как компилированная программа.

Если файл закодирован в ASCII или EBCDIC , другие атрибуты должны дополняться, чтобы определить возможность печати файла:

  1. Запрещенный для печати. Это формат по умолчанию для передачи текстовых файлов. Файл не содержит "вертикальных" спецификаций для печати. Это означает, что файл не может быть напечатан без предварительной обработки, потому что он не содержит символов, интерпретируемых для вертикального передвижения печатающей головки . Этот формат используется для файлов, которые будут накоплены и обработаны позднее.
  2. TELNET. В этом формате файл содержит NVT ASCII вертикальные символы, такие, как CR (перевод каретки), LN (перевод строки), NL (новая строка) и VT (вертикальное табулирование). Эти файлы могут быть напечатаны после передачи

Структура данных

FTP может передавать файл по соединению для передачи данных, используя одну из следующих интерпретаций структуры данных:

  • Файловая структура (по умолчанию) . Этот файл не имеет структуры. Это непрерывный поток данных.
  • Структура записи . Этот файл, разделенный внутри записи Он может быть использован только с текстовым файлом.
  • Страничная структура . Это файл, разделенный на страницы, каждая страница имеет номер и заголовок страницы . Страницы могут быть накоплены или достигнуты с помощью произвольного или последовательного доступа.

Режимы передачи

FTP может передавать файл по соединению для передачи данных, используя один из трех следующих режимов передачи:

  • Поточный режим . Это режим по умолчанию. Данные доставляются от FTP к TCP как непрерывный поток данных. TCP отвечает за разбиение данных на сегменты соответствующего размера. Если данные - просто поток байтов (файловая структура), то не нужно никакого признака окончания файла. Окончание файла в этом случае - это разъединение соединения данных отправителем. Если данные разделены на записи (структура по записи), каждая запись будет иметь однобайтный символ окончания записи ( EOR - end of record).
  • Блочный режим . Данные могут быть доставлены от FTP и TCP в блоках. В этом случае блоку предшествует трехбайтный заголовок. Первый байт называется дескриптор блока, следующие два байта определяют размер блока в байтах.
  • Сжатый режим . Если файл большой, данные могут быть сжаты. Метод сжатия использует нормальное кодирование длины. В этом методе последовательное повторное появление блока данных заменяется одним вхождением и числом повторений. В тексте файла это обычно пробел (пустоты). В двоичном файле нулевые символы обычно сжимаются.

FTP использует соединение управления для того, чтобы установить связь между процессом управления клиента. В течение этой связи команды посылаются от клиента к серверу, и отклики посылаются от сервера к клиенту ( рисунок 13.6).


Рис. 13.6.

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

FTP серверы разбросаны по всему миру, но для соединения с ними не требуется знания их физического расположения. В Internet к компьютеру обращаются по адресу. Например, FTP сервер фирмы Borland имеет адрес ftp.borland.com

Итак, предположим, что Вам известен адрес нужного FTP сервера. Теперь неплохо было бы соединиться с ним. Это делается с помощью специальной программы, которая называется FTP клиент. Раньше, когда выход в Internet имели только UNIX-компьютеры, все FTP клиенты были одинаковы: командная строчка со стандартным набором команд и все. Сейчас же, во времена оконных систем, появилось много программ, при использовании которых не требуется запоминать синтаксис команд, а файлы просто-напросто перетаскиваются мышкой. Однако и в их основе лежит стандартная система команд FTP. На каждое действие мышью FTP клиент генерирует последовательность FTP-команд.

Сервис FTP (File Transfer Protocol) позволяет пользователям одной машины получать доступ к файловой системе другой и получать (передавать) файл с машины на машину. FTP является внутренним протоколом передачи файлов операционной системы UNIX.

FTP является интерфейсом пользователя, реализующий ARPANET стандартный (IP) протокол передачи файлов. Эта программа позволяет пользователю передавать файлы между двумя компьютерами, связанными между собой локальной или глобальной сетью. При этом компьютерные платформы могут быть различных типов, что составляет главную особенность сервиса FTP в Internet.

Существует два способа организации доступа к файловой системе удаленного компьютера (системы) по протоколу FTP: авторизованный и анонимный.

Авторизованный доступ. На конкретной удаленной системе использовать авторизованный доступ имеют право только пользователи этой удаленной системы, после подтверждения своего пользовательского имени (login или user name) и пароля (password), то есть после входа в систему. После входа в систему пользователь, как правило, получает доступ к своему домашнему каталогу и ко всем другим файловым ресурсам удаленной системы, к которым он имеет права на доступ.

Анонимный доступ FTP является весьма новой службой Интернет, возникшей в конце 80-х годов. Такой доступ обеспечивается под видом специально выделенного пользователя (которого чаще всего зовут «anonymous» и который имеет пароль, совпадающий с адресом электронной почты). При входе в систему с правами «anonymous» получаете доступ к специально выделенному для этих пользователей каталогом (как правило, только на чтение), который называется FTP-сервером. Сообщать серверу в качестве пароля адрес своей электронной почты не является обязательным, считается правилом «хорошего тона» в поведении пользователя.

С момента организации анонимного FTP доступа на многих машинах в сети Internet созданы такого типа каталоги (анонимного FTP сервера), которые накопили огромные коллекции (терабайты информации) архивов программных средств, всевозможной документации, художественной литературы, компьютерных фильмов, музыки и дp. Как правило, эта служба на большинстве FTP серверах работает бесплатно, хотя существуют сервера (например, в сети RELCOM), которые предоставляют информацию только своим пользователем.

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

Доступ к FTP серверу, в большинстве операционных систем, как правило, организован через вызов специальной утилиты ftp. Хотя существуют различные программные оболочки, как под UNIX (например, ncftp2), так и под MS Windows (например, Norton Navigator), реализующие протокол FTP и облегчающие работу с этой службой Интернет.

Таким образом, если вы имеете IP-соединение и выход в глобальный Интернет, то вызвав утилиту ftp, набрав соответствующий адрес (или имя FTP-сервера), назвавшись «anonymous» и послав в качестве пароля свой E-mail адрес вы получите доступ к выбранному вами файловому архиву.

Например:

>ftp ftp.ict.nsc.ru

ftp>login: anonymous

ftp>passwd: ваш@email.адрес

Анонимный доступ к FTP серверу можно получить также, используя программу просмоторщик WWW страниц (MS Internet Explorer или Netscape Navigator). К тому же большинство FTP серверов позволяют получать файлы и по электронной почте.

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

Простейшая модель работы протокола FTP представлена на рисунке 1. В FTP соединение инициируется интерпретатором протокола пользователя. Управление обменом осуществляется по каналу управления в стандарте протокола TELNET. Команды FTP генерируются интерпретатором протокола пользователя и передаются на сервер. Ответы сервера отправляются пользователю также по каналу управления. В общем случае пользователь имеет возможность установить контакт с интерпретатором протокола сервера и отличными от интерпретатора протокола пользователя средствами.


Рис.1.Модель работы протокола FTP

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

протокол семейства TCP/IP, обеспечивающий возможность найти, получить и переслать нужные файлы через Internet с одного компьютера на другой.

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

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

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

Алгоритм работы протокола FTP состоит в следующем:

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

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

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

После окончания передачи данных, соединение между «Программой передачи данных сервера» и «Программой передачи данных пользователя» закрывается, но управляющее соединение «Интерпретатора протокола сервера» и «Интерпретатора протокола пользователя» остается открытым. Пользователь, не закрывая сессии FTP, может еще раз открыть канал передачи данных.

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

Основу передачи данных FTP составляет механизм установления соединения между соответствующими портами и выбора параметров передачи. Каждый участник FTP-соединения должен поддерживать порт передачи данных по умолчанию. По умолчанию «Программа передачи данных пользователя» использует тот же порт, что и для передачи команд (обозначим его «U»), а «Программа передачи данных сервера» использует порт L-1, где «L»- управляющий порт. Однако участниками соединения используются порты передачи данных, выбранные для них «Интерпретатором протокола пользователя», поскольку из управляющих процессов участвующих в соединении, только «Интерпретатор протокола пользователя» может изменить порты передачи данных как у «Программы передачи данных пользователя», так и у «Программы передачи данных сервера».

Пассивная сторона соединения должна до того, как будет подана команда «начать передачу», «слушать» свой порт передачи данных. Активная сторона, подающая команду к началу передачи данных, определяет направление перемещения данных.

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

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

Сервер закончил передачу данных в формате, который требует закрытия соединения.

Сервер получил от пользователя команду «прервать соединение».

Пользователь изменил параметры порта передачи данных.

Было закрыто управляющее соединение.

Возникли ошибки, при которых невозможно возобновить передачу данных.

Общие недостатки:

– невысокая надежность соединения на плохих линиях;

– встречающиеся проблемы при обрыве соединения со включенным proxy;

– невысокая скорость работы из-за закрытия соединения после пересылки;

– недоступность файлов через ftp, адресуемых через протокол http (хотя это и не недостаток самого http, это его особенность.)

– требуется установка FTP-клиента;

– после закачки необходимо проверить ключевые слова и отправить снимки на проверку через Web-интерефейс

Недостатки FTP-серверов:

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

FTP серверы достаточно неустойчивы к DoS атакам.

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

Недостатки FTP-клиентов:

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

FTP-архивы являются одними из основных информационных ресурсов Internet. Фактически, это распределенный депозитарий текстов, программ, фотографий и прочей информации, хранящейся в виде файлов на различных компьютерах во всем мире.

Информация в FTP-архивах разделена, в основном, на три категории:

Защищенная информация, режим доступа к которой определяется ее владельцами и разрешается по специальному соглашению с потребителем. К этому виду ресурсов относятся коммерческие архивы (к примеру, коммерческие версии программ в архивах ftp.microsoft.com), закрытые национальные и международные некоммерческие ресурсы (например, работы по международным проектам CES или IAEA), частная некоммерческая информация со специальными режимами доступа (например, частные благотворительные фонды).

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

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

Технология FTP была разработана в рамках проекта ARPA и предназначена для обмена большими объемами информации между машинами с различной архитектурой. Главным в проекте было обеспечение надежной передачи, поэтому с современной точки зрения FTP кажется перегруженным излишними редко используемыми возможностями. Стержень технологии составляет FTP-протокол.

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

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

В настоящее время всю систему взаимодействия компонентов FTP-обмена можно представить в виде схемы представленной на рисунке 2.

На этой схеме показано два важных технологических момента: во-первых, доступ к архиву можно осуществлять не только из специализированной программы-клиента, но и из универсального броузера, например Netscape Communicator или Microsoft Internet Explorer, а во-вторых, для поиска информации в FTP-архивах можно воспользоваться программой Archie.

При этом следует четко понимать, что Archie и FTP — это совершенно разные технологии. В большинстве случаев доступ к Archie-серверу пользователи осуществляют из Archie-клиента, который находится на той же машине, что и сервер, т.е. сначала пользователь по Telnet заходит как пользователь Archie, а потом использует программу-клиент (обычно она запускается в качестве оболочки) для доступа к Archie серверу.


Рис.2. Схема взаимодействия компонентов FTP-обмена

FTP site (ftp-страница) —

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

FTP-сервер —

программа, работающая на таком компьютере и обеспечивающая обработку запросов к архиву.

anonymous FTP server —

FTP-сервер, допускающий использование своего файлового архива без паролей доступа.

FTP-клиенты —

программы, используемые для доступа к архивам on-line.

ля соединение с удаленной FTP-site в ответ на системное приглашение (>) введите:

> ftp |

или

> ftp

ftp> open |

где — адрес, доменное имя удаленной FTP-site, например:

> ftp

ftp> open ftp.ict.ncs.ru

Если удаленная FTP-site не отвергла посланный запрос на соединение, например, по причине перегруженности, она запросит входное имя (login). Как правило, можно ввести ftp или anonymous. Если дополнительно запрашивается пароль (Passwd), обычно нужно ввести свой адрес в Сети (таким образом, термин anonymous не понимается в буквальном смысле, так как для подключения к серверу может быть проведена проверка указанного и реального обратного адреса, а те, у кого anonymous ошибочно ассоциируется с анонимностью, могут всегда пользоваться вместо anonymous именем ftp). Если на данной FTP-site нет запрета доступа для сторонних абонентов, можно обратиться к его архиву.

Основные команды FTP следующие.

Некоторые FTP команды могут отличаться в зависимости от типа компьютерной платформы и используемой операционной системы, но в целом это обычные UNIX команды. Вы всегда можете проверить их список набрав ‘help’ или ‘?’. Кроме того, если вы работаете в UNIX системе, то, как правило, справочная информация о FTP доступна по команде man — наберите ‘man ftp’ или ‘man ftpd’. В manual pages OS UNIX содержатся исчерпывающие данные о командах, и об их синтаксисе.

open —

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

Пример:

ftp> open ftp.ict.nsc.ru

user —

позволяет повторно ввести входное имя и пароль. Полезна, скажем, если удаленная машина не допускает пользователей с именем ftp, но может допустить с именем anonymous.

Пример:

ftp> user anonymous

close —

закрывает связь с данной FTP-site

bye или quit.

Закрывает все связи и прекращает выполнение программы ftp.

help или? —

запрашивает помощь по командам ftp, поддерживаемых на вашей локальной машине. Может иметь параметр — имя интересующей команды. Если параметр не задан, выводит список команд ftp, аналогичный данному описанию, на английском языке.

remotehelp —

запрашивает справку, какие команды ftp поддерживает удаленный FTP сервер.

! [команда[аргументы]]

Выход в shell — интерпретатор на вашей локальной системе.

Как правило, удаленный FTP-сервер размещают на компьютере, работающим под какой-либо разновидность ОС Unix. Файловая система Unix по сравнению с MS DOS имеет некоторые особенности. Хотя она организована иерархически, подобно MS-DOS, имена каталогов в ней разделяются символом «/», а не «\». Корневой каталог обозначается просто как «/» (в том числе и корневой каталог FTP сервера).

Имя файла может иметь произвольную (Unix этих ограничений на формат имени файла и, более того, у файла может быть несколько префиксов (расширений), начинающихся с точки, например, file.my.love. И самое главное, в отличие от MS DOS и MS Windows, строчные и прописные буквы в именах файлов считаются различными.

Установив соединение с файловой системой удаленного компьютера, ориентироваться и перемещаться в ней можно, используя стандартные команды с параметрами (ключами) или без параметров операционной системы Unix:

pwd —

Определить текущий каталог на удаленном компьютере.

ls —

Просмотреть краткий список файлов и подкаталогов. В качестве параметра можно задать имя интересующего вас каталога или способ выдачи информации о файлах из каталогов. Если параметр каталога не задан, подразумевается текущий каталог. Команда ls с ключом -l дает более подробную информацию, включая размер файлов, их принадлежность и дату создания. У команды ls очень много ключей, но используются довольно часто ключи -l (или -al — выдать полную информацию о файлах).

dir —

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

mls —

Поместить краткий список файлов и подкаталогов каталога на удаленной машине в файл на локальном устройстве.

mdir —

Поместить детальный список файлов и подкаталогов каталога на удаленной машине в файл на локальном компьютере.

mkdir —

ftp>mkdir [имя_каталога]

Создать каталог на удаленной машине.

cd —

Перейти в другой каталог на удаленном компьютере.

lcd —

Перейти в другой каталог на локальном компьютере.

Примеры:

ftp> lcd /pub/doc

ftp> dir internet/example

ftp> mdir /doc/ftp/news_ftp.txt

Установка режимов передачи файлов (все команды без параметров)

ascii —

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

binary или bin —

Устанавливает бинарный режим, необходимый например, для передачи исполняемых файлов.

verbose —

Включает/выключает вывод протокольных и статусных сообщений удаленной машины.

prompt —

Включает/выключает запросы на переход к передаче очередного файла в макрокомандах типа mget *.

Команды передачи файлов

При работе с файлами вы можете, либо указать его полное имя в текущем каталоге (или вместе с путем от корня или от текущего каталога), либо использовать групповую операцию UNIX’а (маску). При задании маски используются правила, принятые в OS UNIX: символ «*» обозначает любое количество символов, стоящих на его месте; символ «?» обозначает один символ, стоящий на его месте.

get или recv —

ftp>get [удаленный_файл] [локальный_файл]

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

Пример:

ftp> get /pub/winsite/news/win.zip

mget —

ftp>mget [список удаленных_файлов]

Получить несколько файлов по списку или в соответствии с маской. Пример. Получить файл news.txt и все файлы с расширением tex:

ftp> mget news.txt *.tex

put или s —

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

Пример:

ftp> put myfile newmyfile.

mput —

Переслать несколько файлов по списку или маске. Пример. Переслать файл myfile.txt и все файлы с расширением doc:

ftp> mput myfile.txt *.doc

delete [имя_файла] —

Стереть файл на удаленной машине (требует авторизованного доступа).

Поиск в архивах FTP

Archie . Первые сайты начали появляться в 1993 году, в большинстве это были сайты университетов, но задолго до того как появились они, появился «Арчи», так назывался первый созданный поисковик. Он появился в 1990 году, благодаря Алану Эмтагу, студенту университета МакГила в Монреале. Вначале проект хотели назвать «Архивы», но потом сократили до Арчи.

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

В настоящее время доступ по FTP-протоколу осуществляется из множества мультипротокольных интерфейсов (например, Mosaic или Netscape) или графических ftp-оболочек типа ftptool для X-Window. Все они гораздо удобнее и проще в использовании, но и потребляют гораздо больше ресурсов.

Любопытно, что FTP-сервер есть даже для MS-DOS (пакет NCSA Telbin), не говоря о многозадачных средах. Однако поиск нужного FTP-сервера в Internet — задача сложная и трудоемкая. Для ее облегчения существует специальное средство — Archie. Archie был разработан в Университете McGill в Канаде. Задача Archie — сканировать FTP-архивы на предмет наличия в них требуемых файлов. Работать с Archie можно через telnet-сессию, через локального клиента или по электронной почте.

WAIS (Wide Area Information Server) распределенная система поиска информации (В настоящее время утилита устарела и не используется. Статья сохранена для понимания эволюции Интернет). Поиск производится по базам данных, содержащим текстовые документы (но допустимы также графические, звуковые или видео документы). Тематика баз данных и поиска произвольны. Базы данных могут иметь любую структуру, но пользователю не нужно знать языка управления этими базами. WAIS использует естественный управляющий язык. WAIS доступен в Интернет. Для пользователей, имеющих доступ только к электронной почте, предназначен интерфейс, размещенный по адресу [email protected]. В сети Интернет существует много серверов WAIS. Список депозитариев серверов достаточно широк, начать можно с анонимного FTP по адресу Think.com секция /wais, файл wais-sources.tar.Z (файл архивирован и пересылка должна осуществляться в режиме BINARY). В настоящее время многие WAIS-сервера интегрированы в сети WEB.

Существуют клиент-серверы WAIS для систем MS-DOS, VMS, MVS, OS/2, UNIX и Macintosh, а также для GNU Emacs, NeXT, X-Windows, MS-Windows, Sunview и т.д. Эти продукты несколько отличаются друг от друга, но обычно процедура содержит следующие шаги:

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

Формулируется задание на поиск, выбираются ключевые слова.

В процессе поиска WAIS запрашивает информацию из всех указанных баз данных.

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

Для получения копии пользователь просто отбирает документы из предлагаемого списка.

При необходимости пользователь может переформулировать критерии отбора и повторить поиск.

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

Veronica . Для поиска в виртуальной файловой системе GopherSpace разработана система Veronica. Обращение к ней содержится в корневом меню большинства серверов Gopher. Это полноценная информационно-поисковая система (ИПС), которая позволяет осуществлять поиск с использованием ключевых слов в массивах, поддерживаемых зарегистрированными в университете Миннесоты серверами GopherSpace.

Jughead. Арчи стал настолько популярным, что группа System Computing Services при университете Невады создала Veronica, которая служила тем же целям, что и Арчи, но осуществляла поиск по текстам документов в простом текстовом формате. Всоре появился еще один интерфейс для поиска информации — Jughead, который служил тем же целям, что и Veronica. Они оба работали с документами, пересылаемыми через Gopher, который был создан как альтернатива «Арчи» Марком МакКахилом в университете Миннесоты в 1991 году.

2. Поисковые сервера. Специализированные программы для загрузки файлов. http клиенты

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

Протокол HTTP использован при построении глобальной информационной системы World-Wide Web (начиная с 1990).

Первые версии, такие как HTTP/0.9, представляли собой простые протоколы для передачи данных через Интернет. Версия HTTP/1.0, описанная в RFC-1945, улучшила протокол, разрешив использование сообщений в формате MIME, содержащих метаинформацию о передаваемых данных, и модификаторы для запросов/откликов. Дальнейшее развитие сетей WWW-серверов потребовало новых усовершенствований, которые вряд ли являются последними.

Реальные информационные системы требуют больших возможностей, чем простой поиск и доставка данных. Для описания характера, наименования и места расположения информационных ресурсов введены: универсальный идентификатор ресурса URI (Uniform Resource Identifier), универсальный указатель ресурса URL и универсальное имя ресурса URN. Формат сообщений сходен с используемыми в электронной почте и описанный в стандарте MIME (Multipurpose Internet Mail Extensions).

HTTP используется также в качестве базового протокола для коммуникации пользовательских агентов с прокси-серверами и другими системами Интернет, в том числе и использующие протоколы SMTP, NNTP, FTP, Gopher и Wais. Последнее обстоятельство способствует интегрированию различных служб Интернет.

Все HTTP-транзакции имеют один общий формат. Каждый запрос клиента и ответ сервера состоит из трех частей: строки запроса (ответа), раздела заголовка и тела. Клиент инициирует транзакцию следующим образом:

1. Клиент устанавливает связь с сервером по назначенному номеру порта (по умолчанию — 80). Затем клиент посылает запрос документа, указав HTTP-команду, называемую методом, адрес документа и номер версии HTTP. Например, в запросе

GET /index.html HTTP/1.0

используется метод GET, которым с помощью версии 1.0 HTTP запрашивается документ index.html. Методы HTTP более подробно рассматриваются ниже.

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

User-Agent: Mozilla/4.05 (WinNT; 1)

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*

Завершается заголовок пустой строкой.

3. Послав запрос и заголовки, клиент может отправить и дополнительные данные. Эти данные используются главным образом теми CGI-программами, которые применяют метод POST. Клиенты (например, Netscape Navigator-Gold), также могут использовать их для помещения отредактированной страницы обратно на Web-сервер.

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

1. Первая часть ответа сервера — строка состояния, содержащая три поля: версию HTTP, код состояния и описание. Поле версии содержит номер версии HTTP, которой данный сервер пользуется для передачи ответа.

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

НТТР/1.0 200 OK

говорит о том, что сервер для ответа использует версию HTTP 1.0. Код состояния 200 означает, что запрос клиента был успешным и затребованные данные будут переданы после заголовков.

2. После строки состояния сервер передает клиенту информацию заголовка, содержащую данные о самом сервере и затребованном документе. Ниже приведен пример заголовка:

Server: Apache/1.2.6

Content-type: text/html

Content-length: 2482

Завершает заголовок пустая строка.

3. Если запрос клиента успешен, то посылаются затребованные данные. Это может быть копия файла или результат выполнения CGI-программы. Если запрос клиента удовлетворить нельзя, передаются дополнительные данные в виде понятного для пользователя разъяснения причин, по которым сервер не смог выполнить данный запрос.

В HTTP 1.0 за передачей сервером затребованных данных следует разъединение с клиентом, и транзакция считается завершенной, если не передан заголовок Connection: Keep Alive. В HTTP 1.1 сервер по умолчанию не разрывает соединение и клиент может посылать другие запросы. Поскольку во многие документы встроены другие документы — изображения, кадры, апплеты и т.д., это позволяет сэкономить время и затраты клиента, которому в противном случае пришлось бы для получения всего одной страницы многократно соединяться с одним и тем же сервером. Таким образом, в HTTP 1.1 транзакция может циклически повторяться, пока клиент или сервер не закроет соединение явно.

HTTP не сохраняет информацию по транзакциям, поэтому в следующей транзакции приходится начинать все заново. Преимущество состоит в том, что HTTP сервер может обслужить в заданный промежуток времени гораздо больше клиентов, ибо устраняются дополнительные расходы на отслеживание сеансов от одного соединения к другому. Есть и недостаток: для сохранения информации по транзакциям более сложные CGI-программы должны пользоваться скрытыми полями ввода или внешними средствами, например «ключиками» (cookies) Netscape.

Поисковый WWW-сервер, отрабатывающий запросы на поиск WWW-АДРЕСОВ ДОКУМЕНТОВ. В WWW-технологии каждый WWW-документ при его создании может быть снабжен набором ключевых слов по усмотрению автора. Поисковые сервера считывают эти ключевые слова, находят такие же в своих больших словарях и добавляют ссылку на данный WWW-документ в список уже имеющихся ссылок для каждого такого слова. Кроме поиска по ключевым словам, все большие поисковые сервера имеют универсальные иерархические классификаторы, охватывающие все отрасли знаний, сферы деятельности, области интересов, стороны общественной жизни и т.п.

Некоторые поисковые сервера содержат внутри себя Yellow и White pages WWW-адресов серверов.

Поиск WWW-адресов интересен как сам по себе (поиск WWW-документы на заданную тему), так и как задача поиска организаций в сети. В свою очередь, найденный WWW-сервер конкретной организации может быть интересен как сам по себе, так и в качестве источника адресной информации (телефоны и e-mail адреса самой организации и ее подразделений).

Типичные поисковые задачи:

поиск WWW-адреса сервера конкретной организации или конкретного человека;

поиск WWW-адреса сервера какой-то организации по определенным условиям;

поиск новых WWW-адресов серверов;

поиск новых WWW-адресов документов.

Основные средства поиска (reference sites):

большие универсальные поисковые WWW-системы (search engines);

поисковые WWW-системы по нескольким search engines;

остальные универсальные и специализированные search engines и index sites;

справочные системы Yellow Pages по WWW-адресам серверов;

MetaReference sites (каталоги search engines, index sites, Yellow Pages WWW).

Дополнительные способы поиска:

персональные и тематические подборки ссылок на WWW-сервера;

newsletters и guides на WWW-серверах, объявления в телеконференциях, списки рассылки

запрос к абонентам какой-либо массовой службы;

Поисковые WWW-сервера позволяют найти отдельные WWW-документы (WWW-страницы), относящиеся к заданным тематикам или снабженные заданными ключевыми словами или их комбинациями. На больших поисковых серверах имеются оба эти способа поиска (по иерархии понятий и по ключевым словам).

Наполнение поисковых серверов происходит либо автоматически (они непрерывно обозревают все WWW-сервера в мире), либо вручную (с отбором материала).

Наиболее известные поисковые WWW-сервера:

http://www.yahoo.com

Один из первых и самых известных search engine, отличающийся развитой иерархической классификацией. Наполняется вручную, имеет наименьшее количество ссылок по сравнению с другими search engines (по некоторым темам примерно в 10 раз меньше Webcrawler-а, но по другим — больше его).

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

На первом уровне иерархии имеется раздел «References», содержащий много ссылок на разного рода reference sites.

Имеет развитой сервис новостей.

http://www.lycos.com

Один из самых известных и самых больших по количеству ссылок search engine.

Имеется иерархический классификатор и поиск по ключевым словам, поддерживающий операции «и», «или», но только одного типа в одном запросе. Операция «и» вообще не работает, операция «или» работает неверно — возвращает количество ссылок, равное максимальному из количеств ссылок по отдельным аргументам).

http://www.webcrawler.com

Относительно небольшой search engine, по-видимому, наполняется вручную — примерно в 10 раз меньше Lycos-а.

Имеется иерархический классификатор и поиск по ключевым словам, поддерживающий операции «и», «или», «не» и их комбинации, которые, однако, отрабатываются не всегда верно (находятся документы, совершенно не подходящие под условия поиска).

http://www.inktomi.com

Новый и, вероятно, самый большой по количеству ссылок search engine — наполняется автоматически и хранит все найденные ссылки (примерно в 5 раз больше Lycos-а).

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

Кроме собственно поиска документов имеет Yellow Pages по разным категориям.

http://www.infoseek.com

Средний по количеству ссылок search engine (по некоторым темам чуть больше Webcrawler-а, но по некоторым — больше Lycos-а).

Имеет иерархическую классификацию и поиск по ключевым словам, не поддерживающий операций «и», «или».

Поиск может производится: по всему WWW-пространству, лишь среди серверов, отобранных экспертами данного сервера (в этом случае каждая найденная ссылка снабжена краткой аннотацией), лишь среди серверов компаний (yellow-поиск, каждая найденная ссылка снабжена кратким описанием профиля компании), среди статей USENET, среди e-mail адресов, среди свежих новостей (сервер имеет дополнительный очень развитой сервис новостей). Результат поиска дополнительно снабжается и списком подходящих тем из иерархической классификации (общий список тем для данного запроса, а не конкретные иерархические пути для каждой найденной ссылки, как у Yahoo).

http://www.altavista.com

Большой search engine (немного меньше Lycos-а по числу ссылок). Имеет лишь поиск по ключевым словам, поддерживающий только операцию «и». Поиск может проводиться по всему WWW-пространству или среди статей USENET.

http://www.dejanews.com

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

http://www.hotbot.com

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

http://www.mckinley.com/

Поисковая система Magellan — очень неплохая система, типа Yahoo. Возможен поиск как по ключевому слову, так и по темам. Можно искать по ключевому слову в рамках выбранной темы.

Имеет сервис новостей.

http://www.excite.com

http://www.opentext.com

http://www.nlightn.com

Поиск по ключевому слову.

Yandex.ru. Поиск ведется более чем по 47 тыс. серверов, проиндексировано около 3,5 млн. документов. Основное достоинство Яndex’а это способность находить заданные слова независимо от формы, в которой они употребляются в документах. Система может образовывать словоформы даже для тех слов, которых нет в словаре. Есть возможность ограничить поиск указанным диапазоном дат создания документа. А в том случае, если нужные документы не будут найдены, можно продолжить поиск через AltaVista, куда автоматически передается уже обработанный системой запрос. Учёт русской морфологии. Подсветка найденных документов, показ контекстов. Параллельный поиск в «Энциклопедиях», «Новостях», «Маркете». Структурирование поиска по разделам каталога и серверам. Цитируемость: 42000

Rambler. Система охватывает более 2 млн. страниц. Возможен поиск в именах URL, названиях документов, заголовках, адресах (если те находятся в специальных тегах) и только среди слов в начале документа. Есть возможность поиска документов «похожих» на приглянувшийся среди найденных, а также поиска среди уже найденных документов. www.rambler.ru - Цитируемость: 17000

AltaVista. Известный поисковик с поиском на многих языках

Апорт. Поиск ведется почти по 2 миллионам документов и более чем по 13000 серверов. Система умеет искать по различным словоформам введенных слов и даже исправляет в введенных словах ошибки. Система может переводить с русского на английский и с английского на русский не только запрос, но и полученную в результате поиска информацию. Учёт русской морфологии. Выделение контекстов найденных слов. Уточнение поиска по разделам каталога и серверам. www.aport.ru - Цитируемость: 20000.

FlashGet


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

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

ReGet


Как известно, создать программу, которая подходила бы все пользователям, невозможно. Если перегрузить ее возможностями, кому-то они могут мешать, если же их не добавить, найдется те, кому дополнительных опций будет не хватать. Именно поэтому разработчики менеджера загрузки ReGet выпускают не одну, а три программы для загрузки файлов. Это ReGet Junior, ReGet Pro и ReGet Deluxe . Каждая из них ориентирована на свою категорию пользователей. Базовые функции у всех трех программ одинаковые, отличия в дополнительных возможностях.

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

ReGet Junior ориентирован на начинающих пользователей и имеет минимальный набор функций. К его особенностям можно отнести возможность изменения интерфейса при помощи скинов, которая отсутствует в других версиях программы. ReGet Pro может предложить такие опции, как управление скоростью загрузки, благодаря чему можно одновременно производить загрузку файла и открывать веб-страницы; соединение с Интернетом в случае обрыва связи; управление настройками закачки для нескольких файлов одновременно. Кроме этого, с его помощью можно автоматически скачивать галереи изображений и проверять загруженные файлы на вирусы. Однако для опытного пользователя, проводящего в Интернете много времени, наибольший интерес, несомненно, представляет версия ReGet Deluxe. В этой версии менеджера загрузки пользователям предлагается встроенный FTP-клиент, расширенные возможности планировщика (например, планирование загрузки на указанную дату, повторение загрузки в указанное время и дни, начало загрузки при выполнении заданных условий), выключение компьютера, возможность сортировки загруженных файлов по папкам и ведение истории закачек.

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

GetRight

До недавнего времени существовала только одна версия GetRight, однако, начиная с шестого релиза, разработчики также предлагают версию с индексом Pro. Необходимо заметить, что в настоящее время она пока еще находится на стадии бета-тестирования, а это означает, что некоторые опции могут работать не совсем корректно. Однако уже сейчас можно сказать, что в этой программе есть не только базовые опции, которые пользователь ожидает от менеджера загрузки, но также и пакет расширенных возможностей.


Так, наряду с возможностью разбивать файл на части, самостоятельно звонить в Интернет через dial-up модем, разрывать соединение, вести историю загрузок и планировать закачки GetRight Pro может похвастаться многими уникальными опциями. К ним можно отнести проверку файла на целостность после окончания загрузки, автоматический поиск подкастов по указанным адресам, их загрузка и помещение в список воспроизведения проигрывателя, возможность скачивания файлов через протокол BitTorrent, управление менеджером закачки удаленно, через Интернет. Кроме этого, GetRight Pro имеет свой браузер для просмотра содержимого ФТП и веб-серверов. Веб-мастера оценят средства для синхронизации содержимого папок на ФТП-сервере с директориями на жестком диске, возможность загрузки файлов на сервер.

Download Master

Неоспоримое преимущество Download Master перед конкурентами — его полная бесплатность. Единственное, чем он может надоедать пользователю в этой связи, баннер, расположенный в верхней части окна загрузки. Впрочем, на этом недостатки этого менеджера загрузки заканчиваются.




На рынке существуют десятки download-менеджеров, многие из них бесплатны. Однако именно Download Master за достаточно короткое время (программе всего лишь немногим более семи лет) смог завоевать расположение пользователей. Секрет такой популярности не только в бесплатном статусе, но и в том, что разработчики программы постарались собрать в ней всевозможные опции, доступные пользователям других менеджеров закачки. В Download Master есть корзина, позволяющая добавлять ссылку на файл, не переключаясь в окно программы, интеграция со всеми популярными браузерами, сортировка скачанных файлов по категориям, закачка по расписанию, дозвон в Интернет и т.д. Найти в конкурентных приложениях возможность, которая отсутствовала бы в Download Master, достаточно трудно, а если таковая и имеется, то есть большой шанс, что она появится в следующей версии программы.

Среди наиболее востребованных опций Download Master можно отметить: встроенный ФТП-клиент, возможность просмотра Zip-архивов перед загрузкой, получение размера файлов до начала закачки, проверка и восстановление архивов, установка приоритетов для закачек, работа с командной строкой, загрузка HTML-страниц с изображениями. Кроме этого, недавно разработчики программы сообщили о возможности расширения ее возможностей при помощи подключаемых модулей — плагинов. Предполагается, что они помогут реализовать те функции, которые в настоящее время отсутствуют в Download Master, например, загрузка файлов с файлообменных систем наподобие Rapidshare.

Специфика приложения требует от разработчиков менеджера закачки постоянного развития и совершенствования, так как мир Интернета постоянно изменяется, а вместе с ним изменяются и предпочтения пользователей. Если еще совсем недавно для download-менеджера достаточно было обеспечивать поддержку Internet Explorer, сегодня отсутствие интеграции с альтернативными браузерами Mozilla, Opera и пр. расценивается как большой недостаток. Конкурируя между собой, разработчики менеджеров загрузки постоянно встраивают в программы новые опции, поэтому теми возможностями, которые сегодня являются для программы уникальными, завтра уже наверняка обзаведутся и другие приложения.

Если же говорить о лидере, то это Download Master. Эта программа обходит конкурентов как по функциональности, так и по удобству. К тому же, она постоянно обновляется.

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

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

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

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

Начиная работу через протокол FTP, клиент входит в сессию, и все операции проводятся в рамках этой сессии (проще говоря, сервер помнит текущее состояние). Протокол HTTP ничего не "помнит" - его задача - отдать данные и забыть, поэтому запоминание состояния при использовании HTTP осуществляется внешними по отношению к протоколу методами.

FTP работает на прикладном уровне модели OSI и используется для передачи файлов с помощью TCP/IP. Для этого должен быть запущен FTP-сервер, ожидающий входящих запросов. Компьютер-клиент может связаться с сервером по порту 21. Это соединение (поток управления) остаётся открытым на время сессии. Второе соединение (поток данных), может быть открыт как сервером из порта 20 к порту соответствующего клиента (активный режим), или же клиентом из любого порта к порту соответствующего сервера (пассивный режим), что необходимо для передачи файла данных. Поток управления используется для работы с сессией - например, обмен между клиентом и сервером командами и паролями с помощью telnet-подобного протокола. Например, "RETR имя файла" передаст указанный файл от сервера клиенту. Вследствие этой двухпортовой структуры, FTP считается внешнеполосным протоколом, в отличие от внутриполосного HTTP.

Соединение и передача данных

Протокол определен в RFC 959. Сервер отвечает по потоку управления трехзначными ASCII-кодами состояния с необязательным текстовым сообщением. Например, "200" (или "200 ОК") означает, что последняя команда была успешно выполнена. Цифры представляют код ответа, а текст - разъяснение или запрос. Текущая передача по потоку данных может быть прервана с помощью прерывающего сообщения, посылаемого по потоку управления.

FTP может работать в активном или пассивном режиме, от выбора которого зависит способ установки соединения. В активном режиме клиент создаёт управляющее TCP-соединение с сервером и отправляет серверу свой IP-адрес и произвольный номер клиентского порта, после чего ждёт, пока сервер не запустит TCP-соединение с этим адресом и номером порта. В случае, если клиент находится за брандмауэром и не может принять входящее TCP-соединение, может быть использован пассивный режим. В этом режиме клиент использует поток управления, чтобы послать серверу команду PASV, и затем получает от сервера его IP-адрес и номер порта, которые затем используются клиентом для открытия потока данных с произвольного клиентского порта к полученному адресу и порту. Оба режима были обновлены в сентябре 1998 г. для поддержки IPv6. В это время были проведены дальнейшие изменения пассивного режима, обновившие его до расширенного пассивного режима.

При передаче данных по сети могут быть использованы четыре представления данных:

    ASCII - используется для текста. Данные, если необходимо, до передачи конвертируются из символьного представления на хосте-отправителе в "восьмибитный ASCII", и (опять же, если необходимо) в символьное представление принимающего хоста. Как следствие, этот режим не подходит для файлов, содержащих не только обычный текст.

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

    EBCDIC - используется для передачи обычного текста между хостами в кодировке EBCDIC. В остальном, этот режим аналогичен ASCII-режиму.

    Локальный режим - позволяет двум компьютерам с идентичными установками посылать данные в собственном формате без конвертации в ASCII.

Для текстовых файлов предоставлены различные форматы управления и настройки структуры записи. Эти особенности были разработаны для работы с файлами, содержащими Telnet или ASA-форматирование.

Передача данных может осуществляться в любом из трёх режимов:

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

    Блочный режим - FTP разбивает данные на несколько блоков (блок заголовка, количество байт, поле данных) и затем передаёт их TCP.

    Режим сжатия - данные сжимаются единым алгоритмом (обыкновенно, кодированием длин серий).

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

FTP-аутентификация использует обычную схему имя пользователя/пароль для предоставления доступа. Имя пользователя посылается серверу командой USER, а пароль - командой PASS. Если предоставленная клиентом информация принята сервером, то сервер отправит клиенту приглашение и начинается сессия. Пользователи могут, если сервер поддерживает эту особенность, войти в систему без предоставления учётных данных, но сервер может предоставить только ограниченный доступ для таких сессий.

Анонимный FTP

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

NAT - PT

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

NAT и обход брандмауэров

FTP обычно передает данные при наличии соединения сервера с клиентом, после того как клиент отправил команду PORT. Это создает проблему как для NAT, так и для брандмауэров, которые не разрешают соединения из интернета к внутренним хостам. Для NAT дополнительной проблемой является то, что представление IP-адресов и номера порта в команде PORT относится к IP-адресу и порту внутреннего хоста, вместо публичного IP-адреса и NAT-порта. Существует два подхода к этой проблеме. Первый заключается в том, что FTP-клиент и FTP-сервер используют команду PASV, которая вызывает соединение для передачи данных, установленное от клиента к серверу. Второй подход - изменение для NAT значений команды PORT с помощью шлюза на прикладном уровне.

Поддержка веб-браузерами

Большая часть обычных веб-браузеров может извлекать файлы, расположенные на FTP-серверах, хотя они могут не поддерживать расширения протоколов вроде FTPS. Когда указан FTP-адрес, а не HTTP-адрес, доступный контент на удалённом сервере представляется аналогично остальному веб-контенту. Полностью функциональный FTP-клиент может быть запущен в Firefox как расширение FireFTP.

Безопасность

FTP не разрабатывался как защищённый (особенно по нынешним меркам) протокол и имеет многочисленные уязвимости в защите. В мае 1999 авторы RFC 2577 свели уязвимости в следующий список проблем:

    Скрытые атаки (bounce attacks)

    Спуф-атаки (spoof attacks)

    Атаки методом грубой силы (brute force attacks)

    Перехват пакетов, сниффинг (packet capture, sniffing)

    Защита имени пользователя

    Захват портов (port stealing)

FTP не может зашифровать свой трафик, все передачи - открытый текст, поэтому имена пользователей, пароли, команды и данные могут быть прочитаны кем угодно, способным перехватить пакет по сети. Эта проблема характерна для многих спецификаций Интернет-протокола (в их числе SMTP, Telnet, POP, IMAP), разработанных до создания таких механизмов шифрования, как TLS и SSL. Обычное решение этой проблемы - использовать "безопасные", TLS-защищенные версии уязвимых протоколов (FTPS для FTP, TelnetS для Telnet и т.д.) или же другой, более защищённый протокол, вроде SFTP/SCP, предоставляемого с большинством реализаций протокола Secure Shell.

Безопасный FTP

Существует несколько методов безопасной передачи файлов, в одно или другое время называемых "Безопасным FTP": FTPS, SFPS, FTP через SSH.

Явный FTPS - расширение стандарта FTP, позволяющее клиентам требовать того, чтобы FTP-сессия была зашифрована. Это реализуется отправкой команды "AUTH TLS". Сервер обладает возможностью позволить или отклонить соединения, которые не запрашивают TLS. Это расширение протокола определено в спецификации RFC 4217. Неявный FTPS - устаревший стандарт для FTP, требующий использования SSL- или TLS-соединения. Этот стандарт должен был использовать отличные от обычного FTP порты.

SFTP, или «SSH File Transfer Protocol», не связан с FTP, за исключением того, что он тоже передаёт файлы и имеет аналогичный набор команд для пользователей. SFTP, или безопасный FTP, - это программа, использующая SSH (Secure Shell) для передачи файлов. В отличие от стандартного FTP он шифрует и команды, и данные, предохраняя пароли и конфиденциальную информацию от открытой передачи через сеть. По функциональности SFTP похож на FTP, но так как он использует другой протокол, клиенты стандартного FTP не могут связаться с SFTP-сервером и наоборот.

FTP через SSH (не SFTP )

FTP через SSH (не SFTP) относится к практике туннелирования обычной FTP-сессии через SSH-соединение. Поскольку FTP использует несколько TCP-соединений, туннелирование через SSH особенно затруднительно. Когда много SSH-клиентов пытаются установить туннель для канала управления (изначальное "клиент-сервер" соединение по порту 21), защищён будет только этот канал; при передаче данных программное обеспечение FTP на любом конце установит новые TCP-соединения (каналы данных), которые обойдут SSH-соединение и, таким образом, лишатся целостной защиты.

Иначе, для клиентского программного обеспечения SSH необходимо иметь определённые знания о FTP для отслеживания и перезаписи сообщений потока управления FTP и автономного открытия новых перенаправлений для потока данных FTP.

FTP через SSH иногда относят к безопасным FTP; но не стоит путать его с другими методами, такими как SSL/TLS (FTPS). Другие методы передачи файлов с помощью SSH и не связанные с FTP - SFTP и SCP; в каждом из них и учётные и файловые данные всегда защищены протоколом SSH.

FXP (англ. File eXchange Protocol - протокол обмена файлами) - способ передачи файлов между двумя FTP-серверами напрямую, не закачивая их на свой компьютер. При FXP-сессии клиент открывает два FTP-соединения к двум разным серверам, запрашивая файл на первом сервере, указывая в команде PORT IP-адрес второго сервера.

Несомненным преимуществом поддержки стандарта FXP является то, что на конечных пользователей, желающих скопировать файлы с одного FTP-сервера на другой, уже не действует ограничение пропускной способности их собственного интернет-соединения. Нет необходимости скачивать себе файл, чтобы потом загрузить его на другой FTP-сервер. Таким образом, время передачи файлов будет зависеть только от скорости соединения между двумя удаленными FTP-серверами, которая в большинстве случаев заведомо больше «пользовательской».

FXP стал использоваться злоумышленниками для атак на другие серверы: в команде PORT указывается IP-адрес и порт атакуемого сервиса на компьютере жертвы, и командами RETR/STOR производится обращение на этот порт от лица FTP-сервера, а не атакующей машины, что позволяло устраивать масштабные DDoS-атаки с использованием сразу многих FTP-серверов, либо обходить систему безопасности компьютера жертвы, если он полагается только на проверку IP клиента и используемый для атаки FTP-сервер находится в доверенной сети или на шлюзе. В результате сейчас практически все серверы проверяют соответствие IP-адреса, указанного в команде PORT, IP-адресу FTP-клиента и по умолчанию запрещают использование там IP-адресов третьих сторон. Таким образом, использование FXP невозможно при работе с публичными FTP-серверами.

Основные команды

    ABOR - Прервать передачу файла

    CDUP - Сменить директорию на вышестоящую.

    CWD - Сменить директорию.

    DELE - Удалить файл (DELE filename).

    EPSV - Войти в расширенный пассивный режим. Применяется вместо PASV.

    HELP - Выводит список команд, принимаемых сервером.

    LIST - Возвращает список файлов директории. Список передаётся через соединение данных.

    MDTM - Возвращает время модификации файла.

    MKD - Создать директорию.

    NLST - Возвращает список файлов директории в более кратком формате, чем LIST. Список передаётся через соединение данных.

    NOOP - Пустая операция

    PASV - Войти в пассивный режим. Сервер вернёт адрес и порт, к которому нужно подключиться, чтобы забрать данные. Передача начнётся при введении следующих команд: RETR, LIST и т.д.

    PORT - Войти в активный режим. Например PORT 12,34,45,56,78,89. В отличие от пассивного режима для передачи данных сервер сам подключается к клиенту.

    PWD - Возвращает текущую директорию.

    QUIT - Отключиться

    REIN - Реинициализировать подключение

    RETR - Скачать файл. Перед RETR должна быть команда PASV или PORT.

    RMD - Удалить директорию

    RNFR и RNTO - Переименовать файл. RNFR - что переименовывать, RNTO - во что.

    SIZE - Возвращает размер файла

    STOR - Закачать файл. Перед STOR должна быть команда PASV или PORT.

    SYST - Возвращает тип системы (UNIX, WIN, …)

    TYPE - Установить тип передачи файла (бинарный, текстовый)

    USER - Имя пользователя для входа на сервер

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

Что они собой представляют?

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

Немного истории

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

Порты FTP в наши дни являются одним из самых старых стандартов, ведь он появился в 1971 году еще до TCP/IP и HTTP. В первое время его использовали исключительно поверх NCP, однако на сегодняшний день его применение активно распространяется и для передачи различного программного обеспечения, а также получения доступа к удаленным ресурсам.

В чем его отличия от HTTP?

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

Именно по этой причине, если использовать порт FTP по умолчанию, в рамках одной сессии предусматривается одновременная передача нескольких файлов в разных направлениях. Так как для каждого канала попросту открывается собственный ТСР-порт, номер которого выбирает вручную сам клиент или же автоматически выбирает сервер в зависимости от того, какой применяется режим передачи.

В чем преимущества?

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

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

Как это работает?

Работа осуществляется на прикладном уровне модели OSI и применяется для того, чтобы передавать данные при использовании TCP/IP. Для этого изначально требуется запуск FTP-сервера, который будет ожидать входящие запросы. В случае необходимости клиент самостоятельно сможет связаться с данным сервером, используя порт под номером 21. Стоит отметить тот факт, что такое соединение будет оставаться открытым на протяжении данной сессии. Второе соединение открывается сервером из порта под номером 20 к тому порту, который использует клиент, что называется активным режимом, или же может открываться непосредственно самим клиентом из любого удобного ему порта к порту соответствующего сервера. Это называется пассивным режимом и требуется для передачи файла.

Использование потока управления осуществляется для работы с определенной сессией. К примеру, такие потоки активно применяются в процессе обмена между сервером и клиентом всевозможными паролями или же командами, если применяется протокол типа telnet. Таким образом, например, команда «RETR имя_файла» осуществит передачу определенного файла клиенту с сервера. Из-за формирования такой двухпортовой структуры FTP на сегодняшний день принято считать внешнеполосным протоколом в отличие от НТТР, который остается внутриполосным.

Как настроить?

Если вы не знаете, как FTP, сделать это можно при помощи ресурса FileZilla следующим образом:

  1. Изначально запускаете сам FileZilla.
  2. Теперь открывайте «Менеджер сайтов», после чего во всплывшем окне жмите кнопку «Новый сайт».
  3. На вкладке «Общие» вводите: Хост: используемый вами домен; Тип сервера: FTP или же FTPES (рекомендуется использовать именно последний), Тип входа: "Нормальный" или же "Запросить пароль" (опять же, последний вариант является оптимальным по той причине, что ваш пароль не будет сохраняться, хоть и придется постоянно вводить его при входе); Имя пользователя: вводите в данную строку ваш логин FTP.
  4. Теперь переходите в пункт «Настройки передачи», после чего выбирайте в разделе «Режим передачи» пункт «Пассивный».
  5. В конце нажимайте на кнопку «Соединиться».

Теперь вы сделали FTP, ваше соединение настроено и сохранено в «Менеджере сайтов», а вы можете пользоваться им на ваше усмотрение.

Анонимный протокол

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

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

NAT-PT протокол

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

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