1. Bittorrent
A peer to peer file sharing
protocol
Bittorrent
A peer to peer file sharing
protocol
BY: Parth Akbari (74)
2. Abstract
BitTorrent is the name of a peer-to-peer (P2P) file
distribution protocol, and is the name of a free software
implementation of that protocol.
The protocol was originally designed and created
by programmer Bram Cohen, and is now maintained by
BitTorrent Inc.
BitTorrent is designed to distribute large amounts of
data widely without incurring the corresponding consumption
in costly server And bandwidth resources.
The original BitTorrent client was written in Python.
Its source code, as of version has been released under the
BitTorrent Open Source License.
3. So what is Bittorrent?
Definition: Bittorrent is a peer to peer network protocol for
sharing files over the web.
Peer-to-peer: Users consume and provide resources directly
to other users in the network without the need of a central
entity.
Application layer: Works on top of the TCP layer
BitTorrent protocol: has been built on a technology which
makes it possible to distribute large amounts of data without
the need of a high capacity server, and expensive bandwidth.
5. What are its Terminology?
Client(Peers): Piece of computer software that
implements the Bittorrent protocol. Peers are nothing
but computers running a Bittorrent client.
Tracker: Server that established the communication
between peers in the Bittorrent network. A tracker is
a HTTP/HTTPS service and typically works on port
6969.
Leeches : They are similar to peers in that they
won't have the complete file.
6. .Torrent : this refers to the small metadata file you
receive from the web server(the one that ends in
.torrent.) Metadata here means that the file contains
information about the data you want to download, not
the data itself.
Seed : A computer that has a complete copy of a
certain torrent. Once a client downloads a file
completely, he can continue to upload the file which is
called as seeding. This is a good practice in the
BitTorrent world since it allows other users to have the
file easily.
7. How does it work?
1. The file provider(seed) makes the file
available on the network.
2. Peers make requests for the file.
3. Peers get pieces of the file on a rarest first
basis.
4. Peers make pieces that were already
downloaded available to other peers while
downloading missing pieces
5. Once a peer has all the parts that make the
file if will become a seed.
8. Can I see?
* The image is taken for study purpose : http://en.wikipedia.org/wiki/BitTorrent_%28protocol%29
In this animation, the colored
bars beneath all of the 7 clients
in the animation above
represent the file, with each
color representing an individual
piece of the file. After the initial
pieces transfer from the seed
(large system at the bottom),
the pieces are individually
transferred from client to client.
The original seeder only needs
to send out one copy of the file
for all the clients to receive a
copy.
16. HTTP vs. Bittorrent
Terminology HTTP Bittorrent
File Transfer Single Stream Random parts
Streaming Specific order Random
Uplink Depends on server
bandwidth
Seeder Bandwidth
Redundancy Not Redundant Redundant
Server Load Complete load Distributed load
Encryption HTTPS Message Stream
Encryption
Resume Capability Limited Depends on Seeders
17. Network Impact?
Cable Labs estimates that 18% of all broadband
traffic happens through the Bittorrent Protocol.
Cache Logic did a study in 2004 where it concluded
that as much as 35% of all internet traffic was carried
using the Bittorrent protocol.
The protocol also offers a challenge for network
routers that use Network Address Translation (NAT).
Most routers keep a 2000 records table while
Bittorrent client can easily make 300-500 requests per
second.
18. Conclusion
BTP may be The Next Version of
Downloading Methodology
Works on Concept of Distributing data Load
over the Users.
Peers use TCP (Transport Control Protocol) to communicate and send data. This protocol is preferable over other protocols such as UDP (User Datagram Protocol) because TCP guarantees reliable and in-order delivery of data from sender to receiver. UDP cannot give such guarantees, and data can become scrambled, or lost all together. The tracker allows peers to query which peers have what data, and allows them to begin communication. Peers communicate with the tracker via the plain text via HTTP (Hypertext Transfer Protocol) The following diagram illustrates how peers interact with each other, and also communicate with a central tracker.
info: a dictionary that describes the file(s) of the torrent. There are two possible forms: one for the case of a 'single-file' torrent with no directory structure, and one for the case of a 'multi-file' torrent (see below for details)
announce: The announce URL of the tracker (string)
announce-list: (optional) this is an extention to the official specification, offering backwards-compatibility. (list of lists of strings).
The official request for a specification change is here.
creation date: (optional) the creation time of the torrent, in standard UNIX epoch format (integer, seconds since 1-Jan-1970 00:00:00 UTC)
comment: (optional) free-form textual comments of the author (string)
created by: (optional) name and version of the program used to create the .torrent (string)
encoding: (optional) the string encoding format used to generate the pieces part of the info dictionary in the .torrent metafile (string)