Ottimizzazione dei ritardi di rete
Breve riepilogo
Latenza = somma di piccoli ritardi nella catena. Si ottiene un miglioramento di sistema: riduce il «salto» (Anycast/CDN), riduce RTT (rotte/QoS), abbassa il «bullone» (DNS/TLS/TCP), mantiene le code corte (AQM/ECN), minimizza i byte (compressione/cache) e continua misurare p95/p99. Ogni ottimizzazione senza misurazioni è un'intuizione.
Budget di latitanza: da cosa consiste il ritardo
Semplificare la decomposizione di TTFB (Time To First Byte):
TTFB ≈ t_DNS + t_connect + t_TLS + t_queue + t_routing + t_app + t_first_byte
Dove:
- t _ DNS - Resola il nome.
- t _ connect - Imposta L4 (TCP/QUIC).
- t _ tLS - Stretta di mano TLS.
- t _ queue/t _ routing - code/transizioni (buffer, sovraccarichi, NAT).
- t _ app - elaborazione server fino al primo byte.
L'obiettivo è quello di impostare la SLO per ciascun prodotto e controllare regolarmente.
SLO/metriche (punti di riferimento)
DNS p95: locale 20-30 ms, globale 80-120 ms.
TCP connect p95: ≤ 80-120 ms regionali, ≤ 200-250 mc interregionali.
TLS handshake p95: ≤ 80–120 мс (с OCSP stapling, resumption).
TTFB p95 (statico): ≤ 120-150 mc regionale.
TTFB p95 (API): ≤ 200-300 mc.
Jitter p95 (UDP/RT): ≤ 15–30 мс; Perdita di ≤ 0. 1–0. 3%.
Alert: crescita p95/p99, picco «SYN retries», calo «respumption», «ECN CE» o «packet loss».
Avvio rapido DNS
Autorità Anycast + ricorsori ravvicinati (se necessario).
TTL breve (60-300 s) per i nomi dinamici negative-TTL sotto controllo.
Cache DNS accanto all'applicazione; 'prefetch'i record hot.
Escludi gli spostamenti extra CNAME da CNAME da A/AAAA.
TLS/HTTP: meno strette di mano, più veloce della sessione
Attivare TLS 1. 3, OCSP stapling, scorciatoie CA.
Session resumption (tickets/IDs) и ALPN (`h2`, `h3`).
HTTP/2: Multiplexing, meno connettori sotto p95.
HTTP/3 (QUIC): 0-RTT (solo idropotenti), migliore resistenza alla perdita/jitter.
Precisnect/Prewarm (edge/client) - Apri in anticipo le connessioni per i domini hot.
Trasporti: TCP vs QUIC e stack kernel
TCP
Moderno Convection Control: BBR v2 (o CUBIC, se conservativo).
RACK/TLP per retransmit rapido; Attivare SAK.
ECN + AQM (CoDel/FQ_CoDel) - Riduce buffer e jitter.
TCP Fast Open - Evitare per le richieste state-changing; I benefici sono controversi.
QUIC (HTTP/3)
Meno «blocco a testa» rispetto a TCP + TLS + HTTP/2.
Resistente al riordino/perdita; aggiornare l'implementazione (ad esempio Invoy/HAProxy con H3).
Controlla UDP/443 e MTU/frammentazione.
MTU/PMTUD e frammentazione
Un unico MTU end-to-end; Per i tunnel, prendete in considerazione l'overhead.
Abilita PMTUD e ICMP «Fragmentation needed».
Per QUIC, monitorare i dati max e non tagliare ICMP sul perimetro.
Instradamento e fisica del percorso
Anycast per API/fronti API/edge pubblici.
Geo/Latency routing (GSLB) + health-checks.
ECMP e BFD in fabbrica (Leaf-Spine) per escludere i sentieri cattivi in <1 s
Allineare api/piè (IX) nelle regioni di concentrazione degli utenti.
Code e QoS: tenete i buffer corti
Classi: real-time (RT/VoIP), API (API), bulk (bacap/ETL).
LLQ/WRR, priorità API/pagamenti su bulk.
ECN (CE) + AQM (CoDel/FQ_CoDel) sulle code limite.
Taglia/sposta i backap e i pick-up da «minuti di punta».
NAT, proxy e middleboxes
Ridurre al minimo la cascata NAT/Filtri.
Stateful middlebox è critico per l'asimmetria dei percorsi: bilanciamento di 5-tuple, pin-ning flussi.
Supporto keepalive e idle timeout intelligenti per connettori di lunga vita (gRPC/WebSocket).
Cache e posizionamento dei dati
CDN/origin-shield/tiered-cache - meno escursioni in origin.
Assetti versionati (immutabile, 1 anno).
TTL + «stale-while-revalidate» breve per mezzo altoparlante.
Geo-place: i dati hot sono più vicini all'utente (read-replica/edge-KV) e la registrazione è più vicina alla «fonte della verità».
Ottimizzazione a livello di applicazione
Riduci il numero di richieste (bundling/HTTP/2 push non è più di moda - meglio prefetch/precisnect).
Ridurre payload: compressione (Brotli), formati di immagine Web, protocolli binari (gRPC).
Idampotenza delle richieste: ritai sicuri e timeout più aggressivi.
Async/streaming (SSE/gRPC streaming) per ridurre il TTFB.
Osservabilità: cosa misurare
Telemetria client (RUM): DNS/connect/TLS/TTFB, Geo/ASN, dispositivo.
Rete: RTT, perdita, jitter, ECN CE/ECT (0/1), code di interfaccia, errori/sovraccarico.
Транспорт: retransmits, out-of-order, cwnd/BBR state, handshake stats, resumption.
L7: p50/p95/p99, error rate, payload size, istogrammi sulle rotte/ROR.
Segmentare le metriche per regione/ASN/operatore di comunicazione - è lì che si nascondono i punti caldi.
Mini playbook
1) Controllo rapido p95
1. Crea un budget di latenza (DNS/TLS/connect/TTFB) da RUM.
2. Mappare le metriche di rete (RTT/loss/ECN) al PoP/ASN.
3. Se connect e TLS dominano, attivare preconnect/respumption/HTTP/3.
4. Se TTFB è elevato, cache/edge/replica e ottimizzazione dell'applicazione.
2) Aumento delle perdite/jitter
1. Controlla uplink/interfacce (drop/code).
2. Abilita/piega AQM (FQ_CoDel), abbassa la classe bulk.
3. Controlla il percorso BFD/ECMP, elimina la linfa flapo.
4. Per i clienti, alzare temporaneamente i retrai e ridurre il tempo tra loro.
3) Degrado regionale
1. Sposta GSLB al PoP adiacente; withdraw Anycast/32 su degradato.
2. Riduce TTL, attiva'stale-while-revalidate '.
3. Invia lo stato alla pagina di stato e avvia RCA.
4) Migrazione su HTTP/3
1. Apri UDP/443, abilita H3/ALPN 'h3'.
2. A/B: confronta p95 TTFB e error rate.
3. Osservare «udp loss »/client/oscillazione cwnd attivi.
Scorciatoie 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 (rete Linux: ECN/SOCK/RACK del sottosistema kernel - parametri approssimativi)
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 (stile Cisco, concept)
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
Procedure operative e processi
Capacity planning: scorte di larghezza di banda pari al 30% durante l'orologio di punta.
Cambio-control - Variazioni canarie delle rotte/RR/gateway.
Test PMTUD regolare e controllo ICMP.
Documentazione dei percorsi: dove NAT/proxy/AQM/QoS, quali MTU, chi possiede.
L'accordo dei timeout tra L7 e i retrai di rete.
Specifico per iGaming/Fintech
Orari di eventi (partite/tornei): riscaldamento del CDN/PoP, precisnect ai domini critici, aumento temporaneo della respumption pool, itinerari «grigi» per i bot.
Passaggi di pagamento: classe QoS dedicata, endpoint Anycast, scorciatoie TLS e versioni/codici rigorosi I retrai sono solo idipotenti.
Vincoli regionali/PSP: geo-routing + elenchi ASN/IP bianchi; i pool di egress fissi.
Reti mobili: preferenza per la ChaCha20-Poly1305 (con AES-NI debole per i clienti), compressione aggressiva e HTTP/3.
Assegno foglio di implementazione
- Budget di latitanza (DNS/TLS/connect/TTFB) e SLO per ciascun anello.
- Anycast/Geo-routing per API/edge pubbliche, PoP di riserva.
- TLS 1. 3, OCSP stapling, respumption 70%, HTTP/2/3 incluso.
- BBR + FQ_CoDel, ECN, SACK; PMTUD funziona, ICMP non viene bloccato.
- Unico MTU per catena, conteggio dei tunnel overhead.
- QoS: classi real-time/interattive/bulk, AQM su interfacce sovraccariche.
- CDN/Tiered-cache/Origin-shield; assetti versionati e SWR.
- RUM + metriche di rete Geo/ASN; alert su p95/p99/ECN/perdita.
- Playbook: degrado della regione, aumento delle perdite, trasferimento del traffico.
Errori tipici
Blocca ICMP/PMTUD con frammentazione/ridisegno e p95.
Buffer spessi senza AQM, buffer e jitter.
Le catene CA lunghe e la mancanza di OCSP stapling sono costose TLS.
Cascate NAT e asimmetria per i filtri stateful retrai/timeout.
«Vary »/non versio assetto ridondante è un hit-ratio CDN basso.
Nessuna segmentazione dell'API che compete con i bacapi all'apice.
Totale
Ottimizzare i ritardi è una combinazione di ingegneria di rete, trasporto corretto e risparmio di bulloni su DNS/TLS/cache. Implementare Anycast/Geo-routing, TLS 1. 3 + respumption, HTTP/3, BBR + FQ_CoDel/ECN, concordare MTU, impostare QoS e SLO, misurare p95/p99 e automatizzare le playbook. In questo modo gli utenti riceveranno una risposta rapida anche nei minuti più «accesi» e la piattaforma sarà prevedibile e robusta.