Fundamentals 11 min read

Understanding TCP Slow Start and the 14KB Rule for Web Performance

This article explains the TCP slow‑start algorithm, how its initial 10‑packet window translates to a practical 14 KB rule for web pages, and why keeping the first‑byte payload under this size dramatically reduces latency across various network conditions.

Python Programming Learning Circle
Python Programming Learning Circle
Python Programming Learning Circle
Understanding TCP Slow Start and the 14KB Rule for Web Performance

Although broadband and 4/5G are ubiquitous, slow website loading remains common; even text‑centric news sites can take 30 seconds to start reading because large assets inflate page size.

Web‑optimisation enthusiast Nathaniel recommends keeping a page under 14 KB, prioritising the first‑screen bytes to render useful content before the user abandons the page.

1 TCP 是什么

TCP (Transmission Control Protocol) reliably sends data over IP, forming the foundation for HTTP requests. Browsers request resources via HTTP, which is built on TCP, while IP routes packets without guaranteeing delivery.

Servers send packets and wait for acknowledgments (ACK); if ACKs are missing, packets are retransmitted.

2 什么是 TCP 慢启动

TCP slow start determines how many packets a server can send initially. Since the server doesn’t know the connection’s bandwidth, it starts with a small safe window (typically 10 packets) and doubles the window size after each successful ACK.

This process repeats until packet loss occurs, at which point the growth slows.

3 那么 14KB 这个数字是怎么来的

Most web servers start slow‑start with 10 packets. Each TCP packet can carry up to 1500 bytes; after subtracting a 40‑byte header, 1460 bytes remain for data. 10 × 1460 ≈ 14 KB, which becomes the practical “first‑byte” budget.

Keeping the critical part of a page within this 14 KB budget can save a round‑trip time (RTT) of about 600 ms, especially on high‑latency links such as satellite connections.

Example: a satellite link adds ~120 ms up‑ and down‑link, plus additional RTTs for ground stations and servers, totaling roughly 612 ms per extra round‑trip.

HTTPS adds two more RTTs, pushing latency to about 1.8 seconds for the first resource.

4 了解了 14KB 法则,接下来可以做些什么

Compress and trim page assets to stay under 14 KB (compressed), which may correspond to ~50 KB uncompressed. Remove auto‑play videos, pop‑ups, cookies, social widgets, tracking scripts, heavy JavaScript/CSS frameworks, and other unnecessary bloat.

If the page still exceeds 14 KB, prioritize delivering the most important CSS, JS, and introductory text within the first 14 KB.

Remember that HTTP headers and any above‑the‑fold images count toward the 14 KB limit.

关于这个法则的一些注意事项

Some servers increase the initial window to 30 packets.

TLS handshakes can allow larger initial windows.

Servers may cache the allowed packet count for subsequent connections.

Further reading explores why the 14 KB rule isn’t absolute.

Additional sections discuss the relevance of the rule for HTTP/2 and HTTP/3/QUIC, noting that both still rely on TCP‑style slow start and thus benefit from the same size considerations.

At the end of the article, a promotional QR code invites readers to claim free Python learning resources, which is unrelated to the technical content.

TCPweb performanceFundamentalsnetwork latencySlow Start14KB Rule
Python Programming Learning Circle
Written by

Python Programming Learning Circle

A global community of Chinese Python developers offering technical articles, columns, original video tutorials, and problem sets. Topics include web full‑stack development, web scraping, data analysis, natural language processing, image processing, machine learning, automated testing, DevOps automation, and big data.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.