FTP (протокол передачи файлов) — это один из стандартных протоколов, главная задача которого передача данных(информации) по сети, в частности в сетях Интернета.
Удобность данного протокола состоит в том, что он, то есть его архитектура была построена на основе стандарта «клиент-сервер», а совокупность различных соединений помогает передавать данные между клиентами и сервером, соответственно.
Клиенты, которые пользуются FTP-серверами должны пройти этап регистрации (подтверждение личности), передавая пароль и логин без шифрования. Однако некоторые сервера позволяют заходить на них анонимно, используя специализированные протоколы шифрования, скрывая пароль и логин.
Данный протокол был придумать задолго TCP/IP в далеком 1971 году, однако и сегодня пользуется популярностью среди программного обеспечения, а также доступа к удаленным серверам.
Особенностью данного протокола является то, что в один момент времени пользователь может передавать несколько габаритных файлов реверсивным методом. То есть по одному каналу идет запрос и ответ не него, а по второму и последующих соответственно передается сам файл.
FTP может работать в активном или пассивном режиме, от выбора которого зависит способ установки соединения. В активном режиме клиент создаёт управляющее TCP-соединение с сервером и отправляет серверу свой IP-адрес и произвольный номер клиентского порта, после чего ждёт, пока сервер не запустит TCP-соединение с этим адресом и номером порта. В случае, если клиент находится за брандмауэром и не может принять входящее TCP-соединение, может быть использован пассивный режим. В этом режиме клиент использует поток управления, чтобы послать серверу команду PASV, и затем получает от сервера его IP-адрес и номер порта, которые затем используются клиентом для открытия потока данных с произвольного клиентского порта к полученному адресу и порту
Передача данных может осуществляться в любом из трёх режимов:
- Поточный режим - данные посылаются в виде непрерывного потока, освобождая FTP от выполнения какой бы то ни было обработки. Вместо этого, вся обработка выполняется TCP. Индикатор конца файла не нужен, за исключением разделения данных на записи.
- Блочный режим - FTP разбивает данные на несколько блоков (блок заголовка, количество байт, поле данных) и затем передаёт их TCP.
- Режим сжатия - данные сжимаются единым алгоритмом