← Docs
Networking updated July 3, 2026

TCP vs UDP: why game traffic is UDP and downloads are TCP

Understand the differences between TCP and UDP, and why they are used for different types of network traffic.


TCP vs UDP: Why Game Traffic is UDP and Downloads are TCP

When data needs to be transmitted across a network, two common protocols are TCP (Transmission Control Protocol) and UDP (User Datagram Protocol). Both serve the same basic purpose—transferring data between programs—but they do so with different philosophies. This document explains why game traffic typically uses UDP while downloads use TCP.

What is TCP?

TCP is often described as "the certified mail" because it ensures that every piece of data arrives in the correct order and without errors. Here’s a breakdown:

  • Connection Establishment: Before any data can be sent, a connection must be established using a three-way handshake (SYN, SYN-ACK, ACK).
  • Reliability: Every byte is numbered, and receipt is acknowledged. If a packet is lost, it will be resent.
  • Ordering: The order of the packets is guaranteed.
  • Congestion Control: Both sides can slow down when the network gets congested to prevent further loss.

However, these features come at a cost: increased latency due to the need for acknowledgments and retransmissions. This can lead to head-of-line blocking, where a single lost packet stalls all subsequent packets until it is resent.

What is UDP?

UDP is often referred to as "the postcard" because it provides minimal guarantees about data delivery. Here’s how it works:

  • No Connection: There is no need for a connection to be established before sending data.
  • No Receipts or Retries: Packets are sent and hope they arrive; if they don’t, there is no retry mechanism.
  • No Ordering: Packets can arrive out of order.
  • Speed: Because there are no delays waiting for acknowledgments, UDP is faster.

However, this speed comes with the risk that packets might be lost or arrive out of order. This is acceptable in scenarios where late data is worse than missing it entirely.

Why Game Traffic Uses UDP

Games often prioritize low latency over reliability because:

  • Fast Updates: In real-time games like shooters and action games, updates to player positions must be sent as quickly as possible.
  • Redundancy: Even if a packet arrives late or out of order, the next update will likely overwrite it.

For example:

  • Game State Updates: A state update from 200ms ago is useless; the next update will supersede it anyway.
  • Voice and Video Calls: Hiccups are better than freezes. A slight delay in audio or video is preferable to a complete stall.
  • Live Streams: Small packets of data can be re-requested if lost, so missing one isn’t catastrophic.

Why Downloads Use TCP

Downloads require reliable delivery because:

  • Correctness Over Twitch: Data must arrive intact and in the correct order. Losing even a small piece could corrupt the entire download.
  • File Integrity: Incomplete or corrupted files are useless, making retransmissions necessary for reliability.

For example:

  • Web Pages and Email: Every byte of data is crucial; missing or out-of-order packets can break functionality.
  • SSH and File Transfers: Security and correctness are paramount. Retransmission ensures that all data arrives as intended.

Modern Twist: QUIC / HTTP/3

The modern approach to balancing reliability with speed is QUIC (Quick UDP Internet Connections), which combines the best of both worlds:

  • TCP-like Reliability: Ensures reliable delivery while maintaining low latency.
  • Built-in TLS: Provides encryption and security directly within the protocol.

Many web services are already moving towards QUIC, reducing the need for traditional TCP. This hybrid approach offers the speed benefits of UDP with the reliability guarantees of TCP.

Firewall Note

UDP does not maintain connection state, so firewalls track it by timeouts. This makes port forwarding and NAT rules more complex compared to TCP, where connections can be tracked more easily.

A quick side-by-side:

TCP UDP
Setup Handshake first None — just send
Delivery Guaranteed, in order Best effort
Lost packet Resent (everything behind it waits) Gone (the next one supersedes it)
Overhead Higher Minimal
Typical uses Web, downloads, email, SSH Games, voice and video calls, DNS, live streams
sequenceDiagram
  participant C as Client
  participant S as Server
  C->>S: SYN
  S->>C: SYN-ACK
  C->>S: ACK
  Note over C,S: Connection established (TCP)
Was this useful?

This doc is maintained by the humans who run BreadLab. Spotted an error? Tell us — we fix docs, not just typos.