This is an old question, but I saw that no one answered anything about UDT. I have some experience with it, so I can share it.
UDT works very well. You basically use it, like a UDP socket, and get everything you specified from it.
In terms of performance, I did not notice any problems. In fact, it has several algorithms to maximize throughput, and you can get pretty amazing results (I got> 90 MB / s on a 100 MB / s Ethernet LAN). It works great on slow / high latent links.
This is not ideal, of course, and some error scenarios are not handled as we would like, but for the most part, you just βplug it inβ and you're good.
source share