Internet & Networking

TCP vs UDP

Also known as: TCP and UDP

TCP (Transmission Control Protocol) and UDP (User Datagram Protocol) are the two main transport protocols that carry data across the internet.

TCP sets up a connection, numbers every piece of data, and resends anything lost, so web pages and emails arrive complete and in order. UDP just sends packets without waiting for confirmation, which is faster and better for live video calls, online games, and streaming where a late packet is useless anyway. While they sound technical, the choice between them explains why calls glitch while downloads simply slow down.

TCP vs UDP, explained at three levels

At home

TCP is like sending a package with tracking and signature confirmation, so nothing gets lost. UDP is like shouting across a room: fast, but if someone misses a word, you don't repeat it.

At work

Applications pick TCP when accuracy matters, like file transfers, and UDP when speed matters more, like voice calls.

Real-world examples

At home

Carlos noticed that during a video call his friend's voice sometimes cut out for a split second, but a large file he was downloading at the same time finished perfectly.

At work

Nadia manages a call centre network in Moncton. Prioritizing UDP voice traffic on the office network reduced choppy calls during busy afternoons when staff uploaded large files.

How it compares

featureTCPUDP
Connection setupHandshake firstNone
Lost dataResentNot resent
OrderGuaranteedNot guaranteed
Typical usesWeb, email, file transfersVoice, video calls, gaming, DNS

TCP is reliable. UDP is fast.

For analysts

When users complain about call quality, I'd look at how the network treats UDP voice traffic. Prioritizing it is often more effective than adding bandwidth.

History & origin

Vint Cerf and Bob Kahn described the Transmission Control Program in 1974, which was later split into TCP and IP. David P. Reed designed UDP, published as RFC 768 in 1980, for applications that didn't need TCP's guarantees. TCP was published as RFC 793 in 1981, and the ARPANET switched to TCP/IP on January 1, 1983. Van Jacobson's congestion control algorithms, introduced after internet slowdowns in 1986, kept TCP from overwhelming networks. Later, Google's QUIC built reliability on top of UDP, becoming the basis of HTTP/3. In my view, the TCP and UDP split is one of the most elegant design decisions in computing, letting each application choose reliability or speed.