A Beginner's Guide to Networking Protocols: TCP, UDP, HTTP, and HTTP/3
Tags: http, tcp, udp, networking
Published: 2024-06-05 23:57:46

Networking can feel like a maze of jargon and acronyms, but understanding the basics is essential for anyone new to programming and IT. Two fundamental protocols you'll encounter are [TCP and UDP](https://medium.com/@abhirup.acharya009/understanding-tcp-and-udp-building-blocks-of-connectivity-ec96e208b852), and it's important to know how HTTP uses them. Let's break down these protocols in a simple and easy-to-understand way.

###TCP: The Reliable, Connection-Oriented Protocol

TCP stands for **Transmission Control Protocol.** Think of it as the reliable delivery service of the internet. When you send data using TCP, you’re ensuring it arrives intact and in order. Here’s why TCP is so dependable:

1. **Connection-Oriented**: TCP establishes a connection between the sender and receiver before data transmission begins. Imagine calling someone before having a conversation.

2. **Reliable Delivery**: TCP ensures all packets of data reach their destination. If some packets go astray, TCP retransmits them.

3. **Orderly Data Transfer**: TCP guarantees that packets arrive in the order they were sent. It’s like receiving the pages of a book in the correct sequence.

### How Does TCP Work?

When you send a message using TCP, it goes through a series of steps known as the **TCP handshake**:


![The networking handshake https://i.gifer.com/ZSj6.gif](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f6eybm84wgsxuqi73k63.gif)
1. **SYN**: The sender sends a synchronization packet to the receiver.
   
2. **SYN-ACK**: The receiver acknowledges this by sending back a synchronization acknowledgment packet.
   
3. **ACK**: The sender responds with an acknowledgment packet, establishing a connection.

This three-step handshake sets up a reliable channel for data transfer. TCP is like having a polite and precise conversation, ensuring everyone is on the same page before diving into the details.

### UDP: The Unreliable, Connectionless Protocol

UDP, or **User Datagram Protocol,** is the "fast and loose" counterpart to TCP. It's used when speed is more critical than reliability. Here’s what makes UDP different:

1. **Connectionless**: UDP sends data without establishing a connection first. It’s like sending a letter without expecting a reply.
   
2. **Unreliable Delivery**: There’s no guarantee that the data packets will arrive at their destination or in the correct order. It’s a bit like sending postcards into the wind.

3. **Faster Transmission**: Because it skips the connection and error-checking steps, UDP can transmit data faster than TCP.

#### How Does UDP Work?

With UDP, data packets (called datagrams) are sent out into the network with minimal overhead. This makes it ideal for applications where speed is crucial, and some data loss is acceptable. For example:

- **Streaming Media**: If a few video frames are dropped, it’s usually not noticeable.
- **Online Gaming**: Faster data transmission is often more important than perfect delivery.

### How Does HTTP Use TCP?

1. **Establishing a Connection**: When you type a URL into your browser, it initiates a TCP connection to the server where the website is hosted.

2. **Request and Response**: Your browser sends an HTTP request (like asking for a web page), and the server responds with the requested data using TCP. This ensures that the data (text, images, videos) arrives reliably and in the correct order.

3. **Closing the Connection**: Once the data transfer is complete, the TCP connection is closed.

Using TCP for HTTP ensures that the web pages you request are delivered accurately and completely, making your browsing experience smooth and reliable.

###How Does HTTP Use UDP in HTTP/3?

[HTTP/3](https://www.cloudflare.com/learning/performance/what-is-http3/) is the latest version of the HTTP protocol, using QUIC (Quick UDP Internet Connections), which is built on top of UDP. This improves performance and speed, especially in our modern age where users frequently switch between networks on their smartphones.

Here's how it works:

1. **Faster Connection Establishment:** QUIC, and by extension HTTP/3, reduces the time needed to establish a connection compared to TCP. This makes web pages load faster.

2. **Reliability and Order:** Despite being built on UDP, QUIC incorporates mechanisms for ensuring data reliability and ordered delivery, similar to TCP but with lower latency.

3. **Improved Performance:** HTTP/3 can handle packet loss more efficiently and maintain better performance on unstable networks.
By leveraging UDP through QUIC, HTTP/3 aims to enhance the speed and efficiency of web communication without sacrificing reliability.

### Wrapping Up

Understanding TCP and UDP, and how HTTP and HTTP/3 use these protocols, is a crucial step in grasping the fundamentals of networking. Remember:

- **TCP** ensure data arrives intact and in order.
- **UDP**  prioritizes speed over reliability.
- **HTTP** leverages TCP to ensure web pages are delivered reliably.
- **HTTP/3** leverages QUIC to ensure fast connection and reliability.

As you learn more about networking and programming, these ideas will help you understand more advanced topics.