Generally, if you need UDP, you sooner or later want TCP-without-the-“always-on”-in-order-delivery, at which point you write that on UDP (or use a library, if you’re smart), and suddenly you have no need for TCP at all.
[/quote]
I would disagree on two grounds:
(1) If you are going to connect over analog lines, thanks to PPP TCP compresses across the critical last mile much tiger. (2 bytes per packet TCP overhead as opposed to 30 per UDP packet.)
(2) The entire infrastructure of the net “undersatnds” TCP on the system level. You really can’t accomplish the same exact thing as efficiently in user space.
With a hybrid UDP/TCP you often get problems with synching between the two layers, get the performance of the worst performing, and voila you have a completely useless setup. If you are absolutely sure there is no interrelationship between the layers (e.g. one
is an out of game chat channel) then you are fine.