Bueno, esa es una buena pregunta.
Entonces, comencemos, en primer lugar, no hay una regla para identificar qué aplicación usa TCP y cuál usa UDP. Es solo la decisión del desarrollador de la aplicación.
Si no quisieron molestarse en escribir su propio sistema de “entrega confiable”, entonces simplemente pueden usar TCP que proporciona toda la confiabilidad.
- ¿Qué son los protocolos de enrutamiento de red?
- ¿Cuáles son los parámetros de análisis de red equivalentes entre un protocolo SNMP y un protocolo SDN?
- ¿Qué es un protocolo de dirección IP?
- ¿Por qué necesitamos ACK en TCP mientras ya tenemos ACK en Link Layer (ex CSMA / CA)?
- ¿Cuál es la intuición detrás de los protocolos de red?
Si pensaban que podían escribir un sistema de “entrega confiable” mejor o más apropiado, entonces podrían incorporarlo al protocolo mismo y simplemente usar UDP como su transporte.
Por ejemplo:
El Sistema de nombres de dominio (DNS) es tradicionalmente el protocolo al que se hace referencia cuando se discuten protocolos que usan TCP y UDP. No los usa al mismo tiempo, eso sí. Pero diferentes funciones dentro de DNS pueden requerir TCP vs UDP.
Por ejemplo, cuando se realiza una solicitud simple de resolución de registro A, la “solicitud” y la “respuesta” son muy ligeras, y ambas requieren un único paquete. Como tal, esto generalmente se hace a través de UDP.
Pero si una solicitud o respuesta requiere una transferencia mayor (por encima de una cierta cantidad de bytes), entonces DNS elige usar TCP para garantizar que “todos los bits” lleguen allí. Esto es común con las solicitudes completas de transferencia de zona.