A latência de pacotes pode variar?


9

O tempo que leva para um pacote ser transmitido de um cliente para o servidor pode variar?

Respostas:


9

O protocolo IP, no topo de que TCP e UDP são construídos, especifica que os datagramas não são nem garantidas para chegar em ordem, nem pela mesma via, nem, para essa matéria, em todos os (graças Trevor para o lembrete). Portanto, independentemente de o TCP ou UDP ser usado, a latência flutuará. A latência se deve em parte à distância percorrida , que muda se o caminho muda e em parte à conversão de pilha de protocolo nos dispositivos de roteamento ao longo do caminho escolhido - que também muda se o caminho mudar.

Isso faz parte da natureza auto-reparadora da Internet, permitindo que ela faça o que faz todos os dias: se uma rota se tornar menos adequada de acordo com as heurísticas programadas em vários dispositivos de roteamento ao longo do caminho, outra rota será escolhida. Isso pode ser momentâneo ou a longo prazo. Lembre-se de que antes da Internet, era a ARPANET - uma rede de defesa projetada para lidar com, por exemplo. a remoção instantânea de vastas seções da rede (pense em guerra nuclear), sem que a rede como um todo caia. Ao rotear em torno de áreas danificadas ou não ideais, a rede maior continua funcionando (embora, talvez, subótimamente).


11
Vale acrescentar que não é garantido que os datagramas cheguem. Eles podem ser silenciosamente descartados a qualquer momento da jornada. É apenas o transporte do TCP construído sobre o IP que adiciona uma ilusão de confiabilidade às comunicações da rede.
Trevor Powell

Veja também a resposta de Danny Pflughoeft, ele acrescenta, com razão, que o TCP sofrerá atrasos adicionais devido à maneira como opera - se os pacotes forem perdidos, eles serão solicitados e reenviados, adicionando um tempo adicional de ida e volta à latência da mensagem. E isso pode acontecer arbitrariamente muitas vezes. O UDP supera isso enviando um fluxo contínuo de atualizações, e onde a simulação pode avançar apesar da perda de pacotes (muito mais para se pensar e planejar nesse tipo de sistema).
Engenheiro

5

Provavelmente não é uma questão de desenvolvimento de jogos, mas sim. Na conexão IP normal, cada pacote pode passar por "saltos" intermediários diferentes e cada "saltar" diferente pode ter latência diferente.

Se você estiver usando o TCP para transferir seus dados, o protocolo abstrai isso para você e reordena os pacotes para entregar os pacotes na ordem em que foram originalmente enviados; no entanto, se você estiver usando UDP, os pacotes podem chegar e ficar fora de ordem, dependendo da latência de cada pacote individual.


Em particular, se os pacotes UDP e TCP estão sendo roteados da mesma maneira e os pacotes UDP chegam rotineiramente fora de ordem, isso se traduz em "picos de atraso" na mesma conexão usando o TCP.
Martin Sojka


1

Além do que já foi dito, não esqueça que os roteadores podem deixar pacotes arbitrariamente , o que significa que, no TCP, um pacote pode levar arbitrariamente muito tempo para chegar ao seu destino (e no UDP, ele nunca pode chegar ao seu destino!).

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.