If you’re a network engineer then you probably know where this is going and have heard this before. If not, read on and learn about the insides of the Internet!
A lot of people describe the Internet as “a bunch of connected computers”. Let’s go with that definition.
The word “connected” in that definition is the reason why I and so many others like myself have jobs. They’re connected by routers, firewalls, switches, radio towers, cell towers, optical gear, etc. I get paid to make sure the Juniper routers, firewalls, and switches work right and are installed correctly!
Lets say you want to go search for something on Google. You type http://www.google.com in your browser window and click “Go”. You’re requesting a web page from one of Google’s servers probably in the same region of the world you’re in (we’ll talk about this in another post).
Your request for a search page is sent through A LOT of networked equipment before it reaches google. This equipment is the behind the scenes equipment facilitating “a bunch of connected computers”. Your computer is connected to a switch or a router and the Google’s servers are connected to switches and routers as well.
Here is an example of how many routers I go through to get to Google’s servers. Note: transport (layer 1), switches (layer 2), and possibly MPLS (layer 2/3) equipment do not show up, so you could probably double or triple this number to get the REAL number of networked devices between me and Google.
traceroute to google.com (220.127.116.11), 64 hops max, 52 byte packets
1 rtp003231rts.sempra.com (10.232.24.1) 0.560 ms 0.247 ms 0.234 ms
2 10.0.232.5 (10.0.232.5) 56.595 ms 0.259 ms 0.239 ms
3 10.0.0.49 (10.0.0.49) 5.036 ms 5.045 ms 5.072 ms
4 10.0.192.5 (10.0.192.5) 5.103 ms 5.038 ms 5.092 ms
5 10.0.192.26 (10.0.192.26) 5.155 ms 5.185 ms 5.168 ms
6 18.104.22.168 (22.214.171.124) 5.213 ms 5.298 ms 5.252 ms
7 126.96.36.199 (188.8.131.52) 5.574 ms 5.461 ms 5.666 ms
8 207-114-163-229.static.twtelecom.net (184.108.40.206) 5.969 ms 5.908 ms 5.998 ms
9 220.127.116.11 (18.104.22.168) 19.358 ms 19.471 ms 19.694 ms
10 22.214.171.124 (126.96.36.199) 20.507 ms 20.496 ms 20.468 ms
11 188.8.131.52 (184.108.40.206) 20.637 ms 20.638 ms 20.505 ms
12 nuq04s06-in-f17.1e100.net (220.127.116.11) 20.367 ms 20.452 ms 20.507 ms
So, how does the Internet work?
The Internet works much like the US Postal Service (insert jokes here). Everybody has an address (IP address) and there are post offices (routers) that route the mail (requests/traffic) from sender to receiver and back.
Where the Internet differs from the US Postal Service is the fact that it is ran by THOUSANDS of postal systems (Autonomous systems), not just one. This is because the Internet is a free and unregulated market. Meaning any company/person with enough resources can “join the network”.
Think about how confusing it would get if there were two post offices right next to each other and one serviced the even numbered addresses and one serviced the odd numbered addresses. What happens with a competing post office builds next door and takes half of the addresses from each? Now when you send a package to a friend using post office 1 and they are using post office 3 you run into a problem. How does post office 1 know that post office 2 services your friend’s address? Also, what happens if your friend is actually using 2 post offices just in case one gets hit by a tornado?
This is exactly what happens on the Internet. Google and Yahoo have choices on which provider to use. No matter which provider they choose, their address stays the same. Google has 6 providers and Yahoo has 10. And both are actually the providers to customers of their own!
So now you see how confusing and complicated it can get. Google has 6 providers to choose from when sending traffic to you. This is the number of Postal SYSTEMS, not post offices. They probably have 2-10 post offices (connections) with each provider. Which one do they use? Well that’s where BGP (Border Gateway Protocol) comes into play.
BGP is the GPS system for the Internet, only not as accurate. Actually, think of BGP as the “wiki-GPS” for the world, where just about anyone can “update the map”. We’ve all heard not to trust Wikipedia because anyone can post anything about anything. Wikipedia’s information is mostly secondary and tertiary information. Bill Gates isn’t going and updating his wiki page all the time. 🙂 Yes, there are some fact checkers and peer reviewers, but ultimately there is no central authority, we are all the authority. If you post something that I know is false about Bill Gates I can erase that data, but that doesn’t negate the fact that whatever you posted was a “fact” for as long as it was there.
The Internet is ran the EXACT same way. The internet is based on trust: “You tell me what you own [routes] and I’ll tell all my friends about it, and they’ll tell all their friends about it and so on. So the entire world knows about your stuff and you only have to tell a few people instead of thousands.” Word of mouth is the best way to get information from point a to point z in the shortest possible time (besides a direct connection from a-z). Just check out how fast word gets around on Twitter. 🙂
In our postal system example, each postal system tells its postal system neighbors about all of the addresses it services. Those neighbors tell their neighbors and so on and everyone just trusts everyone else.
But what happens when a postal system updates the “wiki-GPS” with false information? A classic example of how the trust can be abused is when Pakistan’s government owned ISP brought down Youtube for the entire world. The Internet is still susceptible to this kind of issue whether it be done of neglect, ignorance, or malice. This goes on frequently on a much smaller scale.
Not only is the Internet based on trust, but it’s also based on arbitrary and unenforced rules.
On the Internet, there is a general rule that you’re not allowed to announce any routes shorter than a /24 (a zip code in our postal example). This isn’t a “RULE” of BGP, this is just a guideline the larger Internet stakeholders decided on. Is this rule enforced on each and every router in the world? The answer to that is a RESOUNDING no! This rule isn’t even enforced on every border router of the major American ISPs.
RESPONSIBLE and CAPABLE ISPs are helping keep the Internet a trustworthy and stable by enforcing routing policies (think of these as foreign policies). But as with foreign policies of governments, not every policy is the same from post country to country or even within the country itself. It isn’t perfect, but it’s working for now.
That’s my take on what’s wrong with the Internet. Stay tuned to the blog, I’ll post my solution soon!