técnico · resposta com fontes

SMTP usa TCP ou UDP? Análise técnica do protocolo

O SMTP é um protocolo TCP. Ele depende do Transmission Control Protocol para garantir que as mensagens de e-mail sejam entregues de forma confiável, na ordem correta e sem perda de dados, o que é fundamental em protocolos de comunicação nos quais cada byte da mensagem precisa chegar intacto.

Por que o SMTP exige TCP

O SMTP exige um protocolo orientado a conexão porque a entrega de e-mails não tolera perda de pacotes. O TCP oferece um handshake de três vias para estabelecer a sessão, números de sequência para ordenar os pacotes e confirmações para atestar o recebimento. Se um pacote se perde durante a transmissão, o TCP solicita a retransmissão automaticamente. O UDP não é orientado a conexão e não garante a entrega, o que o torna inadequado para a natureza estruturada de comando e resposta das sessões SMTP.

O processo de handshake do SMTP

A conexão TCP permite que o SMTP realize uma troca em forma de diálogo. Depois que o socket TCP é aberto, o servidor envia uma saudação 220. Em seguida, o cliente envia EHLO ou HELO para iniciar a sessão. Essa interação com estado continua com os comandos MAIL FROM e RCPT TO. Sem o fluxo confiável fornecido pelo TCP, o servidor e o cliente não conseguiriam sincronizar essas transições de estado nem tratar os códigos de erro de forma eficaz.

Portas TCP padrão do SMTP

O SMTP opera em várias portas TCP registradas, dependendo do caso de uso. A porta 25 é usada para relay entre servidores. A porta 587 é o padrão para envio a partir de clientes com STARTTLS. A porta 465 é usada para TLS implícito. Todas essas atribuições são gerenciadas pela IANA e usam especificamente a camada de transporte TCP para manter a integridade da sessão durante a transmissão dos cabeçalhos e do corpo das mensagens.

Segurança e camada de transporte

As implementações modernas de SMTP envolvem o fluxo TCP em TLS para oferecer criptografia. Isso é feito pelo comando STARTTLS na porta 587 ou por TLS implícito na porta 465. Como o próprio TLS exige uma camada de transporte confiável para realizar seu handshake e a troca de chaves, a conexão TCP subjacente é obrigatória. Os desenvolvedores podem usar as ferramentas gratuitas do SendHQ para verificar as configurações de DNS dessas conexões seguras.

Comparação com protocolos UDP

Embora o SMTP use TCP, outros serviços relacionados a e-mail, como o DNS, usam UDP para consultas rápidas e com pouca sobrecarga. No entanto, depois que a consulta DNS resolve o IP do servidor de e-mail via UDP, a transferência do e-mail em si passa para o TCP. Essa abordagem híbrida permite consultas rápidas e entregas confiáveis. O UDP é usado por velocidade e eficiência, enquanto o TCP é usado por precisão e gerenciamento de sessão.

Perguntas que as equipes fazem

O SMTP pode rodar sobre UDP?

Não. A especificação do SMTP exige um fluxo de dados confiável e ordenado, que só o TCP fornece. O UDP não oferece o gerenciamento de sessão necessário.

Qual porta TCP é melhor para enviar e-mails?

A porta 587 é a recomendada para o envio de e-mails, porque aceita STARTTLS para uma transmissão segura.

O TLS muda o protocolo de transporte?

Não. O TLS é uma camada criptográfica que fica acima do TCP. Ele criptografa os dados, mas continua dependendo do TCP para o transporte efetivo dos pacotes.

Por que o DNS usa UDP se o SMTP usa TCP?

O DNS usa UDP em consultas pequenas e rápidas para reduzir a latência. O SMTP usa TCP porque a perda de um único pacote poderia corromper uma mensagem de e-mail inteira.

Fontes primárias