Skip to main content

Command Palette

Search for a command to run...

TCP vs UDP: When to Use What, and How TCP Relates to HTTP

Published
•3 min read•View as Markdown
TCP vs UDP: When to Use What, and How TCP Relates to HTTP
B
I write funny shayaris and sad code.

What are TCP and UDP ?

  • The internet needs rules (protocols) to move data between two endpoints. At the transport layer, TCP and UDP are two core options: TCP emphasises reliability and order; UDP emphasises speed and low overhead.

Key differences between TCP and UDP

  • TCP (Transmission Control Protocol): connection-oriented (a handshake before sending data), guarantees in-order, reliable delivery with retransmissions and flow/congestion control. Analogy: a phone call or a courier that tracks each parcel and resends if lost.

  • UDP (User Datagram Protocol): connectionless (no handshake), does not guarantee delivery, ordering, or retransmission. It’s minimal overhead and low latency. Analogy: a loudspeaker announcement or a live broadcast—fast, but if you miss a word, it’s gone.

  • Overhead vs. latency: TCP’s reliability mechanisms add headers, state, and round-trips; UDP’s minimalism cuts latency and overhead.

When to use TCP?

  • When correctness and ordered delivery matter more than the absolute lowest latency.

  • Web traffic and APIs (HTTP/1.1, HTTP/2), file transfers (FTP/SFTP/rsync), version control (Git over SSH), email transfer and retrieval (SMTP/IMAP/POP3), database connections (most SQL/NoSQL client protocols), remote shells (SSH).

  • Good for transactional and stateful operations where missing or out-of-order data breaks the application.

When to use UDP?

  • When low latency is critical and the application can tolerate or handle loss, duplication, or reordering.

  • Real-time voice/video (VoIP, many RTP-based calls), interactive gaming state updates, live streaming protocols that favor timeliness over perfection, DNS queries (quick, small lookups), DHCP, some telemetry/beaconing.

  • Often paired with application-level handling: forward error correction, selective retransmission, jitter buffers, or simply tolerating small losses.

Common real-world examples of TCP vs UDP

  • TCP: HTTPS web browsing and APIs, file downloads (browsers, package managers), Git/SSH, SMTP/IMAP email, most database drivers, TLS handshakes (for TCP-based HTTPS).

  • UDP: VoIP calls, many online multiplayer game position updates, DNS lookups, DHCP address assignment, QUIC’s underlying transport (HTTP/3 runs over QUIC, which uses UDP but adds reliability at a higher layer).

What is HTTP and where it fits?

  • HTTP is an application-layer protocol for requesting and transferring resources (web pages, APIs, images, JSON). It defines methods (GET, POST, etc.), headers, status codes, and message formats.

  • HTTP is about how clients and servers structure and interpret messages—what you’re asking for and how the server responds.

Relationship between TCP and HTTP

  • Layering: Traditionally, HTTP runs on top of TCP. TCP provides a reliable, ordered byte stream; HTTP uses that stream to send requests and receive responses.

  • HTTP/1.1 and HTTP/2 both rely on TCP. HTTP/3 uses QUIC, which runs over UDP but implements its own reliability, ordering, congestion control, and security (TLS-equivalent) at the QUIC layer.

  • So HTTP depends on a transport; it doesn’t replace it.

Why HTTP does not replace TCP?

  • Different layers, different jobs: TCP handles transport-level reliability and ordering; HTTP handles application semantics (methods, headers, status codes, body format).

  • Saying “HTTP is the same as TCP” is incorrect: HTTP needs an underlying transport (TCP for HTTP/1.1 and HTTP/2; QUIC-over-UDP for HTTP/3). HTTP defines how to talk; TCP (or QUIC) defines how to carry that conversation over the network.

More from this blog

B

Bhupendra Web Dev Cohort 2026

24 posts

Hey !! I am a CS enthusiast currently on a Web Development journey through Hitesh Sir's Web Dev Cohort 2026. Let's see how this goes.