Creator of LULs (a script which helps links to point to your instance)

Come say hi here or over at https://twitch.tv/AzzuriteTV :) I like getting to know more people :)

Play games with me: https://steamcommunity.com/id/azzu

  • 2 Posts
  • 9 Comments
Joined 2 years ago
cake
Cake day: June 29th, 2023

help-circle





  • Azzu@lemm.eetoProton @lemmy.worldProton left Mastodon...
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    2 days ago

    Here is it illustrated by multiple examples:

    • Situation: You are the only one seeding a torrent, with ports closed
      • Another person with ports closed wants to get the torrent. They will never be able to get it since you two can’t establish a connection.
      • Another person with an open port wants to get the torrent. Eventually, after some delay, your client connects to the tracker and gets a list of people who want to get the torrent (leechers). You get the IP and port of the person who wants to get the torrent, you connect to them, you start uploading to them.
    • Situation: You are the only one seeding a torrent, but have ports open
      • No matter if a leecher has ports closed or open, they get your IP+Port from the tracker, connect to you, and you upload to them

    The situation with more clients is more nuanced, but essentially the same:

    • Situation: There are 5 seeders with open ports seeding a torrent
      • Everything works perfectly all the time
    • Situation: There are 5 seeders with closed ports seeding a torrent
      • For a leecher with open port, everything works perfectly
      • For a leecher with closed port, they will never get the torrent ever
    • Situation: There are 5 seeders seeding a torrent. 4 have their ports closed, 1 has it open.
      • 10 leechers with ports closed want to get the torrent. The only one that can upload to them is the 1 seeder with port open, the other 4 seeders are useless.
      • 10 leechers with ports open want to get the torrent. All 5 seeders seed their torrent equally and everything works perfectly.
      • 5 leechers with ports closed and 5 leechers with ports open want to get the torrent.
        • The 5 leechers with ports closed are only serviced by the 1 seeder with port open
        • The 5 leechers with port open get the torrent from all 5 seeders.
        • The 1 seeder with open port seeds to every leecher, the protocol doesn’t discriminate. So in a perfectly equal world, the 1 seeder with port open seeds to all 10 leechers, so each leecher gets 1/10th of their upload speed.
        • The 4 seeders with closed port only seed to the 5 leechers with open port, giving each of them 1/5th of their upload speed.
        • This means that, if you add this all up, the 5 leechers with closed ports get 1/10th (1 seeder times 1/10th) of one seeders’ full upload speed, while the leechers with open ports get 9/10ths (1 seeder times 1/10th and 4 seeders times 2/10ths) of one seeders’ full upload speed.

    as you can see, the people with open ports have a massive speed advantage in this example, literally getting 9 times the upload speed available in the network. But essentially, torrenting still works as long as some people have open ports, just everyone with closed ports is at a severe disadvantage.

    Now there are a couple more issues with closed ports (like DHT/pex not working) but they all boil down to the same problem: the ones with closed ports can only get stuff from people with open ports. Thus they are at a massive disadvantage and get reduced speeds or in contrived situations with few seeders even nothing.


  • Azzu@lemm.eetoProton @lemmy.worldProton left Mastodon...
    link
    fedilink
    English
    arrow-up
    0
    ·
    edit-2
    2 days ago

    A connection has to be established. That is only possible if one side has an open port.

    So you can basically not connect to other people with closed ports, which reduces your available pool of people to connect to.

    As long as there are enough people with open ports for you, you and the torrent ecosystem will be fine. But when nobody or very few people have open ports, torrenting simply doesn’t work.