• 0 Posts
  • 22 Comments
Joined 1 year ago
cake
Cake day: July 7th, 2023

help-circle









  • Yes, but we’re talking about “seconds” and “nanoseconds” rather than hours.

    Networks move much faster than we do.

    There’s also no hierarchy of IP addresses, and that matters for lookups.

    So the 1 second it takes to do a dns lookup is WAY too long for continuous ip lookups, and the size of the database and chains requires explaining where to find ip address X is too long and updates WAY too much to be accurate and/or kept.

    Lookups are easiest if you know “I lookup .uk addresses at this particular server in England” because that particular “ authoritative DNS server” only really handles its own little segment of lookups.

    There is no such hierarchy in ip addresses, and they can’t really be cached for long.

    You would have to continually know and update all of them. And we sorta do in the larger routers, but keeping that up to date at the edges would require a TON of bandwidth.


  • It’s not just the address space, but also the sheer number of lookups.

    DNS has authoritative name servers based on tld, and then domain, and then maybe subdomain.

    When you’re dealing with IP addresses, there is no such tree that I lookup, I just fire it into the abyss and let the routing hardware do the lookups. I know who my gateway is to the internet, but I usually don’t keep the routing information.

    My ISP’s routing hardware then says “this IP was last found somewhere in Europe so I’ll fire it at my European connection and hope they get it right.”

    Losses are expected.

    IPv6 CAN route with larger address tables, but the “fire and forget” method still exists.

    There’s also a method to scream at all my peers “do you know where 5.5.5.5 is, because I don’t know” I’ll remember their answer for a bit because that’s useful, but I’ll eventually forget it because I expect it to move. I expect this ip movement because I’m fault tolerant. I might not find the fastest way there, but I’ll find it.

    Philosophically, the internet is designed to be fault tolerant and pseudo anonymous. So if 5.5.5.5 is somewhere in Spain and my Spain peer dies, I recognise that the packets are failing and then I start blasting them at England, because my British connection knows all about the Spanish villa and can pass along my messages. I don’t really care where Spain is, I care about who can get my message there and that’s it. It’s too onerous to always keep track of where everyone is, and MOST people on the internet I don’t actually know about because they’re behind a Nat gateway and I don’t care about them. This makes it so I only have to care about edge devices and greatly simplifies my list.

    So for example, your laptop isn’t actually on the internet. Your modem/router is, but your laptop doesn’t exist to the internet. When I want to send you a packet, I just send it to your router and let the router handle it. I don’t even know that your laptop exists, and I don’t care.

    Well your router will send the data to your laptop instead of your phone because the Nat is keeping track of who requested it and your phone didn’t ask for it. This causes problems because it means that from outside your network, I can’t just connect and send data inside your network unless someone asked for it. So I can’t just call your cell phone unless it reaches out first because I don’t know that your cell phone exists, and even if I did, the router would block it. This is why port forwarding exists, it allows you to have your laptop get ALL data sent to the router on port 12345. I still don’t know about your laptop, but I know that there’s a server on your IP address on port 12345 that I can connect to and request/send data to. Keeping track of all of this just so that I always know where your laptop is requires a fair bit of coordination at many layers.

    Ideally it has a domain at a registrar that I can ask about where it currently is. The routing is still “fire and forget “ because it simplifies my list of “where every IP is” and even then, I only know about the laptop’s edge connection to the internet and let that edge take care of where to actually send the data so I don’t have to think about it.

    In IPv6, Nat works a little different, but it’s still close.

    I’m honestly not sure how many mistakes I made, I just kinda brain dumped info, so let me know which pieces don’t make sense.


  • The domain registry is NOT, and it’s categorised by various tld’s the scope of the routing is MUCH higher traffic.

    Your cell phone is run by a provider and has maybe 0.0000001% as much lookups as routing would have.

    These things are all done in various tree light structures to try and eliminate central points of failure . The Internet was designed to try and resist failure, and you are creating some central failure points.

    Even if you created several of them, synchronisation issues would be Basically impossible to fix or take up unbelievable amounts of bandwidth




  • It’s called a MAC address.

    The problem with it is mostly routing.

    The osi model has 7 layers of connection to form a proper internet connection.

    The MAC address exists but doesn’t leave the physical network. The MAC address is used to physically connect your computer to the router, and it defines your piece of hardware.

    The IP address can change, because your computer can connect to different networks.

    If you tried to route everything with a MAC address, (which isn’t possible, but for arguments sake we will pretend it is) the problem is that when you take your phone with its MAC address off your wifi and on to your work wifi, Where would the registry be? How would the Internet know how to find your phone? Do you just log into one giant global registry so that everyone can find your phone when they are trying to communicate with it? That would be a giant fucking database and everyone would always be trying to use it.

    Routing is a big and complex problem, and these things didn’t work with ipv4

    They do work better with IPv6. IPv6 adresses don’t need to change like ipv4 for a bunch of reasons.

    From a philosophical level, the Internet was designed for people to be anonymous and make relatively anonymous connections. You wanted to be flexible enough that you can just be assigned a new number and work with that new number quickly.

    This is a really simple explanation, and I got some basic facts wrong just for ease of understanding, but the principals are correct.