Otimizar atrasos na rede
Resumo curto
Latência = soma de pequenos atrasos na cadeia. Melhoria de sistema: reduza o «salto» (Anycast/CDN), reduza o RPT (rotas/QoS), reduza o «parafuso» (DNS/TLS/TCP), mantenha as filas curtas (AQM/ECN), minimize os bytes (compressão/cachê) e mede p95/p99. Qualquer otimização sem medição é uma adivinhação.
Orçamento de laticínio: o que consiste em atraso
Simplifique a decomposição do TTFB (Time To First Byte):
TTFB ≈ t_DNS + t_connect + t_TLS + t_queue + t_routing + t_app + t_first_byte
Onde:
- t _ DNS - resolvendo o nome.
- t _ connect - Instalação do L4 (TCP/QUIC).
- t _ TLS - aperto de mão TLS.
- t _ queue/t _ roting - filas/transições (tampão, sobrecarga, NAT).
- t _ app - processamento de servidor até o primeiro byte.
O objetivo é definir o SLO em cada um dos eixos e verificar regularmente.
SLO/métricas (orientações)
DNS p95: local ≤ 20-30 ms, global ≤ 80-120 ms.
TCP connect p95: ≤ 80-120 ms regionalmente, ≤ 200-250 ms interregionalmente.
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 мс; perda ≤ 0. 1–0. 3%.
Alerts: p95/p99, aumento de 'SYN retries', queda de 'resumpção', 'ECN CE' ou 'packet loss'.
DNS: início rápido
Autoridades Anycast + recorsores próximos (DoH/DoT se necessário).
TTL curto (60-300 s) para nomes dinâmicos; negative-TTL sob controle.
Kesh DNS ao lado do aplicativo; «prefetch» gravações quentes.
Excluir transferências extras CNAME → CNAME → A/AAAA.
TLS/HTTP: menos apertos de mão, mais rápido
Ative o TLS 1. 3, OCSP stapling, cadeias de CA curtas.
Session resumption (tickets/IDs) и ALPN (`h2`, `h3`).
HTTP/2: multiplexação, menos conectórios → menos p95.
HTTP/3 (QUIC): 0-PTT (somente para Idumpetentes), a melhor resistência à perda/jitter.
Precinect/Prewarm (edge/cliente): abra ligações para domínios quentes com antecedência.
Transporte: TCP vs QUIC e pilha de núcleo
TCP
Atual Congestion Control: BBR v2 (ou CUBIC, se for conservador).
RACK/TLP para retransmissão rápida; Ativem o SAK.
ECN + AQM (CoDel/FQ_CoDel): reduz o bufê e o jitter.
TCP Fast Open - evitar para os pedidos de state-changing; Os benefícios são controversos.
QUIC (HTTP/3)
Menos «bloqueio de cabeça» do que TCP + TLS + HTTP/2.
Resistente à reorderação/perdas; atualize a implementação (por exemplo, Envoy/HAProxy com H3).
Acompanhe o UDP/443 e o MTU/fragmentação.
MTU/PMTUD e fragmentação
MTU único end-to-end; para os túneis (IPsec/WireGuard/VXLAN), leve em conta o overhead.
Incluir PMTUD e ICMP «Fragmentation needed».
Para QUIC, monitorizar max datagram e não cortar ICMP no perímetro.
Rotação e física do caminho
Anycast para API/edge-frentes públicas.
Geo/Latency routing (GSLB) + health-checks.
ECMP e BFD na fábrica (Leaf-Spine) para excluir trilhas ruins em <1 s.
Alinhar as abas/pires (IX) nas regiões de concentração de usuários.
Filas e QoS: mantenha os tampões curtos
Classes: real-time (RT/VoIP), interativo (API), bulk (bacapes/ETL).
LLQ/WRR, priorizar API/pagamentos sobre bulk.
ECN (CE) + AQM (CoDel/FQ_CoDel) nas filas de limite.
Cortar/transportar bacapes e grandes sinos de «minutos de pico».
NAT, proxy e middleboxes
Minimize a cascata NAT/filtros.
Stateful middlebox é crítico para a asimetria de caminhos: equilíbrio de 5-tuple, pin-ning stream.
Suporte keepalive e idle-timeuts razoáveis para conectórios de longa vida (gRPC/WebSocket).
Armazenamento de dados em dinheiro
CDN/origin-shield/tiered-cache - menos caminhadas no origin.
Assetas versionadas (imutable, 1 ano).
TTL + 'stale-while-revalidate' curto para meio-dinâmico.
Geo-place: Dados quentes mais próximos do usuário (read-replica/edge-KV) e gravação na «origem da verdade».
Otimização ao nível do aplicativo
Reduza o número de solicitações (o bundling/HTTP/2 push já está fora de moda - melhor que prefetch/precisnect).
Reduza o payload: compressão (Brotli), formatos de imagem Web, protocolos binários (gRPC).
Idempotação de pedidos → retais seguros e temporizações mais agressivas.
Async/streaming (SSE/gRPC streaming) para reduzir o TTFB.
Observabilidade: o que medir
Telemetria do cliente (RUM): DNS/connect/TLS/TTFB, Geo/ASN, dispositivo.
Rede: RPT, perdas, jitter, ECN CE/ECT (0/1), filas de interface, erros/congestionamento.
Транспорт: retransmits, out-of-order, cwnd/BBR state, handshake stats, resumption.
L7: p50/p95/p99, error rate, payload size, histogramas sobre rotas/RR.
Segmenta as métricas por região/ASN/operador de comunicações - é onde os pontos quentes se escondem.
Mini-playbooks
1) Auditoria rápida p95
1. Construa o orçamento de latência (DNS/TLS/connect/TTFB) a partir do RUM.
2. Compare com as métricas de rede (RPT/loss/ECN) por PoP/ASN.
3. Se 'connect' e 'TLS' dominarem → ative o preconnect/respumpition/HTTP/3.
4. Se 'TTFB' for alto → o dinheiro/edge/réplica e otimiza o aplicativo.
2) Aumento da perda/jitter
1. Verificar uplink/interfaces (drop/fila).
2. Incluir/forjar AQM (FQ_CoDel), reduzir a classe bulk.
3. Verificar o caminho BFF/ECMP, excluir a lente flapo.
4. Para os clientes - levantar retais temporariamente e reduzir o tempo entre eles.
3) Degradação regional
1. Mudar o GSLB para o PoP ao lado; withdraw Anycast/32 em degradado.
2. Reduzir TTL, ativar 'stale-while-revalidate'.
3. Enviar status para página status, iniciar RCA.
4) Migração para HTTP/3
1. Abrir UDP/443, incluir H3/ALPN 'h3'.
2. Fazer A/B: compare p95 TTFB e error rate.
3. Observar 'udp loss '/clientes ativos/oscilação cwnd.
Esparguetes de config
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 (rede Linux: ECN/SACK/RACK de núcleo - parâmetros de modelo)
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, conceito)
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
Processos e práticas operacionais
Capacity planning: reserva de banda larga ≥ 30% nos horários de pico.
Mudança-controle: alterações canárias nas rotas/RR/passarelas.
Teste PMTUD regular e controle ICMP.
Documentação de caminhos: onde NAT/proxy/AQM/QoS, que MTU, quem é o dono.
Acordo de temporizações entre o L7 e os retais da rede.
Especificidades para iGaming/Fintech
Horário de eventos (jogos/torneios): Aquecimento de CDN/PoP, precisnect para domínios críticos, aumento temporário da resposta-pool, rotas «cinzentas» para bots.
Passos de pagamento: classe QoS dedicada, Anycast-endpoint, cadeias TLS curtas e versões rígidas/cifra; os retraias são apenas idimpotentes.
Limitações regionais/PSP: geo-roting + listas brancas ASN/IP; pulas de egress fixo.
Redes móveis: preferência por ChaCha20-Poly1305 (com AES-NI fraco em clientes), compressão agressiva e HTTP/3.
Folha de cheque de implementação
- Orçamento de latência (DNS/TLS/connect/TTFB) e SLO para cada elo.
- Anycast/Geo-roting para API/edge públicas, PoP de reserva.
- TLS 1. 3, OCSP stapling, resumpition ≥ 70%, HTTP/2/3 incluído.
- BBR + FQ_CoDel, ECN, SACK; O PMTUD funciona, o ICMP não é bloqueado.
- MTU unificado por cadeia, contendo os túneis overhead.
- QoS: classes real-time/interativo/bulk, AQM nas interfaces sobrecarregadoras.
- CDN/Tiered-cache/Origin-shield; assetas versionadas e SWR.
- RUM + métricas de rede Geo/ASN; alertas em p95/p99/ECN/perda.
- Playbooks: degradação regional, aumento de perdas, transferência de tráfego.
Erros típicos
Bloquear ICMP/PMTUD → fragmentação/redesenho e p95 alto.
Tampões «gordos» sem AQM → tampão e jitter.
Longas cadeias CA e ausência de OCSP stapling → TLS caro.
Cascatas NAT e assimetria para filtros stateful → retrai/timeout.
«Vary »/não versião asset redundante → CDN hit-ratio baixo.
Não há segmentação QoS → API compete com bacapes no auge.
Resultado
Otimizar atrasos é uma combinação de engenharia de rede, transporte correto e economia de «parafusos» em DNS/TLS/dinheiro. Implemente Anycast/Geo-roting, TLS 1. 3 + respumpition, HTTP/3, BBR + FQ_CoDel/ECN, alinhar MTU, definir QoS e SLO, medir p95/p99 e automatizar playbooks. Assim, os usuários terão uma resposta rápida, mesmo nos minutos mais «ardentes», e a plataforma terá previsibilidade e resistência.