UDP isn't unreliable, it's a convertible (2024)

https://www.proxylity.com/articles/udp-is-a-convertible.html

UDP Isn't Unreliable, It's a Convertible - Proxylity Blog

Explore why UDP isn't truly unreliable and how you can build custom reliability layers that give you the best of both UDP and TCP worlds.

Proxylity Blog

This is something that the classic TCP/IP books (both Comer and Stevens) got wrong, inexplicably, because David Reed was very clear about it. UDP isn't a transport protocol at all. It's an extension interface for building new transport protocols. It is the thing you would use (and weirdly didn't) to ship SCTP, and did use to build QUIC. It does not make sense to compare UDP to TCP; it's like saying TCP is worse at URL handling than HTTP.

Talking about what UDP provides is a little bit like talking about what IP provides. It's almost a category error. Is "UDP" "reliable"? It's as reliable as whatever transport you build on it is!

I agree with you about the category error.

In all fairness, though, there are quite a few application protocols which are built directly on top of UDP with no explicit intermediate transport layer. DNS, RTP, and even sometimes SIP come immediately to mind.

I'd argue that DNS has an implicit transport protocol by dint of the QIDs. It's a very simple transport! But that's the point, right.