Esta não pode ser a explicação definitiva, como alega o título, no entanto, já ouvi o suficiente bom feedback e visto este documento vinculado em lugares suficientes para saber que algumas pessoas têm encontrado para ser útil.
Estou sempre procurando maneiras de melhorar as coisas, porém, e se você encontrar algo que não é muito clara ou precisa de mais explicação, por favor me avise! As recentes adições a este documento incluem exemplos de ambas as sessões de FTP de linha de comando ativa e passiva. Estes exemplos de sessão deve ajudar a tornar as coisas um pouco mais claro. Eles também fornecem uma imagem agradável para o que se passa nos bastidores durante uma sessão de FTP. Agora, sobre as informações ...
FTP Os princípios
é um serviço baseado exclusivamente TCP. Não há nenhum componente UDP para FTP.
FTP é um serviço incomum em que ele utiliza duas portas, uma porta de um "comando" (também conhecida como a porta de controle) portuários e 'dados'. Tradicionalmente estes são a porta 21 para a porta de comando e porta 20 para a porta de dados. A confusão começa no entanto, quando descobrimos que dependendo do modo, a porta de dados não é sempre na porta 20.
Ativo
FTP No modo ativo FTP o cliente se conecta a partir de uma porta não privilegiada aleatória (N> 1024) para porta de comando do servidor FTP, a porta 21.
Em seguida, o cliente começa a ouvir a porta N + 1 e envia o comando PORT FTP N + 1 para o servidor FTP. O servidor, então, ligar de volta ao porto de dados especificado do cliente a partir da sua porta de dados local, que é a porta 20.
Do ponto de vista do firewall do lado do servidor, para suportar o modo activo FTP a seguinte comunicação canais precisam ser abertas:
porta 21 do servidor FTP de qualquer lugar (o cliente inicia conexão)
porta 21 do servidor FTP para portas> 1024 (servidor responde à porta de controle de clientes) em porto do servidor FTP 20 a portas> 1024 (Server inicia a conexão de dados para dados do cliente port)
porta do servidor FTP 20 a partir de portos> 1024 (Cliente envia ACKs a porta de dados do servidor)
na etapa 1, contatos de porta de comando do cliente porta de comando do servidor e envia