Протокол передачи файлов

FTP (англ. File Transfer Protocol — протокол передачи файлов) — является широко используемым протоколом для обмена файлами по любой сети, поддерживающей протокол TCP/IP (например, Интернет или интранет). В FTP-передаче участвуют два компьютера: серверный и клиент. FTP-сервер, который работает на программном обеспечении FTP, ожидает сигнала от сети для запроса подключений с других компьютеров. Клиентский компьютер, который работает на клиентском программном обеспечении FTP, инициирует подключение к серверу. Непосредственно после установки подключения клиент сможет выполнять ряд операций по обработке файлов, например, загружать файлы на сервер или с сервера, переименовывать файлы на сервере, удалять файлы с сервера и т.д. Любая компания-разработчик ПО или отдельный программист могут создать FTP-сервер или клиентское программное обеспечение, так как протокол является открытым стандартом. Практически каждая компьютерная платформа поддерживает FTP-протокол. Это позволяет любому компьютеру, подключенному к сети, базирующейся на TCP/IP, провести операции с файлами на другом компьютере той же сети независимо от типа операционных систем (если компьютеры позволяют произвести FTP-доступ).

Больше информации о FTP Вы сможете найти в Статье о FTP в электронной энциклопедии Wikipedia или же в документах, перечисленных ниже.

Содержание

Технические спецификации

  • RFC 959 "ПРОТОКОЛ ПЕРЕДАЧИ ФАЙЛОВ"
    В данном документе описан стандартный FTP-протокол. Подробнее про режимы передачи здесь
  • RFC 854 "ТЕХНИЧЕСКИЕ УСЛОВИЯ ПРОТОКОЛА TELNET"
    Протокол FTP разработан на основе протокола Telnet, указанного в данном документе. Особенно важным здесь является NVT (Network Virtual Terminal / сетевой виртуальный терминал).

Расширения протокола

  • RFC 2228 "Расширения безопасности FTP"
    В данном документе описан принцип использования различных схем аутентификации и шифрования с использованием таких команд как AUTH, PROT и связанных с ними новых команд.
  • RFC 2389 "Настройки механизма согласования для протокола передачи данных"
    Описана команда FEAT для обнаружения доступных расширений протокола, и команда OPTS для изменения некоторых характеристик.
  • RFC 2428 "Расширения FTP для IPv6 и NATs"
    В данном запросе комментариев описывается протокол FTP для IPv6.
  • RFC 2640 "Интернационализация протокола передачи файлов"
    Описано использование кодировки UTF-8 для имен файлов. Так как изначально стандарт FTP использовал только 7-битную US-ASCII кодировку, то такое расширение является полностью совместимым с предыдущими версиями. Однако, некоторые серверы и клиенты ошибочно предполагают, что FTP-протокол использует локальную кодировку. Поэтому такое расширение создает видимую несовместимость там, где на самом деле ее нет.
  • RFC 4217 "Защищённый FTP при помощи TLS"
    В данном запросе комментариев описан процесс защиты FTP криптографическим протоколом TLS с использованием команд, представленных в RFC 2228. Примите во внимание, что в данном RFC преимущественно применяется FTPS (File Transfer Protocol + SSL, или FTP/SSL). Более подробную информацию Вы сможете найти в разделе TLS спецификации.
  • RFC 3659 "Расширение команд FTP"
    В данном RFC представлен набор команд MLS* для машинного контекстного формата построения перечня директорий. Также объясняется использование REST и представлен указанный способ представления перечня директорий сервера с использованием TVFS (простого виртуального хранилища файлов). Помимо того описаны команды SIZE и MDTM. Вполне понятно, что команда MDTM должна использоваться только для того, чтобы получить временную метку файла, но не для того, чтобы ее создать, так как это лишь приведет к неоднозначности.
  • IETF драфт об алгоритме сжатия deflate
    В данном документе описаны методы сжатия канала передачи с использованием deflate (алгоритм сжатия без потерь). С этой целью описана команда MODE Z.
  • Спецификация EPLF (Easily Parsed LIST Format)
    Описывает машинный контекстный формат построения перечня директорий.
  • "MFxx" команды для FTP. В этом IETF описана команда MFMT для изменения времени модификации файла.

Дополнительные документы

  • RFC 2577 "Вопросы безопасности FTP"
    В данном документе рассматриваются общии вопросы безопасности протокола FTP и приводится информация о bounce-атаках на FTP.

См. также