Most site owners want their sites to rank amongst the best in terms of server responsiveness. Many techniques are available for speeding up a website on the application and server side.
But, there is a single overriding factor based on pure physics that can undo all that effort. A single byte can only circle the globe in a finite time. A packet sent around the world on a perfect fibre circuit without any interference will take about 200 milliseconds to circumnavigate the globe. This is a fact that cannot be changed.
If a series of packets is flow controlled as is the case with tcp, then the latency factor can choke even the fastest connection.
The maximum theoretical throughput of a tcp connection is calculated as:
tcp receive window size / round trip time
For example, the tcp receive window size in current windows operating system protocol stacks is 32KB. If the client were experiencing a round trip time of 125 milliseconds to a server, the maximum theoretical throughput would be:
32KB per second / 0.125 seconds = 256KB per second
Of course, it is necessary to deduct from that theoretical result, the impact of real world anomalies. This is often quoted to be in the range of 75 percent. The already disappointing 256Kbps becomes 192Kbps.
For all practical purposes, the tcp receive window is a hard setting on the client side. The only way to combat the effect of the latency factor is to reduce the latency itself. In effect, this requires moving the server closer to the client.
Now the laws of geometry kick in. If a single server serves a global clientele, it is impossible to be closer to one client without moving further from another client.
The solution is multiple geographically dispersed servers. The enabling technology for this arrangement to be transparent to end users is geolocation aware dns global load balancing.
GSLB is a key component of the dns services offered by edgedirector.com
The chart below shows the effects of latency for a tcp receive window of 32KB.
ping time | maximum throughput |
0.010 sec. | 3200 KB/s |
0.020 sec. | 1600 KB/s |
0.030 sec. | 1067 KB/s |
0.040 sec. | 800 KB/s |
0.050 sec. | 640 KB/s |
0.060 sec. | 533 KB/s |
0.070 sec. | 457 KB/s |
0.080 sec. | 400 KB/s |
0.090 sec. | 355 KB/s |
0.100 sec. | 320 KB/s |
0.110 sec. | 290 KB/s |
0.120 sec. | 266 KB/s |
0.130 sec. | 246 KB/s |
0.140 sec. | 229 KB/s |
0.150 sec. | 213 KB/s |
The lesson is that even if a single server can serve all your traffic, it may not be serving it well to all users. A global server footprint is required for global usability. An additional benefit of implementing a global footprint strategy is the resilience of having multiple available servers. Unless all servers are out of service, your site will remain available.