O cliente inicia um aberto ativo para a conexão de controle e uma abertura passiva para a conexão de dados em determinados cenários de rede, principalmente para abordar problemas de firewall e nAT Traversal. Vamos quebrar o porquê:
*
Conexão de controle (ativo aberto): A conexão de controle é usada para estabelecer os parâmetros da transferência de dados, como o tipo de dados, a porta a ser usada para transferência de dados e qualquer autenticação necessária. O cliente inicia essa conexão ativamente porque precisa dizer ao servidor o que deseja fazer. O servidor ouve passivamente em uma porta bem conhecida (por exemplo, 22 para SSH, 21 para FTP). O firewall normalmente permite conexões de entrada com essas portas estabelecidas, facilitando o início da conexão de controle pelo cliente.
*
Conexão de dados (Passive Open): Depois que a conexão de controle é estabelecida, o servidor geralmente ouve passivamente para a conexão de dados do cliente. Isso é feito por vários motivos:
*
Nat Traversal: A tradução de endereço de rede (NAT) pode complicar as coisas. Um cliente por trás de um roteador NAT pode ter um endereço IP privado que não é diretamente rotável para a Internet. Ter o servidor ouve passivamente significa que o cliente precisa conhecer apenas o endereço IP público e a porta do servidor do servidor, e o servidor lida com os detalhes do recebimento da conexão de dados. O servidor pode usar técnicas como encaminhamento de porta ou protocolos como o NAT Traversal (por exemplo, atordoamento ou virar) para facilitar isso.
*
Restrições de firewall: Os firewalls são frequentemente configurados para serem mais restritivos sobre as conexões de saída do que as conexões de entrada. Ao fazer o servidor ouvir passivamente, o cliente precisa apenas iniciar uma conexão de saída com a porta de controle do servidor, que geralmente é permitida. A conexão de dados de entrada com a porta alocada dinamicamente do cliente pode ser mais difícil de permitir através do firewall. Observe que o cliente * ainda * precisa iniciar a conexão de dados.
*
Segurança: Em alguns casos, é visto como mais seguro para o servidor aceitar passivamente a conexão de dados. Isso pode oferecer alguma proteção contra certos ataques, embora o principal benefício aqui seja Nat e Firewall Traversal.
Em suma, a combinação de uma conexão de controle ativa e uma conexão de dados passivos é uma estratégia comum para contornar as limitações e as restrições de segurança impostas pelos firewalls e NAT. O cliente estabelece ativamente o canal de controle para negociar os termos, e o servidor aceita passivamente o canal de dados para simplificar a travessia do NAT e talvez melhorar a segurança. A implementação exata varia dependendo do protocolo (FTP, SSH, etc.).