La latenza dei pacchetti può variare?


9

Il tempo necessario per la trasmissione di un pacchetto da un client al server può variare?

Risposte:


9

Il protocollo IP, in cima al quale sono costruiti TCP e UDP, specifica che i datagrammi non sono garantiti per arrivare in ordine, né attraverso lo stesso percorso, né, del resto , affatto (grazie Trevor per il promemoria). Pertanto, indipendentemente dal fatto che vengano utilizzati TCP o UDP, la latenza fluttuerà. La latenza è in parte dovuta alla distanza percorsa , che cambia se il percorso cambia, e in parte a causa della traduzione dello stack di protocollo sui dispositivi di routing lungo il percorso scelto, che cambia anche se il percorso cambia.

Questo fa parte della natura autoriparante di Internet, consentendogli di fare ciò che fa ogni giorno: se un percorso diventa meno adatto in base alle euristiche programmate in vari dispositivi di routing lungo il percorso, verrà invece scelto un altro percorso. Questo può essere momentaneo o a lungo termine. Ricorda che prima era Internet, era l' ARPANET , una rete di difesa progettata per gestire ad es. la rimozione istantanea di vaste sezioni della rete (si pensi alla guerra nucleare), senza che la rete nel suo insieme si riduca. Instradando le aree danneggiate o altrimenti non ideali, la rete più grande continua a funzionare (anche se forse in modo non ottimale).


1
Vale la pena aggiungere che i datagrammi non sono garantiti per arrivare affatto. Possono semplicemente essere lasciati cadere silenziosamente in qualsiasi momento del loro viaggio. È solo il trasporto TCP basato sull'IP che aggiunge un'illusione di affidabilità alle comunicazioni di rete.
Trevor Powell,

Vedi anche la risposta di Danny Pflughoeft, aggiunge giustamente che TCP subirà ulteriori ritardi a causa del modo in cui funziona: se i pacchetti vengono persi, verranno ri-richiesti e rinviati, aggiungendo un ulteriore tempo di andata e ritorno completo alla latenza del messaggio. E ciò può accadere arbitrariamente molte volte. UDP lo supera inviando un flusso continuo di aggiornamenti e in cui la simulazione può andare avanti nonostante la perdita di pacchetti (molto di più a cui pensare e pianificare in questo tipo di sistema, tuttavia).
Ingegnere,

5

Questa probabilmente non è una domanda sullo sviluppo del gioco, ma sì. Nella normale connessione IP, ciascun pacchetto può passare attraverso "hop" intermedi diversi e ogni "hop" diverso può avere latenza diversa.

Se stai usando TCP per trasferire i tuoi dati, il protocollo lo estrae per te e riordina i pacchetti per consegnarli nell'ordine in cui sono stati originariamente inviati; tuttavia, se si utilizza UDP, i pacchetti possono e arrivano fuori servizio, a seconda della latenza di ogni singolo pacchetto.


In particolare, se i pacchetti UDP e TCP vengono instradati allo stesso modo e i pacchetti UDP arrivano regolarmente fuori servizio, ciò si traduce invece in "picchi di ritardo" sulla stessa connessione utilizzando TCP.
Martin Sojka,


1

A parte ciò che è già stato detto, non dimenticare che ai router è consentito rilasciare arbitrariamente pacchetti , il che significa che in TCP un pacchetto potrebbe teoricamente impiegare molto tempo a raggiungere la sua destinazione (e in UDP, potrebbe non raggiungere mai la sua destinazione!).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.