On Tuesday, 21 July 2020 at 13:05:21 UTC, wjoe wrote:
On Sunday, 19 July 2020 at 09:48:24 UTC, notna wrote:
Someone once wrote about a UDP library, which was used to sync
data to somewhere in APAC (Hongkong?) and by doing so the data
transfer was magnitudes faster then before (over TCP)...
In the best case scenario, and orders of magnitude more
unreliable otherwise.
Choosing UDP over TCP because speed is like choosing a hammer
over a screwdriver to drive in a screw because it works and is
faster. But it's still the wrong tool for the job.
UDP is a protocol for broadcasting messages which means it's
connection less, unreliable (as in no guarantees for delivery
of datagrams or that they'll be delivered only once, order i.e.
datagrams sent in order A B C D can be delivered like e.g B C A
D), and data integrity.
It's insecure (as in everyone who listens can receive it).
Once you need any of these features/guarantees you'll lose
performance just as you would by using TCP, plus you pay the
cost for re-inventing the wheel, bugs, testing, maintenance,
support and all.
UDP is the protocol of choice when you want to broadcast, the
data you send isn't important or the TCP overhead is bigger
than the transmitted message. Like broadcasting radio/podcasts,
weather updates for your status bar or some such or DNS queries.
If you need reliable transmission you need to use a reliable
protocol.
well, I guess all your remarks are true... and irrelevant at the
same time.
please go back and read his first post.... starts with "I have a
project where I need to take and send UDP packets over the
Internet"...