Take a deep breath and keep reading.
When torrent sites popped up like mushrooms and ppl started to join a lot of sites, something happened. Ppl were suddenly starting 10, 15, 20 or even more torrents, doing forced download on all torrents that had the nerve to get queued.
So, what's wrong with that? I want it all, and I want it now!
Ask yourself why bittorrent is considered to be a fast way of downloading things?
The answer is that it's fast because it's designed to concentrate many ppls bandwidth (both download AND upload) to ONE active download at the time. Everyone that is downloading data from any torrent is also uploading to it.
What happens when you have 5, or even 10 torrents downloading at the same time?
Your bandwidth capacity is shared across those 10 torrents, and not only are you now a slow downloader on each of those torrents, you are also a slow uploader.
Let me try to explain this in detail. The scenario is assuming optimal connections and that we live in a perfect world, but it serves its purpose, to shed some light on this mysterious world called bittorrent.
Lets say that a person S (as in seeder) has a new episode to share. S creates a torrent and submits it to the web site. S starts to seed this torrent (S tells the tracker it's ready to accept connections from other members).
Member L1, L2 and L3 (as in leecher) browse the web site, sees the new submitted torrent and start to download it.
S, L1, L2 and L3 are now symbols for the torrent programs behind each person, and are from now on called peers. This torrent now has 4 peers connected to it. S has the whole episode and the others have 0 bytes of it.
L1, L2 and L3 all connect to the tracker and ask the tracker for addresses to other peers connected to this torrent, and the tracker gives each of them all the other peers addresses.
L1 gets the addresses to L2, L3 and S.
L2 gets the addresses to L1, L3 and S.
Well, you get the picture ...
L1, L2 and L3 now tries to connect to all the other peers (this is why it's good to be connectable). Lets assume all 4 of them are connectable. That means that all of them are now connected to each other.
Let the fun begin
First a few words about the .torrent itself. When S created the .torrent, the torrent program divided the episode into small chunks (the size of the chunks can be manually set). In this case each chunk were 256 kByte. So this 350 MB episode were divided into 1400 pieces.
A checksum was created for each of these pieces, and that info together with the address to the tracker was saved into the little .torrent file. (The torrent program uses the checksums to check if a received piece was transfered without errors.)
The pieces are numbered P1, P2, P3 ... all the way up to P1400.
Scenario:
L1 asks S, L2 and L3 if they have any pieces. Since S is the only one with pieces L1 only gets a positive answer from S. The others say no, otherwise they would be lying wouldn't they.
Same thing happens to L2 and L3.
So, S starts to upload one piece to each of them. I'm writing the story so I therefore get to choose who gets what.
L1 downloads P1, L2 downloads P2 and L3 downloads P3. (Just to make it simple to remember.)
Lets assume now that everyone has the same bandwidth capacity, the same download and upload speed (don't want to make it unnecessary complicated here).
After a little while a snapshot of the situation looks like this:
S still has all the pieces (doh ... wouldn't it be crazy if it melted away while uploading it.)
L1 now has piece P1 (1399 pieces left to download)
L2 now has piece P2 (1399 pieces left to download)
L3 now has piece P3 (1399 pieces left to download)
OK, now there's time for a new round of requests, with one BIG difference. And what's that, you all say with tinkering eyes.
This time they all have something to offer to the other peers.
L1 can start to send P1 to L2 and L3.
L2 can start to send P2 to L1 and L3
L3 can start to send P3 to L1 and L2
And they can all ask for a new piece each from S.
(Did I get all those right, my eyes are bleeding now ... lol )
I'm still the one writing this story so I get to decide ...
This is what's going to happen in round 2.
L1: ( P1 ) -> L2 (This is short for L1 is sending piece P1 to L2)
L2: ( P2 ) -> L3
L3: ( P3 ) -> L1
S: ( P4 ) -> L1
S: ( P5 ) -> L2
S: ( P6 ) -> L3
When those pieces are sent and received we take another snapshot:
S still has all the pieces (call me crazy, but didn't I just say that a minute ago)
L1 now has piece P1, P3 and P4 (1397 pieces left to download)
L2 now has piece P1, P2 and P5 (1397 pieces left to download)
L3 now has piece P2, P3 and P6 (1397 pieces left to download)
A shorter way of saying who has what is:
S: 1-1400
L1: 1, 3, 4
L2: 1, 2, 5
L3: 2, 3, 6
Time for the third request to be made, and by now it should be really clear that there are lots of choices now. 6 of the 1400 pieces are now available from someone else besides from S. So if S for some reason dropped out now (perhaps lost the connection to the Internet) L1, L2 and L3 should be able to get all those 6 pieces anyway. Right?
Imagine the continuing of this scenario. Are you doing that now?
Picture pieces being swapped between computers like mad, in a lightning fast tempo.
S uploads 1400 pieces once, and when that's done 3 ppl have the full episode ready to be watched.
Hurrrraaaayyyyy
Are you picturing this in your head??? Now, add 9 more torrents to be downloaded. At the same time!!! How would that affect the ability to share pieces amongst L1, L2 and L3?? If L1, L2 and L3 don't share pieces amongst each other, who do they have to download the pieces from? How does this affect the speed? How does this affect the strain on S? How does this affect the number of times S has to upload each piece? Conclusion: You should under no circumstances be downloading more than 2 or at an absolute maximum 3 torrents at the same time. Anything else is a complete waste of resources, both bandwidth but of course hardware. Edit: Note that this means 2-3 active downloads in total, not from each site, in total. |
No comments:
Post a Comment