Domanda

Sto cercando di capire un modo semplice per gestire l'affidabilità per i messaggi UDP. Ho pensato che sarebbe sufficiente inviare ognuna con un ID di sequenziamento e confrontando l'ID a quello ricevuto in precedenza, una perdita può essere rilevato. Io normalmente basta usare gli interi tuttavia l'idea che sarebbe solo continuare a incrementare a tempo indeterminato non sedersi proprio con me.

Potrei usare Base64, ma che sarebbe solo rendere un po 'più leggibile, ma realmente non risolve nulla.

Ho anche considerato come prefisso una data timbro, tuttavia, che sarebbe sorta di sciatta quando i messaggi che si occupano ricevuti intorno a mezzanotte.

Mi sento come se ci deve una soluzione migliore che qualcuno potrebbe suggerire, anche se questo è solo bastone con gli interi.

È stato utile?

Soluzione

mia preferenza per questo particolare lavoro è di usare un incrementazione (almeno 64 bit) successione di interi seminato con un timestamp alta risoluzione. In questo modo, anche se v'è una perdita di stato alla fine invio, quando la sequenza viene nuovamente seminato dal tempo, con ogni probabilità semplicemente saltare avanti. Qualsiasi bug Anno 10K che questo potrebbe introdurre sono lasciati come esercizio per Lazarus Long. : -)

Tieni presente che il rilevamento di sequenza-gap è essenzialmente un'ottimizzazione. All'estremità trasmittente deve ritrasmettere finché un ACK è ricevuto, con un NACK (per una distanza o datagramma danneggiato) semplicemente suscitare prima ritrasmissione. (ZMODEM è una rara eccezione a questa regola, con la sua modalità operativa predefinita è l'uso di una singola ack alla fine del flusso e tutti gli altri ritrasmissioni soggette NACKs, come un protocollo di trasferimento di file, tuttavia, è essenzialmente una gigante datagram multipart.)

Altri suggerimenti

Usa TCP? Questo è il motivo per cui il protocollo TCP è diverso da UDP

Non voglio dire di essere sarcastico, ma questo è il motivo per cui il protocollo TCP è lì.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top