Balanceo L4 vs. L7 — ¿cuál es la diferencia real en lo que pueden ver y hacer?
Ambos responden 'qué backend atiende esto' — pero uno solo lee IP y puerto, y el otro lee toda la petición HTTP. Esa brecha cambia todo lo que pueden hacer.
APRENDE HACIENDOPon a prueba tu intuición3 pasos
Balanceo L4 vs. L7 — ¿cuál es la diferencia real en lo que pueden ver y hacer?
Usa los ejemplos y la explicación de la lección para comprobar tu idea.
Reflexión personal. No se envía a ningún servicio de IA.#Mismo objetivo, distinto punto de vista
Tanto un balanceador de Capa 4 como uno de Capa 7 responden la misma pregunta — "¿qué backend debe atender esta conexión?" — pero la responden desde puntos de vista completamente distintos en la pila de red, y esa diferencia de punto de vista es toda la pregunta de entrevista. L4 opera en la capa de transporte: ve direcciones IP, puertos TCP/UDP, y metadatos a nivel de paquete o de conexión. L7 opera en la capa de aplicación: termina la conexión, descifra TLS si lo hay, y de verdad interpreta el protocolo que corre encima — método HTTP, ruta, encabezados, cookies, incluso el cuerpo.
#Qué puede y qué no puede hacer un balanceador L4
Un balanceador L4 toma su decisión de enrutamiento usando solo lo que está en los encabezados IP y TCP/UDP: IP de origen y destino, puerto de origen y destino, y protocolo. No descifra TLS, no interpreta HTTP, y en general reenvía paquetes (o mantiene una tabla de conexiones ligera) sin llegar a entender nunca qué hay dentro. Eso lo hace extremadamente rápido y barato en términos de CPU — no hay parseo, no hay terminación de handshake TLS — por lo que el balanceo L4 es común en cargas de alto throughput y agnósticas al protocolo: servicios TCP crudos, pooling de conexiones de base de datos, o como capa externa delante de un balanceador L7.
Su limitación es exactamente su fortaleza: como no puede ver dentro del payload, no puede enrutar `/api/users` a un pool y `/static/` a otro, no puede inspeccionar una cookie para mantener a un usuario fijado a un servidor, no puede tomar una decisión según un encabezado de la petición, y no puede terminar TLS en tu nombre.
#Qué puede y qué no puede hacer un balanceador L7
Un balanceador L7 termina la conexión del cliente — incluido el handshake TLS — y lee la petición real de capa de aplicación antes de decidir hacia dónde va. Como entiende HTTP (o gRPC, o WebSockets), puede hacer enrutamiento por contenido (mandar `/api/` a la flota de API, `/images/` a un servicio de estáticos), inspeccionar y reescribir encabezados, implementar reintentos y circuit breaking por backend, hacer despliegues canary enrutando un porcentaje del tráfico según un encabezado, y terminar TLS una sola vez en el borde para que tus backends no tengan que gestionar certificados cada uno.
El costo es exactamente el que cabría esperar: terminar TLS y parsear HTTP es trabajo de CPU que L4 no hace, y abre una segunda conexión hacia el backend elegido (cliente-a-LB y LB-a-backend son dos conexiones TCP distintas), lo que añade algo de latencia y significa que el backend ve la IP del balanceador como origen, a menos que propagues la IP real del cliente vía un encabezado como `X-Forwarded-For`.
#Dónde aparece cada uno en la práctica
Los balanceadores L4 son la herramienta correcta cuando el protocolo ni siquiera es HTTP (tráfico TCP crudo de base de datos, protocolos binarios propios), cuando necesitas la latencia y el overhead de CPU más bajos posibles, o cuando la terminación de TLS debe ocurrir en el propio backend por razones de cumplimiento (TLS pass-through). Los balanceadores L7 son la herramienta correcta en cualquier lugar donde necesites lógica de enrutamiento que dependa del contenido de la petición — que es la mayoría del tráfico web y de API moderno, y prácticamente todo el ingreso de microservicios.
#Comparando qué puede ver y sobre qué puede actuar cada capa
| Capacidad | L4 (transporte) | L7 (aplicación) |
|---|---|---|
| Ve IP + puerto | Sí | Sí |
| Ve ruta / encabezados / cookies HTTP | No | Sí |
| Termina TLS | No (pass-through) | Sí |
| Enrutamiento por contenido | No | Sí |
| Reintentos / circuit breaking por backend | No | Sí |
| Latencia / overhead de CPU | Muy bajo | Mayor (TLS + parseo + salto extra) |
| Funciona con protocolos no-HTTP | Sí | Solo los protocolos que entiende |
🧠 Check your understanding
0/2 · 0/2 answered1. Un balanceador L4 está delante de una flota de backends HTTPS usando TLS pass-through. ¿Por qué no puede enrutar peticiones según la ruta de la URL?
2. ¿Cuál es la principal contrapartida de latencia/CPU al elegir un balanceador L7 en vez de uno L4?