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?

liamzebedee
fonte

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).

Engenheiro
fonte
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.

Lie Ryan
fonte
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!).

BlueRaja - Danny Pflughoeft
fonte