4 ms·
Large UDP datagrams are much more likely to be dropped than small ones. A short datagram will fit in a single IP packet. A maximally sized datagram may take abo
by jws 10y ago
Large UDP datagrams are much more likely to be dropped than small ones. A short datagram will fit in a single IP packet. A maximally sized datagram may take about 40. If you have a 1% packet loss rate, then the short datagrams get lost 1% of the time, but the huge ones get lost 33% of the time ( 0.99^40 ). With a 10% packet loss you get almost 99% loss of maximally sized UDP datagrams.
The extra pain is that even though the huge datagram is lost, almost all of its data is transmitted. So you have a congested line and you are hammering it extra hard by resending the same data over and over.
Moral: unless you can guarantee low IP packet loss rates across the entire route, be very careful about large UDP packets.
Counter moral: I built a very nice VPN over TCP solution for a customer who insisted 10% packet drop on their network was fine. Completely fixed their large UDP packet based legacy system… which I had designed a decade before.
- AstralStorm 10y agoCounter-counter moral: detect Jumbo packets and use them. Except maybe still not over general Internet. Modern OSes have a thing called black-hole detection, it is a good idea to have something similar in your protocol running on top of UDP.