I pacchetti udp possono essere incollati

2

C'è qualche standard che dice che i pacchetti udp non devono essere combinati insieme dal sistema operativo?

In altre parole posso essere sicuro che quando invierò piccoli pacchetti udp tramite sendto o analoghi, riceverò pacchetti udp della stessa dimensione da recvfrom, se richiedo la lunghezza, che è molto più della dimensione di qualsiasi pacchetti?

Ok, sono sicuro che il lato del receving non può concatenare i datagrammi, perché potrebbero venire riordinati o persi. Ma cosa significa mandare una parte? Diciamo che faccio diversi sendto allo stesso indirizzo, perché il sistema operativo non dovrebbe concatenare i dati?

    
posta Alexander Vasiljev 29.12.2015 - 10:34
fonte

1 risposta

5

Non è esplicitamente dichiarato, ma è implicito nelle specifiche del protocollo UDP ( RFC 768 ) che più pacchetti inviati in modo indipendente vengono ricevuti indipendentemente.

UPD sta per User Datagram Protocol , ed è il Datagramma che è rilevante qui.
Un datagramma è definito come

A self-contained, independent entity of data carrying sufficient information to be routed from the source to the destination computer without reliance on earlier exchanges between this source and destination computer and the transporting network.
-- RFC 1594

Poiché i datagrammi sono definiti come indipendenti e autonomi, e dato che il loro ordine di consegna (e se arrivano a tutti) non è specificato, non esiste un modo in cui un sistema operativo possa disporre di più datagrammi insieme in modo significativo.

    
risposta data 29.12.2015 - 11:17
fonte

Leggi altre domande sui tag