when I asked people to explain how UDP works I got a lot of answers to the effect of "it's spray and pray"

but I'm having trouble thinking of examples of UDP-based protocols that actually work in a "spray and pray" way —

* DNS is "send 1 packet, retry if you don't get a reply”
* QUIC is a sophisticated system for streaming data over UDP
* I'd guess that video protocols correct for packet loss
* maybe statsd is a "spray and pray” system?

(please do not reply to this explaining how UDP works)

@b0rk niche but there is a small class of "udp multicast" protocols to do parallel file distribution. They literally spray the whole blob with some error correction bits so clients can recover from missed packets. I can only find one example at the moment [1] but I think there used to be a few more floating around.

The same trick is useful on asymmetrical connections like old school satellite downlinks.

[1] https://en.wikipedia.org/wiki/UDPCast

UDPCast - Wikipedia

@b0rk some multiplayer games kind of do (did?) a similar thing, they'll stream some amount of state deltas without any ack and then do a less frequent roll-up of the whole state. Missed updates are just ignored by the client so sometimes you just "teleport" when the roll-up contains an important delta that you missed.

Very not my area of expertise so maybe games haven't done this since the 90s but I swear it was a thing at one point.