I know that discussion of bitorrent is frowned upon, but since this question doesn’t involve piracy or any how to questions I hope you’ll allow it.
Why does bitorrent send files in bits and pieces rather than sequentiallly?
BitTorrent randomizes the sequence order so that many hosts get quickly seeded with different parts of the file. This allows you to download many separate parts of the file from many different hosts at the same time, rather than being bottlenecked by one server.
I find bittorrent to be a clever solution, but have only used it a few times to obtain legitimate material…I would like to know more about how bittorrentw work too. Because this isn’t about how to use them for any purpose, I hope the mods let the thread stand.
To the OP, several obvious reasons:
This applies to all multicast setups, of which bittorrents are just one flavor:
If there were one client, and one server, then sending sequentially makes perfect sense. Now assume that halfway through this transfer, a second client appears.
It is most efficient to multicast the remaining blocks to both clients, then retransmit the early blocks to the first client.
Suppose there are now 5 clients. For some unknown reason (network glitch, whatever) one client misses a few blocks. It is inefficient to go back and retransmit those just for that client.
Now add in multiple servers, which, again, is not necissarly unique to bittorrents.
If you have, say 5 servers, it would be effiecient to have 1 server send the first 20% while the second server is sending 20-40% and so on. If the servers have different bandwidths, or loading, then this will appear random.
If you then apply the principals of 1) to multiple servers, and multiple clients you can see how the results would appear to be random blocks coming to a particular client, even though each server might well be doing it’s best to transmit the blocks in sequence.
Torrents make use of client/servers.
A given client/server might not yet posess the start of the file, or the part of the file that any other client would need to stay “in order”. So, iIn order to utilize the maximum number of client/servers, those clients need to start transmitting the parts they do have.
The parts they have will have been somewhat randomized for this reason, and all the other reasons, so now things get really chaotic.
None of these reasons require any INTENTIONAL radomization of the block ordering, but that doesn’t mean there isn’t any.
I don’t know for sure, but I can imagine that bittorrent clients have some radomization built into them. Intuitivly, this seems like it would help spread the load.
Which could be taken nearly the opposite of what I meant to say.
Make that:
“The few times I have used bittorrents was to obtain ligitimate material.”