2012-03-05 11 views
12

Che cos'è "messaggi in sospeso" nel seguente contesto?Che cos'è un limite di messaggio?

Una differenza tra TCP e UDP è che UDP preserva messaggio confini.

capisco la differenza tra TCP e UDP, ma incerti circa la definizione di "confini messaggio". Dato che UDP include le informazioni sulla destinazione e sulla porta in ogni singolo pacchetto, potrebbe essere questo a dare un messaggio al "confine" ?

+0

Hmm, http://codeidol.com/csharp/csharp-network/Connectionless-Sockets/Distinguishing-UDP-Messages/ (UDP) e http://codeidol.com/csharp/csharp-network/IP-Programming -Basics/Programming-with-TCP-and-UDP/(TCP) può aiutare. – Jason

risposta

16

No, i confini dei messaggi non hanno nulla a che fare con le destinazioni o le porte. Un "confine di messaggi" è la separazione tra due messaggi inviati su un protocollo. UDP conserva i limiti dei messaggi. Se si invia "FOO" e quindi "BAR" su UDP, l'altra estremità riceverà due datagrammi, uno contenente "FOO" e l'altro contenente "BAR".

Se si invia "FOO" e quindi "BAR" su TCP, non viene mantenuto alcun limite di messaggio. L'altra estremità potrebbe ricevere "FOO" e quindi "BAR". Oppure potrebbe ricevere "FOOBAR". Oppure potrebbe avere "F" e quindi "OOB" e quindi "AR". TCP non tenta di preservare i limiti dei messaggi dell'applicazione: è solo un flusso di byte in ciascuna direzione.

+0

In TCP, il flusso/buffer trasmette o riceve in ordine? Non vorrei ottenere "BAR" prima di "FOO" o ogni byte può essere confuso con qualcosa come "ORAFBO"? – KMC

+0

@ KMC: [Wikipedia TCP] (http://en.wikipedia.org/wiki/Transmission_Control_Protocol): TCP fornisce una consegna affidabile, ** ordinata ** di un flusso di byte [..] – LumpN

+0

Si noti inoltre che UDP NON . – GazTheDestroyer

2

I limiti del messaggio in questo contesto sono semplicemente l'inizio & del messaggio/pacchetto. Con le connessioni TCP, tutti i messaggi/pacchetti sono combinati in un flusso continuo di dati, mentre con UDP i messaggi ti vengono dati nella loro forma originale. Avranno una dimensione esatta in byte.

Problemi correlati