¿Cuáles son las razones por las que la mayoría de las empresas e instituciones utilizan TCP, no UDP, para llamadas de videoconferencia o para transmisión en vivo?

Si bien la mayoría de las personas conocen técnicamente el TCP vs UDP, el problema menos conocido con UDP es con la traducción de direcciones de red (NAT). La mayoría de los enrutadores de Internet domésticos / de oficina pequeña tienen NAT configurada para permitir que los usuarios de la red privada local accedan a Internet utilizando la dirección IP del enrutador. Si bien las conexiones salientes para los protocolos TCP y UDP pasan a través del enrutador utilizando NAT, la implementación de UDP en estos dispositivos es inconsistente.

UDP es un protocolo sin conexión, es utilizado por protocolos simples como DNS para la resolución de direcciones usando el patrón de consulta y respuesta. Una consulta DNS agregará una entrada UDP en la tabla NAT del enrutador y cualquier respuesta que se devuelva será enrutada de nuevo al usuario de origen.

Sin embargo, si un protocolo está enviando demasiados paquetes UDP, la implementación del enrutador puede cambiar repentinamente el puerto fuente UDP para el tráfico saliente creando confusión en el otro extremo e interrumpiendo el flujo de datos. Este fue el problema que enfrenté al implementar un prototipo de mensajería instantánea punto a punto basado en el protocolo UDP. Al no encontrar una buena solución a este problema, tuve que utilizar el protocolo basado en TCP para el prototipo.

Aparte de esto, existe el inconveniente de que los paquetes salen de servicio y que la aplicación que transmite los datos tendrá que administrar por sí sola.

Por último, al usar un servidor web HTTP (y usar TCP debido a esto), es más fácil implementar un servicio web ya que el desarrollador no necesita implementar un servidor de socket por su cuenta desde cero. Puede utilizar un servidor web y cualquier tecnología web de su elección para implementar el servicio en menos tiempo y de manera confiable.