Protocolo TCP | Redes
- Protocolo TCP | Redes
Artigo | Manter site abaixo de 14KB
Explicação
Resumo do artigo
- O autor afirma que sites com até 14 kB (comprimidos) carregam muito mais rápido que sites de 15 kB — uma diferença de até 612 ms na velocidade de carregamento (endtimes.dev).
- Isso se explica pelo TCP Slow Start: ao iniciar uma conexão, o servidor envia cerca de 10 pacotes TCP antes de precisar aguardar confirmação (ACK) do cliente (endtimes.dev).
- Como cada pacote pode transportar até 1460 bytes (1500 bytes de MTU menos 40 bytes de cabeçalho), logo 10 × 1460 ≈ 14 600 bytes, ou cerca de 14 kB (endtimes.dev).
- Portanto, se o conteúdo crítico do site couber nesses 14 kB iniciais, evita-se uma ida e volta (round-trip), eliminando latência perceptível para usuários em conexões com alta latência (como satélite, 2G, etc.) (angusjf.com).
Ligação com o TCP Slow Start
O TCP Slow Start funciona assim:
- Começa com uma janela de congestionamento pequena, equivalente a 10 segmentos (pacotes) — a
cwndinicial. - À medida que o cliente confirma o recebimento (ACK), a janela dobra, permitindo enviar mais dados antes de esperar (endtimes.dev).
Quando o site — ou os recursos críticos necessários para o carregamento inicial — cabem nessa janela, o navegador pode começar a processar sem esperar por outra confirmação, acelerando significativamente a experiência do usuário.
Nuances e limitações no artigo
O artigo reconhece que há “caveats” (avisos) importantes:
- O valor de 10 pacotes pode variar: alguns servidores usam 30 pacotes como janela inicial; servidores modernos e CDNs podem adaptar isso exponencialmente (tylercipriani.com).
- Handshakes de TLS/HTTPS, HTTP/2 e até HTTP/3/QUIC consomem pacotes e podem expandir a janela antes mesmo de enviar o HTML (endtimes.dev).
- A compressão é considerada no valor de 14 kB — o HTML pode ser maior descomprimido (até ~50 kB) (endtimes.dev).
Um estudo citado complementa isso com uma análise realista, usando o Amazon como exemplo, mostrando que, na prática, a janela inicial é muito expandida por ACKs contínuos, TLS, HTTP/2 frames, etc., e que o site pode enviar muito mais dados do que simplesmente os primeiros 14 kB (tunetheweb.com).
Conclusão e integração com TCP Slow Start
- Por que tentar ficar abaixo de 14 kB faz sentido: com um conteúdo inicial leve, é possível evitar uma ida e volta inteira na rede, especialmente em conexões lentas, agilizando o carregamento para o usuário.
- Como o TCP Slow Start entra nisso: ele limita inicialmente o envio a cerca de 10 pacotes (~14 kB). Se seus recursos essenciais cabem aí, já garantem renderização rápida sem esperar mais confirmações.
- Por que esse valor é apenas uma "regra de bolso": na prática, muitos elementos como TLS, HTTP/2, ACKs intermediários e compressão alteram os limites. Ainda assim, o princípio — enviar primeiro o essencial e manter leve — continua valioso.
Quer um resumo prático?
Objetivo: otimize o conteúdo crítico para caber nos primeiros 14 kB comprimidos (incluindo cabeçalhos HTTP), priorizando o que o usuário vê primeiro (CSS crítico, texto inicial, etc.).
Por quê: o TCP Slow Start permite esse envio inicial sem espera extra; se você o ultrapassar, adiantará uma rodada de ida e volta com potencial impacto perceptível — especialmente em redes lentas.