- Introduction
- Creating the Session
- Downloading the Data
- Persistent Connections and Pipelining
- Summary
Creating the Session
Hypertext Transport Protocol is the mechanism used by the vast majority of websites to transport documents, images, CSS stylesheets, scripts, and applets from the server to the visitor's browser. HTTP uses Transmission Control Protocol (TCP) to ensure reliable delivery of data in both directions, resulting in the first potential bottleneck: The browser has to create a TCP session before the first HTTP request can be sent. At the very minimum, three packets have to be exchanged between the client and the server before the first data packet can be sent (see Figure 1), resulting in a delay of at least the round-trip time (RTT) between the client and the server.
The RTT is influenced by three parameters:
- Physical line speeds on the whole path between the client and the server. Minimum line speed is the limiting factor. For example, a client on a dial-up connection will experience longer RTT than a next-door client on a DSL connection, because the packets take longer to be transmitted over the low-speed connection.
- Geographical distance. Due to the limited speed of light and electrical signals (and even slower propagation in fiber-optics or copper cables), long-distance packets take a significant amount of time to reach their destination.
- Overall network congestion. Highly congested networks can introduce additional delay due to packet queuing in intermediate nodes (routers).
The delay caused by the line speed is called serialization delay (because the individual bits of data have to be transmitted serially, one after the other). The delay caused by the limited speed of light is called the propagation delay. You can reduce the serialization delay by upgrading the Internet access lines, but you cannot reduce the propagation delay without physically moving the visitor or the web server. (That's one of the reasons that global corporations deploy geographically dispersed content-delivery networks.)
The RTT delay caused by geographical distance is amplified by the winding paths taken by international data circuits. For example, it takes light approximately 33 milliseconds to get from San Francisco to Rome, Italy (as the crow flies, it's almost exactly 10,000 kilometers, or approximately 6,200 miles between the two cities), but the usual round-trip time between Central European and U.S. west coast destinations is almost 200 milliseconds. A user sitting in Europe and accessing a website in San Francisco will thus experience a fifth of a second delay before the website will even start to load.
Takeaway point: Local non-broadband visitors experience slow response time due to the time it takes the data packets to traverse the low-speed dial-up connection (serialization delay); far-away visitors experience reduced performance due to propagation delay, which cannot be reduced at all.