Esta es una pregunta que veo mucho. La mayoría de la gente dice que UDP siempre es mejor para juegos en tiempo real que TCP. Según tengo entendido, TCP intenta reenviar paquetes una y otra vez hasta que el otro lado los recibe, mientras que a UDP no le importa.
La mayoría de las cosas que he leído es que UDP es imprescindible para cualquier juego en tiempo real y TCP es terrible. Pero la cuestión es que la mayoría de las personas parecen implementar alguna forma de TCP sobre UDP de todos modos. Y también escuché que la diferencia entre los dos es insignificante dado que ya no estamos en los 80 y que Internet ahora es bastante rápido y confiable.
¿Mi comprensión general aquí es incorrecta? ¿Alguien puede aclarar esto por mí?
t0
que nunca se recibe, entonces envía el nuevo estado mundial a tiempo t1
, no tiene que esperar hasta que el cliente realmente reciba el primer paquete, que ya está obsoleto
internet is now pretty fast and reliable
No, no es. El ancho de banda ha aumentado dramáticamente, sí, pero la latencia sigue siendo bastante alta. Con TCP puro, necesita que el tiempo de tic del servidor sea mayor que la latencia máxima asequible, a menos que realice la compresión de paquetes, que se realiza mejor en el cliente a través de UDP. El problema es que cierta información en un juego debe ser confiable, mientras que otra debe ser rápida. Los protocolos personalizados además de UDP lo permiten, así como un montón de propietarios que le brindan todo lo que necesita en un paquete agradable.