Цитата
на железках с малым количеством мегагерцев TCP очень трудоёмким выходит,
Вы заблуждаетесь

Пройдемся по пунктам:
1. Размер заголовков немного больше, чем в UDP. Но разницы особой нет, что 8 байт, что 20.
2. Лишняя математика представляет из себя всего-лишь
a) Вычитание 2х 32хбитных чисел (SEQ и ACK) (реально используется при приеме пакета 2 раза)
б) Увеличение 32хбитного числа на N (реально используется при приеме пакета 2 раза (один раз увеличить ожидаемый в следующий раз SEQ согласно принятому количеству данных, один раз увеличить наш SEQ согласно подтвержденному количеству данных; при передаче используется один раз - увеличить SEQ из области данных сокета на количество уже переданных байт).
3. Всякое обрамление типа таймеров, открытия/закрытия соединения на скорость самого соединения не влияют.
Все пункты не могут создать многократного проигрыша. Один/два процента просада производительности - вот максимум. Но это только в том случае, если уровень приложения, пользующийся UDP, сам реализует всяческие фичи типа опережающей передачи, банальная система "пакет-подтверждение" проигрывает в хлам вменяемой реализации TCP.
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин