Torrenting
What is torrenting? Is this the same thing as a peer-to-peer network? How do these technologies fit within the client-server paradigm?
Torrenting is a specific application of peer_to_peer_networking applied to file-sharing.
Each peer on the network both consumes resources and makes resources available to others.
Procedure
Large files are divided into small equal sized pieces and each piece is assigned a unique hash identifier. The .torrent
file details the number of pieces, their sizes and hash values.
Clients request different pieces from different peers simultaneously. As pieces are received, they are verified against their hash. Corrupted or incorrect pieces are discarded and re-downloaded.
The client software reassembles the pieces in the correct order and the final file will be identical to the original which can be verified by comparing hashes.
Key terms
- tracker
- a server that coordinates communication between peers (so there is a server but its role is more lightweight than client-server, coordinating the peers rather than hosting or distributing file content)
- swarm
- a group of peers sharing the same file
- seeding
- uploading file pieces to other peers
- leeching
- downloading file pieces from other peers
An alternative to a tracker server is to use trackerless methods such as distributed hash tables
Terminological clarification
BitTorrent is the communications protocols for P2P file sharing. It was also a client software developed by the company BitTorrent Inc.
torrenting is the general terms for that act of sharing files using the BitTorrent protocol
Napster
Napster pre-dated the emergence of the BitTorrent protocol. It did not segment files and files were downloaded directly from peers. It was a centralised P2P network because there was a central server that indexed all available files which kept a database of all connected users and their files.
When you searched Napster you would be querying this DB on the server. The server would facilitate a direct connection between the consumer and provider peer for the data exchange.
When users share with BitTorrent the .torrent
file is the source of truth and a swarm is created around the users who have possess the file.