Introduction
Load balancers distribute incoming traffic across multiple backend servers so that no single server becomes overloaded. The load balancer must decide where each request or connection should go.
That decision depends on what information the load balancer understands. If it uses transport-layer details such as IP addresses and ports, it is called a Layer 4 Load Balancer. If it uses application-layer details such as HTTP paths, headers, cookies, and hostnames, it is called a Layer 7 Load Balancer.
What Is a Layer 4 Load Balancer?
A Layer 4 Load Balancer works at the Transport Layer. It usually routes traffic based on TCP, UDP, IP address, port number, and connection-level information.
It does not inspect the application request deeply. For example, it does not understand whether the request is for /users, /orders, or /payments. It mainly sees network and transport-level information.
A simple L4 flow looks like this: Client => L4 Load Balancer => Backend Server
Layer 4 load balancers are commonly used when speed and protocol-level forwarding are more important than application-aware routing.
What L4 Load Balancers Can Use
Layer 4 load balancers can make routing decisions using:
Source IP address: Identifies where the client connection is coming from.
Destination IP address: Identifies the address being reached.
TCP port: Helps route TCP-based services such as HTTP, HTTPS, databases, or custom protocols.
UDP port: Helps route UDP-based services such as DNS or real-time traffic.
Connection data: Helps manage active transport-layer connections.
Because L4 load balancers inspect less information, they usually have lower overhead and can be very fast.
Layer 4 Load Balancer
What Is a Layer 7 Load Balancer?
A Layer 7 Load Balancer works at the Application Layer. It understands application-level protocols, especially HTTP and HTTPS.
Instead of only looking at IP addresses and ports, it can inspect details inside the request. This makes it much more flexible for modern web applications and microservices.
For example:
/users => User Service
/orders => Order Service
/payments => Payment Service
This type of routing is called application-aware routing because the load balancer understands the meaning of the request at the application level.
What L7 Load Balancers Can Use
Layer 7 load balancers can make routing decisions using:
Hostname: Routes traffic based on domains such as
api.example.comoradmin.example.com.URL path: Sends
/users,/orders, and/paymentsto different services.HTTP headers: Uses request metadata for routing or policy decisions.
Cookies: Helps with session-aware routing or user-specific behavior.
HTTP method: Can distinguish between
GET,POST,PUT, and other methods.Query parameters: Can route or filter traffic based on request parameters.
Because L7 load balancers inspect more information, they provide smarter routing but introduce more processing overhead than L4 load balancers.
Layer 7 Load Balancer
Layer 4 vs Layer 7 Load Balancers
Aspect | Layer 4 Load Balancer | Layer 7 Load Balancer |
|---|---|---|
OSI layer | Transport Layer | Application Layer |
Main data used | IP addresses, TCP/UDP ports, connection data | URL paths, headers, cookies, hostnames, methods |
Protocol awareness | Works with TCP and UDP traffic | Commonly used for HTTP and HTTPS traffic |
Routing intelligence | Basic connection-level routing | Smart application-aware routing |
Speed | Generally faster | Generally slower due to deeper inspection |
Overhead | Lower | Higher |
Best suited for | Fast TCP/UDP forwarding, generic services, lower overhead | Web apps, APIs, microservices, path-based routing |
Summary
Layer 4 and Layer 7 load balancers both distribute traffic across backend servers, but they make decisions using different information.
Layer 4 load balancers use transport-layer data such as IP addresses, TCP ports, UDP ports, and connection information. They are fast and lightweight. Layer 7 load balancers use application-layer data such as URL paths, hostnames, headers, cookies, methods, and query parameters. They provide smarter routing but require more processing, especially when TLS termination is needed for HTTPS traffic.
Be the first to add a comment.