There are six main bottlenecks to performance on the Internet (which is used synonymously with the World Wide Web, even though they are somewhat different). They are:
- Server performance
- The server in any transaction needs to be able to handle the amount of computation required to deliver content in a responsive manner. Database applications tend to be the greediest on server performance.
- First mile
- The bandwidth available connecting the origin server to the backbone. Many organizations share their first mile with the employees of the organization, such that a large number of the company's employees web surfing reduces the bandwidth available to the server. This bandwidth is usually provisioned at or near saturation; flash crowds can quickly overwhelm it.
- Backbone bandwidth
- Backbone operators want to operate their network as close to 100% utilization as possible -- any unused bandwidth represents a loss. The backbones are unable to ramp up the amount of traffic they serve by any significant amount.
- Peering points
- Since a backbone operator makes no money off of tranist traffic, it is not in their interest to have any; hence, they tend to encourage their peers to route traffic elsewhere, by artificially inflating the BGP metrics on their traffic. Example: A simple backbone, comprised of five networks in a ring: A <-> B <-> C <-> D <-> E <-> A. Traffic from A to C is most optimally routed through B. However, B makes no money off this (they are paid by A, but must pay C), so B wants to make B's network look inefficient to A, so that the packet will go from A to E to D to C.
- Last mile
- Not all users have T1 connections to the Internet. Users on phone modems tend to see much slower performance than users on cable modems.
This limits the amount of bandwidth these users can accept, even if they are receiving it from different places on the network (such as ad servers).
- Client performance
- Not everyone has a high-performance workstation; some of the older machines process intensive applications more slowly.