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?

  • KillingTimeItself@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    2
    ·
    7 months ago

    basically, the entire TL;DR of this post, from someone who is a linux nerd, that knows some things about networking.

    Everything knows where everything is, and if it doesn’t it knows something else that does, and if that doesnt, well, repeat adnauseam. The technicality here is that not every individual point knows where every other individual point is, but it knows it’s immediate neighbors. And those immediate neighbors do as well, at the high routing level, think data center.

    Think of it like a tree structure, but a really fucking big one, and with a lot of circular and unusual connection points. You can get from one point, to any other point. It’s just a matter of knowing how.

    Also, to be pedantically accurate here, the internet is a hodge podge of packet flinging hardware, “routes” aren’t really a thing. Packets will take whatever route is determined to be optimal by the hardware it interacts with. I.E. it dynamically changes as needed, that’s why your ping is always variable

    • OmegaMouse@pawb.socialOP
      link
      fedilink
      arrow-up
      2
      ·
      7 months ago

      Thanks, this is a good summary. It’s useful to know about the dynamically changing route - that explains a lot.

          • KillingTimeItself@lemmy.dbzer0.com
            link
            fedilink
            English
            arrow-up
            2
            ·
            7 months ago

            we’re on lemmy which is a federated service, essentially the tl;dr is decentralized. Root federation in this context refers to the instance that hosts your account. In my case dbzer0, in your case pawb.

            Personally i’ve found it really interesting seeing the sub niche interactions between different federated platforms. It’s a weird look into how humans tend to associate.

            • OmegaMouse@pawb.socialOP
              link
              fedilink
              arrow-up
              2
              ·
              7 months ago

              Ah gotcha! Yeah it’s pretty neat seeing the ways in which the instances intermingle. Some communities stay pretty niche and used only by local users with the same interests, whereas others are melting pots of every instance. I guess it’s a bit like a society with little towns and bigger cities.

              • KillingTimeItself@lemmy.dbzer0.com
                link
                fedilink
                English
                arrow-up
                2
                ·
                7 months ago

                yeah, it’s interesting to see in comments and other communities as well.

                The vast majority of accounts seem to be on lemmy world though. Which is interesting.

  • darganon@lemmy.world
    link
    fedilink
    arrow-up
    2
    ·
    8 months ago

    There are things called routers that…route traffic. A dumbed down version is routers talk to other routers to find out what they know about.

    If a game server you connect to matches you with someone in Japan, your computer sends a packet with the address in Japan attached to it. Your home router probably has no clue where that is, so it goes to its upstream router and asks if they know, this process repeats until one figures it out and you get a route.

    This all happens very quickly, and it’s why people say the Internet routes around damage.

    • OmegaMouse@pawb.socialOP
      link
      fedilink
      arrow-up
      1
      ·
      8 months ago

      That sounds like quite a messy and inefficient process! But I guess as long as it can be done quickly enough, it doesn’t really matter?

      • KillingTimeItself@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        2
        ·
        7 months ago

        it’s not efficient from the perspective of organization. But the thing nobody tells you here is that packets have no predefined route, they take whatever route gets them there optimally. So it’s highly redundant, and very fault tolerant. When you consider that, for what it does, it’s a highly efficient routing system.

        To the point where you could cut an undersea cable, and traffic would still route perfectly fine, albeit probably a lot slower, assuming that isn’t your only connection of course. The fact that it works it all is kind of a miracle.

      • glimse@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        8 months ago

        I’m no expert but it seems like the most efficient way with the given technology! The hops between routers are much less frantic than (I think) you’re imagining.

        To oversimplify, think of it like boxes in boxes where each box is a router.

        Your PC is in the first small box. It says “I want to connect to [IP]” and the box says “I don’t have that IP, let me ask the bigger box”

        The bigger box (your ISP) says “I don’t have it either, I’ll ask the big box”

        The big box says “I don’t have it but based on the address, I know it’s in this other big box”

        Other big box says the same thing and sends it to another small box. That small box has the PC you’re looking for and the packet is delivered!

        • KillingTimeItself@lemmy.dbzer0.com
          link
          fedilink
          English
          arrow-up
          2
          ·
          7 months ago

          I’m no expert but it seems like the most efficient way with the given technology! The hops between routers are much less frantic than (I think) you’re imagining.

          not just this, it’s also worth considering that laying cables is expensive, so you better damn well use them. A system like this also ensures a very wide range of pathing. And in turn, a very spread out use pattern.

      • MelastSB@sh.itjust.works
        link
        fedilink
        arrow-up
        1
        ·
        8 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
          1
          ·
          8 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.

          • KillingTimeItself@lemmy.dbzer0.com
            link
            fedilink
            English
            arrow-up
            1
            ·
            7 months ago

            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.

            and this kids, is why we don’t like cloudflare, and DNS services.

    • Atemu@lemmy.ml
      link
      fedilink
      arrow-up
      0
      ·
      edit-2
      8 months ago

      Your home router probably has no clue where that is, so it goes to its upstream router and asks if they know, this process repeats until one figures it out and you get a route.

      That’s not how that works. The router merely sends the packet to the next directly connected router.

      Let’s take a simplified example:

      If you were in the middle of bumfuck nowhere, USA and wanted to send a packet to Kyouto, Japan, your router would send the packet to another router it’s connected to on the west coast*. From your router’s perspective, that’s it; it just sends it over and never “thinks” about that packet again.
      The router on the west coast receives the packet, looks at the headers, sees that its supposed to go to Japan and sends it over a link to Hawaii.
      The router in Hawaii again looks at the packet, sees that it’s supposed to go to Japan and sends it over its link to Toukyou.
      The router in Toukyou then sends it over its link to Kyouto and it’ll be locally routed further to the exact host from there but you get the idea.

      This is generally how IP routing works; always one hop to the next.

      What I haven’t explained is how your router knows that it can reach Kyouto via the west coast or how the west coast knows that it can reach Kyouto via Hawaii.
      This is where routing protocols come in. You can look up how exactly these work in detail but what’s important is their purpose: Build a “map” of the internet which you can look at to tell which way to send a packet at each intersection depending on its destination.

      In operation, each router then simply looks at the one intersection it represents on the “map” and can then decide which way (link) to send each individual packet over.
      The “map” (routing table) is continuously updated as conditions change.

      Never at any point do routers establish a fixed route from one point to another or anything resembling a connection; the internet protocol is explicitly connectionless.

      * in reality, there will be a few local routers between the gateway router sitting in your home and the big router that has a big link to the west coast

  • Zippy@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    8 months ago

    Comments are correct here with one missing high level component for routers. That is the very top level routers are designed for tier 1. I started an internet company and we got large enough to decide to become a tier 1 provider. There is one big difference in this configuration is that we publish our own blocks of IPs and we listen for published IPs. We have routers that essentially maintained a list of where all the IPs or block of IPs worldwide needed to go. More importantly, I would send out a list of my IP blocks that would propagate across all the tier 1 routers across the world. That could take an hour but more likely minutes.

    Having this allowed me to essentially connect to the internet at zero cost. There is some cost to be assigned IPs but I was trusted. While I say zero cost, I still had to pay for large bandwidth dark fiber to new York or other major meet me points. I also had to pay rack space to put a tier1 router into these buildings. But what is really gives me is the ability to have multiple connections to the pipes and because I publish my own IPs, I can balance all the routes and other providers can find the best way to me thru a process called weighing. Also if I loose a connection which is rare at this level, I could rapidly and automatically republish my route on working connections and usually within 15 minutes, all the routers in the world would know. 15 minutes actually is likely long. These days 5 minutes.

    Now the interesting part of this, I publish my own IPs. I have to be extremely careful as with a single stroke, I could say I own all the IPs to China. Well likely a few strokes. I certainly could make a simple mistake and take control of a shit load of IPs. That means suddenly traffic could come to me that was destined for another country. More correct, because they are publishing, it would just make a mess and take some IPs down. If I publish a big block in China, I would essentially DOS myself because the pipe sizes I buy are factors smaller. Now this is a trusted system because we all connect together randomly. There is and can not be any central control as we all need to publish freely for this to work. But if I were to screw up and say divert a shit load of IPs destined to say Washington, it would rapidly be figured out and I would rapidly be determined to not be trusted. I would be shut down physically at some point.

    Essentially I have fairly normal routers with one feature that allows them to dynamically keep track of all the routes worldwide and to periodically publish all the IPs I own.