Я думаю, что наиболее раздражающей особенностью TCP в этих сценариях является возможность / способ сортировки входящих пакетов по их первоначальному порядку - концепция потока. Вы не можете прочитать байт до тех пор, пока он не прибудет.
Если вы можете жить без него, у вас есть шанс иметь свой протокол, быстрый и надежный, но не для заказа пакетов! Просто невозможно управлять ими обоими, потому что вы не можете упорядочить свои байты, пока не получите другую копию потерянного пакета, это главный компромисс.