Por que a porta 20 não é usada para o canal de dados no modo passivo FTP?

1

No modo ativo, um servidor FTP usa duas portas, 21 para sinais de comando e 20 para dados. No modo passivo no FTP, depois que o cliente se conecta ao servidor na porta 21, o servidor dá ao cliente uma porta efêmera aleatória para se conectar, para a conexão de dados, na qual ele começa a escutar. Por que o servidor não fornece a porta 20 (como é usual para o modo ativo) para as conexões de dados?

PS: consultei Por que o modo passivo de FTP requer um intervalo de portas em oposição a apenas uma porta? , mas isso não resolve minha questão específica.

    
por harishankarv 01.08.2016 / 20:44

2 respostas

0

No modo ativo, FTP server não 'da' porta 20 para o cliente. Ele inicia a conexão da porta 20 para o cliente. Essa conexão de entrada (da perspectiva do firewall do cliente) será bloqueada pela maioria dos firewalls modernos. Além disso, é bastante complicado fazer o modo ativo funcionar através de NAT . O modo passivo é privado de todos esses inconvenientes, porque no modo passivo FTP server não inicia nenhuma conexão.

    
por 01.08.2016 / 21:42
0

Eu não sei porque os autores originais da especificação FTP decidiram dessa forma. Mas essa decisão tem vantagens com a maneira como a Internet funciona hoje em dia.

Se você tivesse que se conectar à mesma porta (20) toda vez, o servidor não seria capaz de dizer, para qual arquivo você se conecta. O número da porta serve como um link entre uma solicitação de transferência na conexão de controle e uma conexão de dados. Note que não há "protocolo" na conexão de dados, que poderia ser usado pelo cliente para dizer o que ele pede. O número da porta é a única informação exclusiva que o servidor possui.

Se dois clientes solicitarem a transferência ao mesmo tempo, quando o servidor aceitar uma conexão na porta única, o servidor não poderá informar qual arquivo será transferido. É claro que o servidor poderia usar um IP cliente para a decisão (na verdade, muitos servidores FTP validam que o IP do cliente corresponde ao IP usado na conexão de controle para segurança).

Mas isso não funcionaria para:

  • Várias conexões da mesma máquina (a maioria dos clientes FTP suporta transferências / filas paralelas).
  • Conexão de diferentes máquinas na mesma rede (corporativa), pois elas têm o mesmo IP externo.

Nenhuma das opções acima foi provavelmente a razão pela qual a especificação FTP introduziu um intervalo de portas na época (1980), as redes corporativas não existiam e várias conexões da mesma máquina provavelmente também eram improváveis. Por outro lado, nesses momentos, o intervalo de portas pode simplificar significativamente a implementação do servidor.

    
por 02.08.2016 / 09:14

Tags