Открыть сервис

FTP

FTP (File Transfer Protocol, протокол передачи файлов) — это стандартный сетевой протокол прикладного уровня, предназначенный для передачи файлов между клиентом и сервером в компьютерных сетях, в первую очередь в сети Интернет. Работает поверх транспортного протокола TCP, используя, как правило, порт 21 для управления и порт 20 для передачи данных в активном режиме. FTP является одним из старейших протоколов Интернета, впервые описанным в RFC 114 в 1971 году, и до сих пор широко применяется для загрузки, скачивания и управления файлами на удалённых серверах, несмотря на наличие более современных и безопасных альтернатив.

История

Протокол FTP был разработан в 1971 году Абхаем Бхушаном (Abhay Bhushan) для ранней сети ARPANET, предшественницы современного Интернета. Первоначальная спецификация (RFC 114) описывала базовые команды для передачи файлов между машинами. В 1980 году была опубликована версия протокола, ставшая основой современного FTP (RFC 765), а затем, в 1985 году, — уточнённая версия (RFC 959), которая остаётся основным стандартом до настоящего времени. С тех пор протокол претерпел несколько незначительных дополнений (например, RFC 2228 — расширения безопасности, RFC 2428 — поддержка IPv6), но его базовая архитектура осталась неизменной.

Архитектура и принцип работы

FTP использует модель «клиент-сервер» с двумя отдельными соединениями:

  1. Управляющее соединение (Control Connection) — устанавливается между клиентом и сервером на порт 21. Используется для передачи команд (например, USER, PASS, LIST, RETR, STOR) и ответов сервера (коды состояния, например, 220 — готов к работе, 230 — пользователь вошёл, 550 — запрошенное действие не выполнено). Это соединение остаётся активным на протяжении всей сессии.
  1. Соединение для данных (Data Connection) — используется для фактической передачи файлов или списка директорий. В зависимости от режима работы (активный или пассивный) оно устанавливается по-разному:

Команды и коды ответов

Взаимодействие между клиентом и сервером осуществляется с помощью текстовых команд (обычно длиной 3-4 символа) и трёхзначных цифровых кодов ответов. Некоторые типичные команды:

Коды ответов делятся на группы:

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

FTP поддерживает два режима передачи файлов:

  1. ASCII-режим — используется для текстовых файлов. Сервер автоматически преобразует символы конца строки в соответствии с платформой (например, CR+LF в Windows, LF в Unix/Linux).
  2. Бинарный (двоичный) режим — используется для нетекстовых файлов (изображения, архивы, исполняемые файлы). Данные передаются без каких-либо преобразований.

Ошибка в выборе режима (например, передача бинарного файла в ASCII-режиме) может привести к повреждению данных.

Аутентификация и безопасность

Стандартный FTP не шифрует ни данные, ни управляющие команды. Имя пользователя и пароль передаются в открытом виде (base64), что делает протокол уязвимым для перехвата (sniffing) и атак типа «человек посередине» (man-in-the-middle). Для повышения безопасности были разработаны расширения:

Из-за небезопасности обычный FTP не рекомендуется для передачи конфиденциальной информации. В современных системах предпочтение отдаётся FTPS или SFTP.

Применение

Несмотря на устаревание с точки зрения безопасности, FTP остаётся востребованным в ряде областей:

Клиенты и серверы

Для работы с FTP используются специализированные программы:

Критика и ограничения

Основные недостатки FTP:

В связи с этим FTP постепенно вытесняется более современными протоколами, такими как SFTP, FTPS, WebDAV (часто используется в облачных сервисах) и протоколами синхронизации (например, rsync).

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →