Exploiting BitTorrent: Difference between revisions
No edit summary |
No edit summary |
||
Line 5: | Line 5: | ||
== How does it work? == |
== How does it work? == |
||
The files are divided into pieces, all the pieces that belong to one file are named in a so called '''torrent- |
The files are divided into pieces, all the pieces that belong to one file are named in a so called '''torrent-file''', which is a meata data file also containing the hash cheksums for each piece and additional information. |
||
Each piece can be downloaded seperately from one or more clients (peers) participating in the sharing process. But how does a peer know which other clients it should contact? |
Each piece can be downloaded seperately from one or more clients (peers) participating in the sharing process. But how does a peer know which other clients it should contact? |
||
Line 13: | Line 13: | ||
The peers are divided into two groups, seeders and leechers. A '''seeder''' is a peer that already obtained the whole file, he doesn't need to download anymore, but he still keeps his client running to share the file with others. A '''leecher''' is a peer that is still in the process of downloading the file, but he can also share already obtained pieces with others. |
The peers are divided into two groups, seeders and leechers. A '''seeder''' is a peer that already obtained the whole file, he doesn't need to download anymore, but he still keeps his client running to share the file with others. A '''leecher''' is a peer that is still in the process of downloading the file, but he can also share already obtained pieces with others. |
||
BitTorrent implements a '''fairness model''': everybody needs to share with everybody! That means that every client participating in the sharing needs to provide his already obtained pieces to others, so he can download from the other peers. |
BitTorrent implements a '''fairness model''': everybody needs to share with everybody! That means that every client participating in the sharing needs to provide his already obtained pieces to others, so he can download from the other peers. This prevents the system from so called '''free riders''' that are not willing to upload. |
||
The implementation of the fairness model is based on preferences. Somebody who doesn't contribute to the system will get low or no download rates, and somebody uploading |
The implementation of the fairness model is based on preferences. Somebody who doesn't contribute to the system will get low or no download rates, and somebody uploading lots will get high download rates. |
||
The preferences are calculated by the clients for a given period, the so called '''choking period'''. |
|||
= Exploits = |
= Exploits = |
Revision as of 14:23, 19 July 2007
What is BitTorrent?
BitTorrent is a Peer2Peer filesharing protocol. It was designed in 2001 by Bram Cohen, to replace centralized server structures like FTP servers. Filesharing can be organized more efficient, no central server that has to provide all the upload. Also redundancy will be gained, due to distribution of the files to all the clients.
How does it work?
The files are divided into pieces, all the pieces that belong to one file are named in a so called torrent-file, which is a meata data file also containing the hash cheksums for each piece and additional information.
Each piece can be downloaded seperately from one or more clients (peers) participating in the sharing process. But how does a peer know which other clients it should contact?
To obtain the information one needs to start a sharing process, he needs to get the torrent file first. The torrent files are published on public web servers. To obtain the list of peers praticipating, one then he needs to contact the so called tracker which keeps track of all the peers sharing the same file. The trackers IP address is included in the torrent file. The tracker responds with a list of randomly chosen peers and a client can now contact the other participants.
The peers are divided into two groups, seeders and leechers. A seeder is a peer that already obtained the whole file, he doesn't need to download anymore, but he still keeps his client running to share the file with others. A leecher is a peer that is still in the process of downloading the file, but he can also share already obtained pieces with others.
BitTorrent implements a fairness model: everybody needs to share with everybody! That means that every client participating in the sharing needs to provide his already obtained pieces to others, so he can download from the other peers. This prevents the system from so called free riders that are not willing to upload.
The implementation of the fairness model is based on preferences. Somebody who doesn't contribute to the system will get low or no download rates, and somebody uploading lots will get high download rates.
The preferences are calculated by the clients for a given period, the so called choking period.