I am aware that this question might be closed as "not a real question", "subjective" or even "argumentative". If this is a mistake, I am sorry.

I am not good at all at networking but I'm trying to get better and learn more. (you might know the saying : "the first step to intelligence is acknowledging that you are stupid" :P).

Network-wise what happens after I type www.google.com in my browser and press enter?

Here's what I know so far :

  • The browser application makes a DNS request to find the IP of www.google.com. It might find 209.85.148.105 (that's what has just been resolved for me now).
  • Then it connects via TCP/IP to that host on port 80 (default port for HTTP) and sends an HTTP request like GET /
  • Receives HTML data and displays it (along with loading additional resources such as .css, images files etc.)

What I want to find out is how it connects, step by step, to a Google server. After the request goes out of my computer and my ISP it finally hits google hardware at some point.

  • Is there a load balancer?
  • How many of them?
  • Are there multiple levels of load balancers? i.e.: a load balancer of load balancers of load balancers...
  • How powerful is an end web server? Could it be a lousy 500 MHz CPU machine with 512MB RAM and 10 GB HDD? Or maybe an 8-core, 16GB, RAID-0 SSD beast?
  • What kind of redundancy do they use at network level?
  • What happens if load balancer(s) fail?
  • What does it take to make www.google.com unavailable? (No, I don't want to sabotage or sth..)

Solution 1:

Try out http://highscalability.com/display/Search?searchQuery=google it's full of resources.

Solution 2:

Regarding Google's hardware, this is a great place to start.

There's also some stuff on topology/load balancing there.