¿Por qué HTTP, FTP, SMTP y POP3 se ejecutan sobre TCP y no UDP?

Cada uno de los protocolos nombrados supone la presencia de un transporte secuencial de datos sin pérdidas. El servicio TCP se adapta perfectamente a esos protocolos de nivel superior.

UDP solo envía datagramas y no gestiona la conexión, retransmisión o secuencia de datos. Para los protocolos que pueden soportar la pérdida de datos o prefieren una estrategia de ritmo de datos diferente a la que proporciona TCP, UDP es una mejor opción. Los servicios de transmisión de audio y video donde los flujos de datos están diseñados para soportar pérdidas de datos a veces pueden mejorar con el protocolo UDP más liviano.

Sin embargo, cualquier flujo de datos que quiera un protocolo confiable donde puedan “disparar y olvidar” sus datos y estar seguros de su entrega, TCP es el camino a seguir.

ACTUALIZACIÓN: muchos navegadores web y servidores están moviendo HTTP a QUIC y SPDY a través de UDP para sus conexiones, permitiendo que las conexiones web continúen rápidamente sin el apretón de manos TCP lento de 3 vías, pero luego administran la secuencia de datos a nivel de aplicación del nivel de red. Esto, por supuesto, requiere más código en el navegador web y en el nivel del servidor web para administrar la conexión.

Porque eso sería extremadamente incómodo. Todos esos protocolos tienen gusto de flujos de datos secuenciales agradables, confiables. Exactamente lo que proporciona TCP.

Los protocolos mencionados están orientados a la conexión. Lo que significa que necesitan establecer una conexión confiable de extremo a extremo.
Se basan en el modelo de servidor del cliente basado en la solicitud-respuesta, lo que significa la solicitud de un cliente y la respuesta del servidor.
Puedo explicarlo en detalle pero necesito más tiempo e interacciones. Pero la parte más importante es donde hacemos la analogía con una conversación telefónica cuando establece la conexión primero antes de comenzar su conversación.

  • Si usaran UDP, tendrían que implementar una o más de las funciones que ya están disponibles en TCP
  • La eficiencia, que es un área donde UDP triunfa sobre TCP, no es la consideración más importante para ninguno de los protocolos

Las aplicaciones conectadas con esas convenciones requieren que toda la información de la aplicación se encuentre en la solicitud correcta y sin grietas. TCP le da a esta administración aunque UDP no.

Debido a que esos protocolos no quieren preocuparse por la pérdida o falta de datos de la secuencia, aprovechan la garantía de datos confiables secuenciales ofrecidos por TCP.