w防止网络过载和拥塞
HTTP The Definitive Guide
The performance of TCP data transfer also depends on the age of the TCP connection. TCP
connections "tune" themselves over time, initially limiting the maximum speed of the connection and
increasing the speed over time as data is transmitted successfully. This tuning is called TCP slow start,
and it is used to prevent sudden overloading and congestion of the Internet.
TCP slow start throttles the number of packets a TCP endpoint can have in flight at any one time. Put
simply, each time a packet is received successfully, the sender gets permission to send two more
packets. If an HTTP transaction has a large amount of data to send, it cannot send all the packets at
once. It must send one packet and wait for an acknowledgment; then it can send two packets, each of
which must be acknowledged, which allows four packets, etc. This is called "opening the congestion
window."
Because of this congestion-control feature, new connections are slower than "tuned" connections that
already have exchanged a modest amount of data. Because tuned connections are faster, HTTP
includes facilities that let you reuse existing connections. We'll talk about these HTTP "persistent
connections" later in this chapter.