Skip to main content

Protocolo TCP | Redes

  • Protocolo TCP | Redes

Artigo | Manter site abaixo de 14KB

Explicação

Resumo do artigo

  1. 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).
  2. 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).
  3. 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).
  4. 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 cwnd inicial.
  • À 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.


Referências

Gráfico