¿SMTP utiliza TCP o UDP y por qué?

SMTP utiliza el puerto 25 y se ha asignado a UDP y TCP. Nunca he visto el uso de UDP en SMTP.

En TCP, se envía un paquete y se verifica en el otro extremo. Si la suma de verificación dice que el paquete está dañado, se descarta y se envía una solicitud para retransmitirlo. Se utiliza para situaciones en las que cada bit de información debe ser exacto.

UDP es como hablar en una radio portátil. Es posible que tenga momentos confusos ocasionales, pero el mensaje se transmite. En una situación en la que se usan videoconferencias de transmisión o VOIP (Voz sobre IP), siempre recibirá paquetes ocasionalmente descartados. Si la conversación se detuviera en cada error, fallarían todas las comunicaciones de transmisión.

Imagine que está hablando por teléfono VOIP con su madre y que un solo paquete está dañado. La secuencia de conversación se detendrá hasta que se reenvíe el paquete único. Mientras tanto sigues hablando. Esto hará que las cosas retrocedan irremediablemente. UDP permite descartar paquetes ocasionales y la transmisión continuará.

A modo de ejemplo, si está utilizando Viber y recibe un error ocasional en video o audio, la llamada continúa. Los datos dañados no se retransmiten porque no son necesarios. La comunicación puede continuar con algunos paquetes descartados. Si se pone mal, simplemente cuelga y vuelve a llamar.

TCP se usa donde cada paquete importa. Un documento crítico no puede contener errores, un programa que se transmite no puede contener bits dañados o no funcionará. Una hoja de cálculo del informe financiero de la empresa no puede tener una precisión del 98%. Debe ser totalmente exacto.

UDP se usa cuando hay pérdida de paquetes o corrupción de datos. TCP se usa donde cada bit es muy preciso de principio a fin.

Utiliza TCP, puerto 25. Se remonta hasta principios de los años ochenta, donde era necesario enviarse mensajes entre ellos de manera confiable entre hosts.

Aquí está el propósito establecido en RFC788:

“El objetivo del Protocolo simple de transferencia de correo (SMTP) es transferir el correo de manera confiable y eficiente”.

Además, también establece el “por qué”:

“SMTP es independiente del subsistema de transmisión particular y solo requiere un canal de flujo de datos ordenado confiable”.

Básicamente, necesita un transporte que pueda garantizar que los datos intercambiados se transmitan sin pérdida de datos, y que los datos lleguen en orden. TCP tiene estos mecanismos integrados, UDP no.

La gran diferencia entre TCP y UDP que hace que TCP sea ideal aquí es que TCP verifica para asegurarse de que se reciban todos los paquetes y los reenvía si no lo están, mientras que UDP simplemente enviará paquetes y no comprobará la recepción. Esto hace que UDP sea ideal para cosas como la transmisión de video donde cada paquete no es tan importante como mantener un flujo continuo de paquetes desde el servidor al cliente.

Considerando SMTP, tiene más sentido usar TCP sobre UDP . SMTP es un protocolo de transporte de correo, y en el correo cada paquete es importante . Si pierde varios paquetes en el medio del mensaje, es posible que el destinatario ni siquiera reciba el mensaje y, si lo hacen, es posible que le falte información clave. Esto hace que TCP sea más apropiado porque garantiza que se entreguen todos los paquetes.

TCP y en cuanto a por qué, bueno, ya teníamos UUCP para sistemas con conectividad intermitente y debido a que un mensaje de correo electrónico individual requeriría muchas PDU UDP, tenía más sentido ejecutar SMTP en un protocolo orientado a conexión que en uno sin estado.

RFC 821

Protocolo simple de transferencia de correo

Artículo de Wikipedia sobre SMTP

Protocolo simple de transferencia de correo

SMTP es el protocolo de comunicaciones. Es independiente del operador, y con un poco de inteligencia y adaptación puede enviarse a través de casi cualquier cosa, incluidos enlaces de radio o ‘cable trenzado’.

SMTP utiliza TCP porque TCP garantiza una transmisión de datos confiable y exitosa. En un nivel detallado, TCP siempre habla constantemente (orientado a la conexión) entre el host receptor y el host transmisor y verifica que la dirección de destino esté lista antes de enviar los datos.

Mantiene esa conexión hasta que se reciben todos los datos enviados en segmentos y en su orden correcto.

UDP no permite conversaciones cruzadas entre el remitente y el receptor (no orientado a la conexión). Cualquier información enviada desde la fuente se envía, si se pierde en el camino, entonces no es recuperable y no hay un mecanismo para informarla.