Ratio 2.5 (or The Good Will of Seeding)

Topic: Why you should seed, and why you should seed more than a ratio of 1.

Introduction

This essay was written by me, Brandon Nolet, in the context that I’m currently seeding Debian Buster in its various forms (and Solus), and it’s somewhat new to me.

BitTorrent Protocol

For those not familiar with how torrents work, here’s a bit of a summary. When you download a file from the web, you’re acting as a client to a server. You, the client, are requesting a file from a server. This server serves the file to you, and the entity controlling the server is the only one that you’re downloading it from.

In torrenting, this is not the case. In fact, there’s very few servers involved in torrenting. The only servers that there are are called trackers. The trackers are responsible for communicating to you, the client, where to get the file you’d be requesting. To request a file, or group of files, you contact the tracker and they tell you which IPs to connect to on which port.

But how do you know which tracker has information relating to the file you’re looking for? Well that’s where the .torrent file comes into play (or magnet link, but we won’t touch on that right now). When you want to download a file, say the Debian Buster live release, you download the corresponding .torrent file and within that file is the information related to the file you want to download. There’s stuff like the size of the files you’ll be downloading, the tracker you need to contact for more information on your peers, and other stuff.

Once you’ve contacted the tracker, you’ll be given a list of peers (other people’s computers) to connect to and download all the pieces of the files you’re looking for. The peers are all people who’ve gone through this process, but have pieces of the file you’re looking for already downloaded. These others who have all the files already are called seeders and they are seeding you the files.

During your process of downloading the file(s), you’ll be connecting to many other people’s computers and each of them will concurrently be sending you pieces that you request of them.

A little more thorough than I wanted, but you get the point. If there are any incorrect pieces of information, please send me an email.

P2P vs. Server-Client

As you can see, torrenting is different from downloading a file from a website using your web browser, or wget for that matter. So what does that difference look like?

When someone like the Debian organization releases a new version of the Debian Linux distro, people will surely be downloading the various flavours of Debian immediately and en masse. This presents an issue. Debian only has a limited amount of bandwidth for their (potential) users to download this new release (Buster).

When a large quantity of individuals downloads the same file, from the same server, at the same time, this puts a huge load on the Debian infrastructure and, as a result, everyone suffers. If it’s not just really slow downloads, it’ll be downloads that fail halfway through, or otherwise not being able to download the file you want at all.

So the solution in this case is to use everybody else’s copies as sources for your download. So instead of everyone downloading a multi-gigabyte file all at once, everyone downloads a file of less than 100 kilobytes. Yes, the same amount of people might be taxing the server, but the throughput required to download those files is much lower.

This might sound all rosy, but there are downsides to torrenting when compared to the server-client informational transfer model. Over time, less and less people will be seeding these files. A year from now the amount of people who are concurrently seeding Debian Buster will probably be along the lines of about 1% of the amount of people seeding the day after release.

What this means is that at some point, there might be nobody seeding the given file that you want to download. Without anyone else seeding the file, the torrent becomes dead. Without any seeders, you have nobody else to download the file from and, to you, those files don’t exist anymore.

Another downside to torrents is that some internet service providers (ISPs) manipulate peer to peer traffic by either throttling the traffic or blocking the traffic altogether. Throttling is the practice of reducing the rate at which packets are delivered, thus making the traffic appear to be passing at a slower speed.

This is done due to a misconception that torrents are only used for illegally obtaining copyrighted content. As you can see from the example in this essay, this is not the case. There are plenty use cases for torrents and they are not limited to copyrighted content. Some creators share their podcast via torrents, Linux distros are commonly distributed via torrents, and you can basically share any file you want via torrents.

Common ways to bypass this can be found here. This link may be broken at some point in the future.

Why Seed More Than Once?

I’ve been asked this a few times and most of the time my answer is “give back as much as what you’ve taken and more” and never really elaborated more than that. I’ll explain what I mean, and why just seeding back exactly as much as what you took shouldn’t be the low bar that you set.

When a torrent is sent out, theoretically, there’s only one seeder. Imagine that seeder only seeded that file a single time, and every following seeder did the same. This would result in only one person being able to download the file at a time and we’d actually be worse off. This is what happens when you only seed to a ratio of 1. It’s a 1:1 ratio of download versus upload.

When you seed at a ratio of more than one you’ll be not only ‘replacing’ the copy that you gained, but you’ll also be growing the peer-to-peer network that you’re creating by using this torrent. When you encourage growth in a peer to peer network, everyone who comes after you benefits. You’ll be encouraging the kind of behaviour that makes you able to download the file at the maximum bandwidth available to you in this growing p2p network by being able to connect to more peers.

I recommend a ratio of 2.5. You’ll be giving back what you got, you’ll be giving your 100%, and then giving some more!

Conclusion

This isn’t the only thing you have to do though, you should be telling your friends to seed more than once! Let the whole world about larger than ratio 1 seeding and why it’s great for everyone involved.

Happy torrenting and stay away from the pirate bay! ARRR!