UDP is superior to TCP if you do not need some of the features provided by TCP. Each function has a cost, and therefore, if you do not need functions, you pay this cost for no reason.
In an HFT application, you need almost every function required by TCP. Therefore, if you chose UDP, you will have to implement these functions yourself. This means that you will need to implement connection establishment, disconnections, retransmissions, baud rate, windows, etc.
If there was a way to do everything that was better than how TCP did it, TCP would do it that way. You would have one hand tied behind your back, because TCP is highly optimized by some of the best minds on the planet and implemented in / with the kernel.
source share