# The Internet: Burning Questions

_(cross-posted from my [personal blog](http://www.jhazard.com/posts/internet_questions.html))_

I'm about to start a learning project and I'm paying extra close attention, "What feels most interesting?" rather than merely, "What am I supposed to know?" When I stopped to think about it, there's plenty of very specific (and vague) things that I'm curious about regarding how the Internet and the network stack operate. Below is my lightly edited brainstorm of "What's confusing and interesting about computer networking?"

Another way of framing this is that I find myself more easily bored when being told "Here's how a system works" compared to when I go, "How the hell would I build this? None of my pieces seem to fit.... maybe if I...."

**If you know anything about networking and would enjoy giving me answers/hints/nudges on any of these questions, go ahead!**

1.  How does anything find where it's going?  
    

1.  What local knowledge does any given router have, and what search algorithim does it use to eventually end up in the right place?  
    

1.  What (if any) are the guarantees of this (or other) algos?  
    

1.  How often do you not find the node you're looking for?
2.  Is it deterministic and/or predictable? i.e will a request always follow the same path?
3.  Is there an average number of "hops" till success?

3.  Is there anything where after making an initial request, and a path to the end node needs to be found, that path is then cached for use in ongoing exchanges? Is the original search process efficient enough that you don't really get any gains from that? Does IP even allow for specifying a specific path?

3.  How the hell are IP addresses and DNS records regulated?  
    

1.  My current understanding is there's some central committee that dolls out IP addresses based on geographic considerations.  
    

1.  So IP only needs to be unique. It doesn't matter what IP you have, so it seems like the main job here is just to avoid collisions.
2.  I'm guessing there storing of "where does a given IP address live?" is stored in a distributed way across many routers across the whole internet.

3.  What do you have to do to be a DNS service provider? It seems like they all have to coordinate on not letting multiple people get domain names, and they also are in change of maintaining the mapping between URLs and IPs.  
    

1.  How does my computer access/interact with the DNS records?  
    

1.  Is it a bootstrap thing, where a few DNS servers have a "forever" unchanging IP address, and I just ask them for a translation?
2.  I think I've read stuff that my computer also caches dns records, but how does it know when those records have been updated? If the old IP address is still available it seems like I could go to the wrong site without noticing, unless my computer is constantly checking DNS servers.  
    

1.  That "sounds" expensive, but is it?

3.  How do people who sell domain names handle collisions? If two people try to buy the same domain name at once, from different domain name vendors? (if it was from the same vendor, I assume it would be a straightforward "we queue all requests and process them one at a time" thing, doesn't seem doable with multiple companies (unless they all forwarded to a third party, but wow that seems like a lot))

5.  What does the topology of the internet look like?  
    

1.  Is there a N-degrees of separation thing?
2.  Are there any bottle necks?  
    

1.  Like, what's the min amount of routers I'd have to turn off to disconnect a city/state/country from the rest of the Internet?

7.  What governs Internet speeds?  
    

1.  Is speed different from bandwidth?
2.  K, so one can pay for faster or slower Internet. What are the resources that are shuffled around by ISP that make that speed difference.
3.  What metrics should I use to think about Internet usage? (total GB/time?)
4.  What metrics should I use to thing about Internet... providance? (number of parallel requests that can be handled? Total amount of GB? GB/time served?)
5.  ^ The above two questions are in the context of doing Fermi estimates on what sort of network infrastructure is needed to support X amount of consumption.

9.  General resistence to attacks/natural-disasters/acts of god?  
    

1.  Those fiber optic cables that line the oceans, should I be worried about anything happening to them?
2.  What the largest Internet outage in history?
3.  How resilient is Internet infrastructure compared to, say, the power grid?

11.  Wooooooooooooaaaah how the hell does satellite Internet work?  
    

1.  I can imagine "big space computer" being strong enough to send signals to earth, but can a phone send back?
2.  Oh wait, I remember satellite Internet coming with a big box.  
    

1.  Is the main cost of a satellite Internet receiver mostly "big transmitter and power system to operate it"?

4.  What is an Internet satellites service capabilities? What's stopping them from taking over from cable driven ISP setups?

13.  What are big player application layer protocols besides HTTP and SMTP?  
    

1.  What's really the difference between them? How weird would it be to send email using HTTP? How weird would it be to send webpages using SMTP?
2.  What (if any exist) does a suuuuper specific application protocol look like?

15.  Where on your computer does networking stuff live?  
    

1.  Is the TCP/HTTP code in the kernel? .txt file on your desktop?
2.  What does the networking card do?

17.  What does network monitoring look like?  
    

1.  Related to topology, does the NSA have like 6 hubs they can look at and see most traffic?
2.  How much "extra" does a router need to also store/monitor the traffic going through it?

19.  The great firewall of Chine?  
    

1.  I heard something about DNS poisoning, what's that?

Expect an update in the future with what I learn!