FTP (File Transfer Protocol), ou Protocolo de Transferência de Arquivos, é uma forma bastante rápida e versátil de transferir arquivos entre computadores, sendo uma das mais usadas na Internet.
O termo “FTP” pode referir-se tanto ao protocolo quanto ao programa que implementa este protocolo (Servidor FTP ou Cliente FTP).
A transferência de dados em redes de computadores envolve normalmente a transferência de arquivos e acesso a sistemas de arquivos remotos (com a mesma interface usada nos arquivos locais).
O FTP (RFC 959) é baseado no TCP, mas é anterior à pilha de protocolos TCP/IP, sendo posteriormente adaptado para o TCP/IP. É o padrão da pilha TCP/IP para transferir arquivos, é um protocolo genérico independente de hardware e de sistema operacional.
O FTP (protocolo de transferência de arquivos) pode trabalhar de duas formas: Ativo ou Passivo. Ambas as formas usam 2 canais de comunicação entre o cliente e o servidor, o canal de comandos e o canal de dados, que são separados em duas conexões TCP. O canal de comandos é utilizado para enviar comandos e receber a resposta. O canal de dados é utilizado para transferir os dados. Isso é feito para ser possível enviar comandos para o servidor sem a necessidade de aguardar o fim da transmissão.
No modo Ativo, o cliente estabelece o canal de comandos (porta X do cliente para a porta 21 do servidor), mas é o servidor que estabelece o canal de dados (o servidor recebe comandos na porta 21 e a porta 20 do servidor comunica com a porta Y do cliente, onde Y é uma porta que o cliente especificou, para transferir os dados).
No modo passivo, o cliente estabelece ambos os canais de comunicação. Nessa opção o servidor diz para o cliente qual porta deve ser utilizada para o canal de dados.
O modo Passivo é geralmente utilizado em situações em que o servidor FTP não consegue estabelecer o canal de dados. Uma das principais razões para isso é o bloqueio realizado por Firewalls. Pode existir uma regra no servidor que permite abrir o canal de comandos (a porta 21 está liberada) mas o servidor pode não ser capaz de estabelecer o canal de dados para transferência devido ao Firewall. O modo passivo resolve esse problema abrindo ambos os canais no cliente.
Modo Ativo:
Modo Passivo:
NOTA importante: No modo passivo a escolha do número da porta do cliente é realizada pelo cliente, assim como a seleção do número da porta do canal de dados do servidor é feito pelo servidor no modo passivo, então as portas 2000, 2001, 1234 etc. São apenas exemplos. Inclusive as portas 20 e 21 comumente utilizadas no servidor são apenas uma convenção, não há nenhuma limitação para utilizar outra porta.
Para configurar um servidor FTP no Windows Server, siga as orientações do seguinte artigo: Como configurar o FTP no IIS 7
Existem diferentes clientes FTP (programas para conectar em um servidor FTP e enviar e baixar arquivos), um bastante flexível e bastante usado é o Filezilla. Recomendo! Para baixar esse programa, utilize o seguinte link: https://filezilla-project.org/download.php
Veja nesse outro artigo como fazer um teste de conexão no FTP usando Telnet: Telnet como instalar e usar no Windows