Seminar on : A Peer-to-peer Network System Presented By : Chirodeep Das. BCSE-IV. Roll-000810501008. Jadavpur University.
Introduction Why “BitTorrent”? Traditional Client-server System Peer to peer network system What is “ BitTorrent ”? BitTorrent components How BitTorrent works? Pictorial explanation on the Working Piece Selection Mechanisms Advantages Some Facts Conclusion References
BitTorrent is a peer to peer (P2P) file transferring system and was designed in April 2001 by Brahm Cohen and then maintained by Cohen’s company BitTorrent, Inc. Unlike other traditional download methods, BitTorrent maximizes transfer speed by locating the pieces of the file you want and downloading these pieces simultaneously from people who already have them. This process makes popular and very large files download much faster . This is more popular and efficient file transferring system than the traditional client – server system.
Client-server computing or networking is an application architecture that partitions the work loads between service providers (servers) and service requesters, called clients. Millions want to download the same popular huge files 1. Softwares 2. Media (the real example!) You open a Web page and click a link to download a file to your computer. The Web browser software on your computer (the client) tells the server (a central computer that holds the Web page and the file you want to download) to transfer a copy of the file to your computer. The transfer is handled by a protocol (a set of rules), such as FTP (File Transfer Protocol) or HTTP (Hypertext Transfer Protocol).
Client-server model fails if Single server fails or Can’t afford to deploy enough servers Another issue is huge Traffic Overload in the server(s) which is the central point of failure.
BitTorrent is a peer-to-peer file sharing protocol allowing users to distribute large amounts of data without putting the level of strain on their computers that would have been needed for standard Internet hosting. Peer-to-peer file sharing is different from traditional file downloading. In peer-to-peer sharing, you use a software program (rather than your Web browser) to locate computers that have the file you want to download. Because these are ordinary computers like yours, as opposed to servers;they are called peers.
tracker Peer Each peer is directly connected to other peer. The file to be transferred is divided into equal size of pieces. Peer uploads the pieces it has while downloads any piece it can get from other peers. These pieces are downloaded from different peers parallely. It is used for large file transfer.
No central point of failure ✓E.g. the internet & the web do not have a central point of failure. ✓Most internet & web services use the client-server model (e.g. HTTP) so a specific service does have a central point of failure.Scalability ✓Since every peer is alike, it is possible to add more peers to the system and scale to larger networks.
Like most Internet phenomena, Bit Torrenthas its own jargon. Some of the most common termsrelated to BitTorrent include: BitTorrent Client Software .torrent file or METAinfo file Leechers Peers Seeds Swarm Tracker Piece (of a file) Torrent index server
Client S/W – program which resides on a peers’ computer and implements the BitTorrent protocol. It controls all operations such as : reads information present in the .torrent file. After reading .torrent file it sends message to tracker to send the list of peers and then it connects to peers. It keeps all record of the file which is receiving.
It has extension as .torrent and downloaded from torrent index server. Contains the information that points to the actual file and the people who are sharing it. The main contents of the .torrent file are - Name/size/date for each .torrent file. # no. of pieces of each files. SHA-1 hash of each file for maintaining the data integrity. Trackers associated with that torrent.
These are the clients who have entire file. They upload pieces of the file to other peers. These are the clients who do not have the entire file. They upload the parts of file they have at the same time when they download other parts. These are the clients who are responsible for the file transfer. Peers = leechers + seeds. Downloading speed of any file using torrent depends on number of peers.
1 2 3 4 5 6 7 8 The file which is to be downloaded is divided into similar size of pieces. Several pieces are downloaded parallelly. Each piece is downloaded from different peers.
Tracker is the server that manages the BitTorrent file transfer process. It provides all list of peers which are associated with a particular torrent. These trackers are mentioned in the Metafile. Client S/W sends request to the tracker to send the list of peers and after getting the complete list of peers client s/w connects to the peers. The group of computers that are simultaneously sending (uploading) or receiving (downloading) the same file is called Swarm.
Source of .torrent files Torrent search engine
Initial seeder chops file into many pieces. Leecher first locates the .torrent file that directs it to a tracker, which tells which other peers are downloading that file. As soon as a leecher downloads pieces of the file, replicas of the pieces are created. More downloads mean more replicas are available. As soon as a leecher has a complete piece, it can potentially share it with other downloaders. Eventually each leecher becomes a seeder by obtaining all the pieces, and assembles the file. Finally it verifies the checksum using SHA-1.
1. Seeder generates a torrent file Uploads torrent to a web server. Seeder – A client sharing 100% of the shared file.
2. The seeder notifies the tracker that it is sharing the file described in the torrent file.
3. A leecher downloads the torrent file from some torrent index server. Leecher – client which has some parts and downloads the other parts of the shared file from the seeder.
4.The leecher (client) connects to the tracker(s) specified in the torrent metafile. The tracker returns a list of other peers who are sharing the file.
5. The leecher connects to its peers to retrieve pieces of the files.
A machine with a complete copy (the seed) can distribute incomplete pieces to Seed multiple peersPeers exchangedifferent pieces of As soon as the user hasthe file with one a piece of the file on hisanother until they machine, he canassemble a whole become a source of that piece to other peers, helping speed download
torrent: group oftracker: tracks peers peers exchangingin torrent; provides chunks of a filetracker list trading chunkstorrent index server: peersearch for torrents;provides .torrent file
The order in which pieces are selected by different peers is critical for good performance. If an inefficient policy is used, then peers may end up in a situation where each has all identical set of easily available pieces, and none of the missing ones. If the original seed is prematurely taken down, then the file cannot be completely downloaded! What are ―good policies?‖ Some piece(chunk) selection mechanisms are- Rarest Piece First General rule Random First Piece Special case, at the beginning Endgame Mode Special case, at the end
Initially, a peer has nothing to trade. So it is important to get a complete piece as early as possible. Policy is to select a random piece of the file and download it.
Determine the pieces that are most rare among your peers, and download those first. This ensures that the most commonly available pieces are left till the end to download. It also ensures that a large variety of pieces are downloaded from the seed.
Near the end, missing pieces are requested from every peer containing them. When the piece arrives, the pending requests for that piece are cancelled. This ensures that a download is not prevented from completion due to a single peer which has a slow transfer rate. Some bandwidth is wasted, but in practice, this is not too much.
Once download is complete, a peer has no download rates to use for comparison nor has any need to use them. The question is, which nodes to upload to? Policy: Upload to those peers with the best upload rate. This ensures that pieces get replicated faster, and new seeders are created fast.
BitTorrent is an open-source program that offers a spyware- and nuisance-free installation. Allows users to share large amounts of data in a short span of time. Discourages ―freeloading‖ or ―free riders‖ (those who only download but never upload) by rewarding the fastest uploaders. The more popular a file is — the more people want a copy of it — the faster it can be downloaded, because there are lots of replicas already present in the system.
Bit torrent is responsible for roughly 27-55% of all internet traffic and 45-78% of P2P traffic. As of 2011 bitTorrent has more than 100 million users and grater share of bandwidth than Netflix and Hulu combined. THE PIRATE BAY: Who in september 2008 had 69,12,029 visits and 21,40,325 unique visitors making it 109th most popular website Another popular torrent tracker isoHunt claims to have 9857 TB of data
BitTorrent is a great protocol with its huge potential to distribute large files very easily. Bit Torrent is conceived as a way of distributing large and popular file more quickly, efficiently, and reliably. As a P2P file sharing system BitTorrent is quickly becoming the method of choice for publishing and sharing large files across the internet.