O FTP (File Transfer Protocol) é fundamentado estritamente sobre o Protocolo TCP (Transmission Control Protocol) na camada de transporte. Por ser orientado a conexão e garantir a entrega de pacotes em ordem e sem erros, o TCP é o alicerce indispensável que permite ao FTP mover gigabytes de arquivos críticos sem o risco de corrupção de dados. Esta relação técnica profunda entre a camada de aplicação (FTP) e a camada de transporte (TCP) define a robustez do sistema de arquivos em rede.
1. Conexões TCP Duplas: Controle e Dados
Diferente de protocolos mais simples, o FTP exige que existam duas conexões TCP independentes para cada sessão de usuário.
- Canal de Controle (Porta 21): Utiliza um socket TCP persistente para o diálogo de comandos. O sucesso de cada comando (USER, PASS, LIST) depende da confirmação de recebimento ACK do TCP em nível de segmento.
- Canal de Dados (Portas 20 ou Dinâmicas): Para cada transferência de arquivo em curso, uma nova conexão TCP é aberta e fechada. Isso garante que a largura de banda total do link possa ser dedicada exclusivamente ao fluxo bruto de bytes do arquivo, sem interferência de comandos de controle.
2. O Three-Way Handshake em Dobro
Cada etapa técnica do FTP exige a sincronização rigorosa do TCP.
1. Handshake de Controle: O cliente inicia o SYN para a porta 21, recebe o SYN-ACK e responde com ACK. Somente após este ciclo é que o servidor FTP envia o banner de boas-vindas.
2. Handshake de Dados: No momento de um download (RETR), um segundo handshake TCP deve ocorrer para estabelecer o fluxo de bits do arquivo. No modo ativo, o servidor envia o SYN para o cliente; no modo passivo, o cliente envia o SYN para a porta dinâmica do servidor.
3. Garantia de Integridade e Janela de Transmissão
O FTP tira proveito da inteligência do TCP para mitigar falhas de rede.
- Checksums e Retransmissão: Se um segmento de um executável (.exe) for perdido ou corrompido durante a transferência, o TCP detecta e solicita a retransmissão automática. O FTP nunca “vê” o erro; ele apenas recebe o fluxo de bytes correto no final.
- Sliding Window (Janela Deslizante): O TCP ajusta a velocidade de envio dos dados do arquivo baseando-se na capacidade de recepção do cliente, o que previne o transbordamento de buffers (Buffer Overflow) em máquinas lentas ou redes congestionadas.
4. Perspectiva de Cyber Security e Ameaças em Nível TCP
Para um profissional de Cyber Security, a dependência do FTP no TCP cria superfícies de ataque específicas.
TCP Session Hijacking (Sequestro de Sessão)
Como o canal de controle do FTP é frequentemente em texto claro, um atacante pode prever ou capturar os números de sequência (Sequence Numbers) do TCP.
- O Ataque: O invasor injeta pacotes TCP falsificados com o número de sequência correto, permitindo-lhe “sequestrar” a conexão e executar comandos administrativos em nome do usuário legítimo.
Port Stealing (Roubo de Porta)
Em modo ativo, o servidor conecta de volta no cliente. Um atacante local na rede do cliente pode tentar “chegar primeiro” e abrir o socket na porta que o cliente anunciou que estaria esperando os dados, desviando o arquivo para sua própria máquina de forma silenciosa.
5. Auditoria Técnica e Diagnóstico de Transporte
Auditar o transporte TCP é fundamental para diagnosticar quedas prematuras de conexão (Timeout):
# Verificando as conexoes TCP ativas do servidor FTP (Canal 21 e Portas de Dados)
netstat -ant | grep ':21'
# Capturando o Handshake TCP de uma conexao FTP de entrada
sudo tcpdump -i eth0 -n 'port 21 and (tcp-syn|tcp-ack)!=0'
6. Conclusão: A Confiança Baseada em Conexão
A Simbiose entre o FTP e o TCP é o que confere ao protocolo a sua confiabilidade histórica. Por delegar a gestão de erros, janelamento e retransmissão para a camada de transporte, o FTP pode focar exclusivamente na semântica de arquivos e diretórios. Dominique a mecânica do Three-way Handshake duplo e entenda os riscos de manipulação de números de sequência TCP para garantir que a sua infraestrutura de transferência de arquivos seja sólida, íntegra e inabalável no cenário digital globalizado.