Qual a diferença e para que servem a conexão de controle e a conexão de dados no FTP?
Passo 1
Você quer entender a arquitetura básica do FTP (File Transfer Protocol) e, em especial, por que ele usa duas conexões TCP distintas: uma chamada “conexão de controle” e outra “conexão de dados”. Para isso vamos ver em que porta elas se baseiam, o que trafega em cada uma e como funcionam em conjunto.
Passo 2
A conexão de controle é um canal TCP estabelecido pelo cliente para o servidor na porta
. Ela permanece aberta durante toda a sessão FTP e serve basicamente para:
- Enviar comandos do cliente (por exemplo, LOGIN, CWD, LIST, RETR, STOR).
- Receber respostas do servidor (códigos de status como 200, 331, 550 etc.).
Essa separação garante que comandos e respostas não se misturem ao fluxo dos dados propriamente ditos.
Passo 3
A conexão de dados é um canal TCP separado, usado apenas para transferir o conteúdo real (arquivos, diretórios, listagens). Seu estabelecimento pode acontecer de duas formas:
- Active mode: o cliente diz ao servidor em qual porta efêmera está esperando (via comando PORT) e o servidor se conecta de volta a partir da porta
para essa porta. - Passive mode: o cliente solicita ao servidor que abra uma porta efêmera (com PASV), e então ele conecta nessa porta.
Em ambos os casos, esse canal é aberto quando se inicia uma operação de transferência (por exemplo, RETR ou STOR) e fechado assim que os bytes forem transmitidos.
Resposta
A conexão de controle (porta
) fica sempre aberta e trafega comandos e respostas de status, enquanto a conexão de dados (porta
ou porta efêmera negociada) abre e fecha a cada transferência para transportar o conteúdo dos arquivos ou listagens. Dessa forma, FTP isola claramente o diálogo de controle do fluxo de dados.