TCP Handshake vs. UDP Datagram: A Letter and Postcard Analogy

By SB •  Updated: 09/11/24 •  6 min read

When comparing TCP and UDP and their approaches to data transmission, the analogy of sending a registered letter versus a postcard is a simple yet effective way to visualize their key differences.


TCP: The Registered Letter

TCP is like sending a registered letter that requires a return receipt—reliable but with more steps and extra confirmation. It ensures that your data reaches the right place and in the right order. Let’s break down its process:

1. Connection Establishment (The Three-Way Handshake)

Before any data is sent, TCP requires both the sender and the receiver to perform a three-way handshake to establish a reliable connection. It’s like arranging a formal agreement to make sure both sides are ready for communication. Here’s how it works:

  1. SYN (Synchronize): The sender starts by sending a SYN segment (like requesting to open a line of communication).
  2. SYN-ACK (Acknowledge): The receiver responds with a SYN-ACK, signaling it’s ready to receive data.
  3. ACK (Acknowledge): The sender confirms with an ACK that both parties are now ready, completing the handshake.

Analogy: This is like sending a letter and the recipient signing a form acknowledging they’re available to receive the contents. The three-way handshake ensures a secure and reliable connection, confirming that both parties are “on the same page” before starting the conversation.

2. Data Exchange

Once the connection is established, data is sent in segments. TCP guarantees that all data will arrive in the correct order and without errors. If any segments are missing or corrupted, TCP will retransmit them.

Analogy: It’s like knowing your registered letter will arrive at its destination, fully intact, and in the right order, no matter how many stops it takes along the way.

3. Connection Termination (Four-Way Handshake)

When the communication is finished, TCP gracefully closes the connection with a four-way handshake:

  1. The sender sends a FIN (finish) segment to indicate it’s done.
  2. The receiver acknowledges with an ACK.
  3. The receiver then sends its own FIN.
  4. The sender responds with a final ACK, completing the termination process.

This orderly shutdown ensures that both parties agree the conversation is over, preventing any data loss or confusion.

Analogy: This is like receiving a final confirmation that the communication has ended and that all pieces of mail have been successfully delivered and received.

Overhead:

TCP’s reliability comes at a cost—it has higher overhead due to the extra steps involved in establishing and maintaining a connection. It requires more resources and time to ensure everything is tracked and managed properly.

Analogy: Like the extra effort of packaging and tracking a registered letter, TCP’s connection-oriented protocol ensures the data gets delivered accurately, but it takes longer and uses more resources.


UDP: The Postcard

On the other hand, UDP is like sending a postcard—quick and easy, but with no guarantee of delivery or confirmation. Here’s how UDP works:

1. Connectionless Transmission

Unlike TCP, UDP is connectionless—there’s no formal handshake or connection setup before sending data. UDP sends data in the form of datagrams without checking if the receiver is ready. Once sent, it doesn’t wait for confirmation.

Analogy: This is like dropping a postcard into a mailbox. You send it without worrying if the recipient is there or if the postcard will arrive.

2. Data Transmission as Datagrams

Each piece of data is sent independently, as a datagram, and UDP does not guarantee that they arrive in order or even at all. There’s no mechanism for retransmitting lost data.

Analogy: Just like a postcard may get lost or arrive out of sequence, UDP datagrams can experience similar issues. But for applications where speed is more important than reliability, like video streaming, this risk is acceptable.

3. Unreliable Delivery

UDP does not provide delivery guarantees or error correction. If something goes wrong (e.g., a datagram is lost), it’s up to the application to detect and handle the issue.

Analogy: Just as you might not know whether your postcard arrived, UDP offers no built-in way to confirm delivery. It’s a “fire and forget” system.

Lower Overhead

Because UDP skips the extra steps of establishing a connection and ensuring delivery, it has lower overhead. This makes it much faster than TCP but at the cost of reliability.

Analogy: UDP is like sending a postcard—it’s simple, fast, and doesn’t require much effort, but you accept the risk that the postcard might not make it.


Analogy Summary: Comparing TCP and UDP

FeatureTCP (Registered Letter)UDP (Postcard)
ConnectionRequires a connection via the three-way handshakeNo connection required
ReliabilityGuarantees delivery and data orderNo guarantee of delivery or order
Error HandlingRetransmits lost or corrupted dataNo retransmission
OverheadHigh (due to connection management, reliability checks)Low (minimal header, no connection management)
SpeedSlower (due to connection setup and error checking)Faster (no connection setup, less error checking)
ApplicationsFile transfers, web browsing, emailVideo streaming, gaming, DNS, VoIP

The Three-Way Handshake: Key to TCP’s Reliability

The three-way handshake is crucial to TCP’s reliable data transmission process. It ensures that both the sender and receiver are synchronized and ready for communication. Here’s a more detailed look at how it works:

  1. SYN (Synchronize): The client sends a SYN packet to the server to start the connection.
  2. SYN-ACK (Synchronize-Acknowledge): The server responds with a SYN-ACK packet to acknowledge the client’s request and confirm its own readiness.
  3. ACK (Acknowledge): The client sends a final ACK packet, confirming the connection is established and data transfer can begin.

This handshake ensures that both parties agree on the connection parameters and that they are prepared to exchange data reliably.


Choosing Between TCP and UDP

Whether you need the reliability of TCP or the speed of UDP depends on your application. Here’s a quick guide:

In essence, the choice between TCP and UDP is like deciding whether to send a registered letter or a postcard—your decision depends on how much you value reliability versus speed.

SB

I've been practicing OSINT and utilizing Linux as my daily operating system for over twenty years. The tools are always changing and so I'm always learning, but helping you understand the value of protecting your own data remains at the forefront of everything I do.

Keep Reading