tecnico · risposta con fonti

SMTP usa TCP o UDP? Analisi tecnica del protocollo

SMTP è un protocollo TCP. Si basa sul Transmission Control Protocol per garantire che i messaggi email vengano consegnati in modo affidabile, nell'ordine corretto e senza perdita di dati: un requisito critico per i protocolli di comunicazione in cui ogni byte del messaggio deve arrivare intatto.

Perché SMTP richiede TCP

SMTP richiede un protocollo orientato alla connessione perché la consegna delle email non può tollerare la perdita di pacchetti. TCP offre un handshake a tre vie per stabilire la sessione, numeri di sequenza per ordinare i pacchetti e acknowledgment per confermarne la ricezione. Se un pacchetto va perso durante la trasmissione, TCP ne richiede automaticamente la ritrasmissione. UDP è senza connessione e non garantisce la consegna, quindi non è adatto alla natura strutturata a comando e risposta delle sessioni SMTP.

Il processo di handshake SMTP

La connessione TCP permette a SMTP di svolgere uno scambio conversazionale. Una volta aperto il socket TCP, il server invia un saluto 220. Il client invia quindi EHLO o HELO per avviare la sessione. Questa interazione con stato prosegue con i comandi MAIL FROM e RCPT TO. Senza il flusso affidabile fornito da TCP, server e client non potrebbero sincronizzare queste transizioni di stato né gestire efficacemente i codici di errore.

Porte TCP standard di SMTP

SMTP opera su diverse porte TCP registrate, a seconda del caso d'uso. La porta 25 è usata per il relay tra server. La porta 587 è lo standard per la submission dai client con STARTTLS. La porta 465 è usata per il TLS implicito. Tutte queste assegnazioni sono gestite dalla IANA e usano specificamente il livello di trasporto TCP per mantenere l'integrità della sessione durante la trasmissione di intestazioni e corpo dei messaggi.

Sicurezza e livello di trasporto

Le implementazioni SMTP moderne incapsulano il flusso TCP in TLS per garantire la cifratura. Questo avviene tramite il comando STARTTLS sulla porta 587 oppure tramite TLS implicito sulla porta 465. Poiché anche TLS richiede un livello di trasporto affidabile per il proprio handshake e lo scambio delle chiavi, la connessione TCP sottostante è obbligatoria. Puoi usare gli strumenti gratuiti di SendHQ per verificare le impostazioni DNS per queste connessioni sicure.

Confronto con i protocolli UDP

Mentre SMTP usa TCP, altri servizi legati alle email, come il DNS, usano UDP per query veloci e con poco overhead. Tuttavia, una volta che la query DNS ha risolto l'IP del server di posta via UDP, il trasferimento vero e proprio della posta passa a TCP. Questo approccio ibrido consente lookup veloci e consegna affidabile. UDP si usa per velocità ed efficienza, TCP per accuratezza e gestione della sessione.

Le domande dei team

SMTP può funzionare su UDP?

No, la specifica SMTP richiede un flusso di dati affidabile e ordinato, che solo TCP fornisce. UDP non supporta la gestione della sessione necessaria.

Qual è la porta TCP migliore per inviare email?

La porta 587 è quella consigliata per la submission delle email, perché supporta STARTTLS per una trasmissione sicura.

TLS cambia il protocollo di trasporto?

No, TLS è un livello crittografico che si appoggia su TCP. Cifra i dati, ma si basa comunque su TCP per il trasporto effettivo dei pacchetti.

Perché il DNS usa UDP se SMTP usa TCP?

Il DNS usa UDP per query piccole e veloci, così da ridurre la latenza. SMTP usa TCP perché la perdita di un solo pacchetto potrebbe corrompere un intero messaggio email.

Fonti primarie