08-16-2017, 09:43 PM
[attachment=15512]
Introduction
BitTorrent is a peer to peer communication protocol for file sharing.
The data to be shared is divided into many equal sized portions called pieces.
Each piece is further sub-divided into equal-sized sub-pieces called blocks.
All clients interested in sharing the same data are grouped into a swarm.
It does not require a user to download a file completely from a single server.
Instead a file can be downloaded from many such users who are indeed downloading the same file.
A user who has the complete file, called the seed will initiate the download by transferring pieces of file to the users.
Once a user has some considerable number of such pieces of a file then even he can start sharing them with other users who are yet to receive those pieces.
Pieces are not downloaded in sequential order.
This concept enables a client not to depend on a server completely .
It also reduces the overall load on the server.
Terminology
Torrent : refers to the small metadata file you receive from the web server.
Peer : A peer is another computer on the internet that you connect to and transfer data.
Leech: peer that s downloading the file
Seed : A computer that has a complete copy of a certain torrent.
Swarm : The group of machines that are collectively connected for a particular file.
Tracker : A server on the Internet that acts to coordinate the action of BitTorrent clients. The clients are in constant touch with this server to know about the peers in the swarm.
Share ratio : This is ratio of amount of a file downloaded to that of uploaded.
Choked : It is a state of an uploader where he does not want to send anything on his link. In such cases, the connection is said to be choked.
Working of BitTorrent
BitTorrent protocol shares data through what are known as torrents.
For a torrent to be alive or active it must have several key components to function.
These components include a tracker server, a .torrent file, a web server where the .torrent file is stored and a complete copy of the file being exchanged.
The first step in the BitTorrent exchange occurs when a peer downloads a .torrent file from a server.
The role of .torrent files is to provide the metadata that allows the protocol to function.
The .torrent files contains :
The URL of the tracker
Pieces <hash1, hash 2, , hash n>
Piece length
Name of the file
Length of the file
When a .torrent file is opened by the peer s client software, the peer then connects to the tracker server responsible for coordinating activity for that specific torrent.
BitTorrent: publishing a file
Architecture of BitTorrent
The BitTorrent protocol can be split into the following five main components:
Metainfo File - a file which contains all details necessary for the protocol to operate.
Tracker - A server which helps manage the BitTorrent protocol.
Peers - Users exchanging data via the BitTorrent protocol.
Data - The files being transferred across the protocol
Architecture of BitTorrent
Client - The program which sits on a peers computer and implements the protocol
Peers use TCP to communicate and send data
A tracker uses HTTP/HTTPS service and typically works on port 6969.
BitTorrent clients communicate with the tracker using HTTP GET requests, which is a standard CGI method.
BitTorrent uses ports 6881-6889 to send messages and data between peers.
Tracker
Piece Selection
There are three stages of piece selection, which change depending on which stage of completion a peer is at.
Random First Piece
When downloading first begins, as the peer has nothing to upload, a piece is selected at random to get the download started. Once this happens, the 'rarest first' strategy begins.
Rarest First
When a peer selects which piece to download next, the rarest piece will be chosen from the current swarm.
Piece Selection
End-game mode:
When requests sent for all sub-pieces, (re)send requests to all peers.
To speed up completion of download
Cancel request for downloaded sub-pieces
Tit-for-tat as incentive to upload
Want to encourage all peers to contribute
Peer A said to choke peer B if it (A) decides not to upload to B
Each peer (say A) unchokes at most 4 interested peers at any time
The three with the largest upload rates to A
Where the tit-for-tat comes in
Another randomly chosen (Optimistic Unchoke)
To periodically look for better choices
Simple example
Conclusion
BitTorrent pioneered mesh-based file distribution that effectively utilizes all the uplinks of participating nodes.
BitTorrent is a well thought-out protocol that embraces aspects of cooperation and self-optimizing mechanisms.
BitTorrent propose solutions for current optimization and scalability problems