¿Puede la latencia de paquetes fluctuar?

9

¿Puede fluctuar el tiempo que tarda un paquete en transmitirse de un cliente al servidor?

liamzebedee
fuente

Respuestas:

9

El protocolo IP, sobre el cual se construyen TCP y UDP, especifica que no se garantiza que los datagramas lleguen en orden, ni a través de la misma ruta, ni, en realidad, en absoluto (gracias Trevor por el recordatorio). Entonces, independientemente de si se usa TCP o UDP, la latencia fluctuará. La latencia se debe en parte a la distancia recorrida , que cambia si la ruta cambia, y en parte a la traducción de la pila de protocolos en los dispositivos de enrutamiento a lo largo de la ruta elegida, que también cambia si la ruta cambia.

Esto es parte de la naturaleza de reparación automática de Internet, lo que le permite hacer lo que hace todos los días: si una ruta se vuelve menos adecuada según la heurística programada en varios dispositivos de enrutamiento en el camino, se elegirá otra ruta. Esto puede ser momentáneo o a largo plazo. Recuerde que antes era Internet, era ARPANET , una red de defensa diseñada para tratar, por ejemplo. la eliminación instantánea de vastas secciones de la red (piense en la guerra nuclear), sin que la red en su conjunto se caiga. Al enrutar alrededor de áreas dañadas o no ideales, la red más grande continúa funcionando (aunque, quizás, subóptimamente).

Ingeniero
fuente
1
Vale la pena agregar que no se garantiza que los datagramas lleguen en absoluto. Pueden dejarse caer silenciosamente en cualquier punto de su viaje. Es solo el transporte TCP construido sobre IP que agrega una ilusión de confiabilidad a las comunicaciones de red.
Trevor Powell el
También vea la respuesta de Danny Pflughoeft, él agrega acertadamente que TCP sufrirá demoras adicionales debido a la forma en que opera: si se pierden los paquetes, se volverán a solicitar y se reenviarán, agregando un tiempo de viaje de ida y vuelta adicional en la latencia del mensaje. Y eso puede suceder arbitrariamente muchas veces. UDP supera esto enviando un flujo continuo de actualizaciones y donde la simulación puede avanzar a pesar de la pérdida de paquetes (sin embargo, hay mucho más que pensar y planificar en este tipo de sistema).
Ingeniero
5

Probablemente esta no sea una pregunta de desarrollo del juego, pero sí. En una conexión IP normal, cada paquete puede pasar por diferentes "saltos" intermedios, y cada "saltos" diferente puede tener una latencia diferente.

Si está utilizando TCP para transferir sus datos, el protocolo lo resume y reordenará los paquetes para entregar los paquetes en el orden en que se enviaron originalmente; sin embargo, si está utilizando UDP, los paquetes pueden llegar a estar fuera de servicio, dependiendo de la latencia de cada paquete individual.

Lie Ryan
fuente
En particular, si los paquetes UDP y TCP se enrutan de la misma manera y los paquetes UDP llegan de forma rutinaria fuera de orden, esto se traduce en "picos de retraso" en la misma conexión usando TCP.
Martin Sojka
1

Aparte de lo que ya se ha dicho, no olvide que los enrutadores pueden soltar paquetes arbitrariamente , lo que significa que en TCP un paquete teóricamente podría tomar mucho tiempo para llegar a su destino (¡y en UDP, nunca podría llegar a su destino!).

BlueRaja - Danny Pflughoeft
fuente