December 6, 2007
-
How the internet works
My most recent quickie project was to summarize how the internet works in a 1-page diagram.
Since I couldn’t find any single source with a good summary, I browsed a lot of wikipedia and howthingswork.com pages and came up with this:
I intentionally left out details of the network stack, since the IETF has made a strong point of not adhering to formal layers [link]. And only network engineers need to worry about protocols; everyone else basically surfs on the application layer. Any web experts out there who can point out anything wrong or missing from my diagram?
Comments (4)
Do you think they’ll ask anything about server farms? I doubt they’ll ask much about dynamically generated webpages, but you probably know enough about different methods with advantages/disadvantages, right? =)
Good luck, Ed. I wish I could be reading up on this stuff. =b
Interesting… the moment someone says “diagram of how the internet works”, I think of the backbone and the various content companies out there.. homes make up a small part of this mental diagram of mine. In yours, half of the diagram is in your own home, and the servers on the right are all web servers. There’s nothing wrong with that, it’s interesting to see where the emphasis lies.
I dunno who your audience is, but you can probably omit all those port numbers and such? The diagram of the home nat router could be cleaned up… maybe drawn in some way that makes it clearer that there is (usually) only one link to the outside.. the software stack on web server 1 may not be that relevant..
You could put in some other non-web things too… maybe an email server (like.. maybe show a comcast email server sitting in the “local ISP” box.. show a google email server sitting on the far right).. maybe IM (tho that gets a bit tricky… prob not worth it).
I dunno… I feel like it’s weird not to depict the backbone in some way. I feel like that puts the “internet” in internet… shows the relationship your local ISP has to their “ISP”.. shows the ridiculousness of those who argue against net neutrality.. etc..
I suppose the reason layers sort of matter is that … for example, if you concentrate on one layer, the resulting diagram of the internet looks totally different. Like say, if you are only interested in the stuff that goes on at HTTP-level, then that diagram wouldn’t have an ISP.. wouldn’t even have your home NAT router, and there is no internet backbone–none of that matters. You just have web browsers and web servers and a “connection” between them (the details of which your browser and server don’t care about), that’s it.
Hard to say what is most important in an explanation of how something “works”. But off the top of my head, I would think certain points are critical:
<li> (1) Mention of different “last mile” technologies for connecting home users to the internet (DSL, Cable, Satellite, Dial-up, ISDN)
<li> (2) Mention of ISP peering arrangements (Private *and* public peering, protocols like BGP, major internet exchange points like MAE east)
<li> (3) Explanation of “big pipe” technologies (SONET/SDH)
<li> (4) Explanation of the DNS system (how dot-com, dot-org, etc. names get assigned and looked up: it’s not just a server at the local ISP)
<li> (5) Explanation of distributed content delivery (multi-homing, akamai)
<li> (6) (maybe) explanation of how web servers work (application layers, databases, content management)
(2) is critical, I think: you don’t understand the internet until you “get” that there isn’t any such thing as a “default route” for communicating from one end to another. (5) is also important, I think. It is critical to the reliability of big sites like Google that they aren’t just one bank of computers hooked up to the internet at one place: they are multiple computers connected at different (physically and logically) points on the internet.
Thanks all, your input is invaluable. I’ll work on revising the diagram and look up those technologies.
It’s true that “explain the internet” is very broad. To narrow it down a bit, I’m thinking “explain the basic architecture and principles of the internet to a casual web user.”
I think it’s still worth showing the various blocks passing data around, even without explicitly talking about layers. As far as I understand, the layers themselves only specify headers, formatting, and packing which allow the data to be passed from block to block.