3 ms·
Wouldn't distributed systems benefit from using UDP instead of TCP?
by hsn915 10mo ago
Wouldn't distributed systems benefit from using UDP instead of TCP?
- 0xbadcafebee 10mo agoOnly if you're sending data you don't mind losing and getting out of order
- neomantra 10mo agoThis is true for simple UDP, but reliable transports are often built over UDP. As with anything in computing, there are trade-offs between the approaches. One example is QUIC now widespread in browsers. MoldUDP64 is used by various exchanges (that's NASDAQ's name, others do something close). It's a simple UDP protocol with sequence numbers; works great on quality networks with well-tuned receivers (or FPGAs). This is an old-school blog article about the earlier MoldUDP: https://www.fragmentationneeded.net/2012/01/dispatches-from-trading-floor-moldudp.html https://www.fragmentationneeded.net/2012/01/dispatches-from-... Another is Aeron.io, which is a high-performance messaging system that includes a reliable unicast/multicast transport. There is so much cool stuff in this project and it is useful to study. I saw this deep-dive into the Aeron reliable multicast protocol live and it is quite good, albeit behind a sign-up. https://aeron.io/other/handling-data-loss-with-aeron/ https://aeron.io/other/handling-data-loss-with-aeron/
- nospice 10mo agoStrictly speaking, you can put any protocol on top of UDP, including a copy of TCP... But I took parent's question as "should I be using UDP sockets instead of TCP sockets". Once you invent your new protocol instead of UDP or on top of it, you can have any features you want.
- wronex 10mo agoThere is also ENet which is used in a lot of games (that is, battle tested for low latency applications.) https://enet.bespin.org https://enet.bespin.org