Torrents are pretty simple, and is many pieces of technology packaged together.
Basically, to make the .torrent file, the software read all the files and treat them as one big file. It chop it into smaller blocks and pass it into a formula to create a checksum. To keep it simple, checksum = byte1 + byte2 + byte3 … That checksum is used to validate the download later on.
Now, you have a .torrent file that is basically the file list, the order in which the files will be presented, the file length, and every single blocks checksums, and some more info, like what server to contact to get the peer list.
The download now. You download the .torrent. Your client get the server info, contact it and say “hey, I have this torrent, who have the same one?”, and your client connect to the other users that download or seed it.
Your client then tell the other clients: “I need block 1 2 4 5 6 8 10, have block 3 7 9”, if the other clients have your missing blocks, then a download for those blocks can occur. And they can request the blocks you already downloaded.
The important part here is the blocks. Again, the big files are chopped in small blocks. And those blocks can be more easilly exchanged.
At the end, the client can redo the same checksum formula, and validate that all blocks are error free. If the checksum match, it should be error free, if not then there is an error on that block, and it will be redownloaded.
Latest Answers