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 21. 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 20 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 21) fica sempre aberta e trafega comandos e respostas de status, enquanto a conexão de dados (porta 20 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.

Exercícios relacionados