Optimización de los retrasos de la red
Resumen breve
Latencia = suma de pequeños retrasos en la cadena. La mejora se logra sistémicamente: reducir los «saltos» (Anycast/CDN), reducir el RTT (rutas/QoS), bajar el «perno» (DNS/TLS/TCP), mantener las colas cortas (AQM/ECN)), minimice los bytes (compresión/caché) y mida constantemente p95/p99. Cualquier optimización sin medición es adivinación.
Presupuesto de latencia: en qué consiste el retraso
Facilitemos la descomposición de TTFB (Time To First Byte):
TTFB ≈ t_DNS + t_connect + t_TLS + t_queue + t_routing + t_app + t_first_byte
Dónde:
- t_DNS - resolve del nombre.
- t_connect - Establecimiento de L4 (TCP/QUIC).
- t_TLS - apretón de manos TLS.
- t_queue/t_routing - colas/transiciones (amortiguación, sobrecarga, NAT).
- t_app - Procesamiento del servidor hasta el primer byte.
El objetivo es establecer un SLO para cada término y realizar una comprobación regular.
SLO/métricas (puntos de referencia)
DNS p95: localmente ≤ 20-30 ms, globalmente ≤ 80-120 ms.
TCP connect p95: ≤ 80-120 ms regionalmente, ≤ 200-250 ms interregional.
TLS handshake p95: ≤ 80–120 мс (с OCSP stapling, resumption).
TTFB p95 (estático): ≤ 120-150 ms regionalmente.
TTFB p95 (API): ≤ 200-300 ms.
Jitter p95 (UDP/RT): ≤ 15–30 мс; ≤ 0 pérdidas. 1–0. 3%.
Alertas: subida de p95/p99, ráfaga de 'retiros SYN', caída de 'resumption', subida de 'ECN CE' o 'packet loss'.
DNS: inicio rápido
Autoridad Anycast + recursos cercanos (DoH/DoT si es necesario).
TTL corto (60-300 s) para nombres dinámicos; negative-TTL bajo control.
Caché DNS junto a la aplicación; 'prefetch' de las entradas en caliente.
Excluir los movimientos superfluos de CNAME → CNAME → A/AAAA.
TLS/HTTP: menos apretones de manos, sesión más rápida
Active TLS 1. 3, OCSP stapling, cadenas cortas CA.
Session resumption (tickets/IDs) и ALPN (`h2`, `h3`).
HTTP/2: multiplexación, menos connects → por debajo de p95.
HTTP/3 (QUIC): 0-RTT (sólo para idempotentes), mejor resistencia a la pérdida/jitter.
Preconnect/Prewarm (edge/cliente): abra las conexiones con anticipación para dominios «calientes».
Transporte: TCP vs QUIC y pila de núcleo
TCP
Modern Congestion Control: BBR v2 (o CUBIC si es conservador).
RACK/TLP para una retransmisión rápida; encienda SACK.
ECN + AQM (CoDel/FQ_CoDel): reduce el búfer y el jitter.
TCP Fast Open: evite las solicitudes de cambio de estado; el beneficio es controvertido.
QUIC (HTTP/3)
Menos «bloqueo principal» en comparación con TCP + TLS + HTTP/2.
Resistente a la reordenación/pérdidas; actualice la implementación (por ejemplo, Envoy/HAProxy con H3).
Siga el UDP/443 y MTU/fragmentación.
MTU/PMTUD y fragmentación
Una sola MTU end-to-end; para túneles (IPsec/WireGuard/VXLAN), tenga en cuenta el sobreesfuerzo.
Habilitar PMTUD e ICMP «Fragmentation needed».
Para QUIC, monitoree el máximo de datos y no corte el ICMP en el perímetro.
Enrutamiento y física de rutas
Anycast para los frentes IP/edge públicos.
Geo/Latency routing (GSLB) + health-checks.
ECMP y BFD en la fábrica (Leaf-Spine) para descartar los malos senderos detrás de <1 p.
Alinear Aplinks/Pirs (IX) en regiones de concentración de usuarios.
Colas y QoS: mantenga los búferes cortos
Clases: real-time (RT/VoIP), interactivo (API), bulk (backups/ETL).
LLQ/WRR, priorización de API/pagos sobre bulk.
ECN (marcado CE) + AQM (CoDel/FQ_CoDel) en colas de límite.
Cortar/llevar los backups y los azules grandes de los «minutos pico».
NAT, proxy y middleboxes
Minimice la cascada NAT/filtros.
Stateful middlebox es crítico con la asimetría de las rutas: balance de 5-tuple, hilos pin-ning.
Soporte keepalive y idle-timeout razonables para conexiones de larga vida (gRPC/WebSocket).
Caché y colocación de datos
CDN/origin-shield/tiered-cache - menos caminatas en origin.
Assets versionados (immutable, 1 año).
Corto TTL + 'stale-while-revalidate' para semi-altavoz.
Geo-placement: los datos calientes están más cerca del usuario (read-replica/edge-KV), y el registro está en la «fuente de la verdad».
Optimización a nivel de aplicación
Reduzca el número de solicitudes (bundling/HTTP/2 push ya no está de moda - mejor prefetch/preconnect).
Reducir payload: compresión (Brotli), formatos de imagen web, protocolos binarios (gRPC).
La idempotencia de las solicitudes → retraídas seguras y los timeouts más agresivos.
Async/streaming (SSE/gRPC streaming) para reducir el TTFB.
Observabilidad: qué medir
Telemetría de cliente (RUM): DNS/connect/TLS/TTFB, Geo/ASN, dispositivo.
Red: RTT, pérdidas, jitter, ECN CE/ECT (0/1), colas de interfaces, errores/desbordamientos.
Транспорт: retransmits, out-of-order, cwnd/BBR state, handshake stats, resumption.
L7: p50/p95/p99, error rate, payload size, histogramas en rutas/RoR.
Segmenta las métricas por región/ASN/operador de telecomunicaciones - ahí es donde se esconden los «puntos calientes».
Minibuses
1) Auditoría rápida p95
1. Construya un presupuesto de latencia (DNS/TLS/connect/TTFB) a partir del RUM.
2. Asigne métricas de red (RTT/loss/ECN) a PoP/ASN.
3. Si 'connect' y 'TLS' dominan → habilite el preconnect/resumption/HTTP/3.
4. Si 'TTFB' es alto → caché/edge/réplica y optimización de la aplicación.
2) Aumento de pérdida/jitter
1. Comprobar uplink/interfaces (drops/colas).
2. Activar/enrollar AQM (FQ_CoDel), reducir la clase bulk.
3. Compruebe la ruta BFD/ECMP, elimine la línea de flash.
4. Para los clientes, elevar temporalmente los retiros y reducir el tiempo entre ellos.
3) Degradación regional
1. Cambiar GSLB a PoP adyacente; withdraw Anycast/32 en degradado.
2. Reducir TTL, activar 'stale-while-revalidate'.
3. Enviar estado a la página de estado, ejecutar RCA.
4) Migración a HTTP/3
1. Abrir UDP/443, habilitar H3/ALPN 'h3'.
2. Realizar A/B: comparar p95 TTFB y error rate.
3. Observar 'udp loss'/clientes activos/oscilaciones cwnd.
Opciones de configuración
Nginx (HTTP/2, OCSP, TLS 1. 3, Brotli)
nginx server {
listen 443 ssl http2 reuseport;
ssl_protocols TLSv1. 2 TLSv1. 3;
ssl_stapling on; ssl_stapling_verify on;
add_header Strict-Transport-Security "max-age=31536000" always;
Compression brotli on; brotli_comp_level 5; gzip on;
Cache static location/static/{
add_header Cache-Control "public, max-age=31536000, immutable" always;
try_files $uri =404;
}
Proxy to API location/api/{
proxy_set_header Connection "";
proxy_http_version 1. 1;
proxy_read_timeout 5s;
proxy_connect_timeout 1s;
proxy_pass https://backend;
}
}
sysctl (Red Linux: subsistema de núcleo ECN/SACK/RACK - parámetros aproximados)
bash
SACK/RACK/TLP are typically included in modern cores; specify sysctl -w net for your distribution. ipv4. tcp_sack=1 sysctl -w net. ipv4. tcp_ecn=1 sysctl -w net. ipv4. tcp_fastopen=0 # carefully with TFO sysctl -w net. core. default_qdisc=fq_codel sysctl -w net. ipv4. tcp_congestion_control=bbr
QoS (estilo Cisco, concepto)
class-map match-any REALTIME match dscp ef class-map match-any INTERACTIVE match dscp af31 af21 class-map match-any BULK match dscp cs1 policy-map WAN-QOS class REALTIME priority percent 10 class INTERACTIVE bandwidth percent 50 class BULK bandwidth percent 20 random-detect ecn
Procesos y prácticas operacionales
Planificación de capacidad: el stock de ancho de banda ≥ 30% en horas pico.
Change-control: cambios canarios de rutas/RoR/gateways.
Prueba PMTUD regular y control ICMP.
Documentación de paths: donde NAT/proxy/AQM/QoS, qué MTU, quién es el propietario.
Acuerdo de Taimout entre L7 y Retraídas en Red.
Características específicas para iGaming/Fintech
Tiempo de eventos (partidos/torneos): calentamiento de CDN/PoP, preconnect a dominios críticos, aumento temporal del grupo de respuesta, rutas «grises» para bots.
Pasos de pago: QoS-class dedicado, Anycast-endpoints, cadenas TLS cortas y versiones/cifrados estrictos; retraídas sólo idempotentes.
Restricciones regionales/PSP: geo-routing + listas blancas ASN/IP; grupos de egresos fijos.
Redes móviles: preferencia por el ChaCha20-Poly1305 (con AES-NI débil en los clientes), compresión agresiva y HTTP/3.
Lista de comprobación de implementación
- Presupuesto de latencia (DNS/TLS/connect/TTFB) y SLO para cada eslabón.
- Anycast/Geo-routing para API/edge públicas, PoP de respaldo.
- TLS 1. 3, OCSP stapling, resumen ≥ 70%, HTTP/2/3 incluido.
- BBR + FQ_CoDel, ECN, SACK; PMTUD funciona, ICMP no está bloqueado.
- Una sola MTU en cadena, la contabilidad de los túneles sobreexplotados.
- QoS: clases real-time/interactive/bulk, AQM en interfaces de sobrecarga.
- CDN/Tiered-cache/Origin-shield; assets versionados y SWR.
- RUM + métricas de red por Geo/ASN; alertas en p95/p99/ECN/pérdidas.
- Playbucks: degradación de la región, aumento de las pérdidas, transferencia de tráfico.
Errores típicos
Bloqueo de ICMP/PMTUD → fragmentación/reposicionamiento y p95 alto.
Búferes «gruesos» sin AQM → búfer y jitter.
Las largas cadenas de CA y la falta de stapling OCSP → costosa TLS.
Cascadas NAT y asimetría para filtros stateful → retrai/timeouts.
Exceso de 'Vary '/incorrecto assets → bajo hit-ratio CDN.
No hay segmentación de QoS → la API compite con los backups en el pico.
Resultado
La optimización de latencia es una combinación de ingeniería de red, transporte adecuado y ahorro de «pernos» en DNS/TLS/caché. Implemente Anycast/Geo-routing, TLS 1. 3 + respuesta, HTTP/3, BBR + FQ_CoDel/ECN, acordar MTU, establecer QoS y SLO, medir p95/p99 y automatizar los playbooks. Luego, los usuarios recibirán una respuesta rápida incluso en los minutos más «ardientes», y la plataforma tendrá una previsibilidad y un margen de seguridad.