I saw a map of undersea internet cables the other day and it’s crazy how many branches there are. It got me wondering - if I’m (based in the UK) playing an online game from someone in Japan for example, how is the route worked out? Does my ISP know that to get to place X, the data has to be routed via cable 1, cable 2 etc. but to get to place Z it needs to go via cable 3, 4?

  • MelastSB@sh.itjust.works
    link
    fedilink
    arrow-up
    16
    ·
    9 months ago

    I think the previous comment omitted something, which is why you think it’s inefficient: routers don’t ask for directions every packet, they record the directions in their route table.

    • towerful@programming.dev
      link
      fedilink
      arrow-up
      9
      ·
      9 months ago

      At the back-bone scale of the internet, routers actually announce the addresses they are responsible for.
      Paths are judged by how specific these announcements are. A router announcing a single IP is the preffered destination, compared to a router that announces a block that contains it. So routers will forward it to whichever router more accurately describes the destination IP.
      This makes up part of the calculated Path Cost of various routes to reach a destination.
      If router A tries to contact router D and knows that router B and C can both forward that packet, router A will send it to the router that announced the lowest path cost to D.

      Its a lot more complicated than that, but that is how datacenters can disappear from the internet (by wrongly announcing they no longer have a path to the IPs inside the datacenter), or how a small ISP can accidentally route the entire internet through their network (by accidentally announcing extremely low path costs). Both of these have happened.
      https://blog.cloudflare.com/october-2021-facebook-outage/
      https://blog.cloudflare.com/how-verizon-and-a-bgp-optimizer-knocked-large-parts-of-the-internet-offline-today/

      So, the internet is both fragile and resilient.
      It can route around damage, but cannot deal with mistakes/maliciousness above a certain “ring” of control.