a p2p file distribution system ——bittorrent pegasus team cmpe 208
TRANSCRIPT
A P2P file distribution system ——BitTorrent
Pegasus Team
CMPE 208
Outline
• 1 What is it
• 2 Why do we need BitTorrent
• 3 Architecture And Operation
• 4 Why does it work so well
• 5 Strengths & Shortcomings
• 6 Conclusion
Overview
• Peer 2 Peer File transfer Protocol
• Works over public Internet.
• Critical components – Web Server (MetaInfo Server)– MetaData file (.torrent)– Central Tracker– End User Peers
Critical Elements
• 1 A web server– To provide the ‘metainfo’ file by HTTP– For example:
• http://my.torrentInfo.net• http://smashhitsongs.com/
Web Server
Snakes on the Plane torrent
US open final torrent
Critical Elements
• 2 The .torrent file– Static ‘metainfo’ file to contain necessary infor
mation :• Name• Size• Checksum• IP address of the Tracker
Matrix.torrent
Critical Elements
• 3 A BitTorrent tracker– Non-content-sharing node– Track peers– For example:
• http://my.moviestracker.com:8080/announce• http://games.records.org:6969/announce
Critical Elements
• 4 An end user (peer)– Guys who want to use BitTorrent must install
corresponding software or plug-in for web browsers.
– Downloader (leecher) : Peer has only a part ( or none ) of the file.
– Seeder: Peer has the complete file, and chooses to stay in the system to allow other peers to download
Outline
• 1 What is it
• 2 Problem And BitTorrent Solution
• 3 Architecture And Operation
• 4 Why does it work so well
• 5 Strengths & Shortcomings
• 6 Conclusion
Problems
• Traditional Client/Server Sharing– Performance deteriorates rapidly as the
number of clients increases
• Free-riding in P2P network – Free riders only download without
contributing to the network.
BitTorrent
• Scalability of BitTorrent is very good. Even more peers means better performance.
• Strong incentives to prevent free-riding.– Priority downloading– High availability of downloads
Outline
• 1 What is it
• 2 Why do we need BitTorrent
• 3 Architecture And Operation
• 4 Why does it work so well
• 5 Strengths & Shortcomings
• 6 Conclusion
Connectivity
`
Web ServerJohn Doe
Tracker
Matrix.torrent
User
UserUser
User
Downloader:Joe
Seeder:Mike
Downloader:Michelle
Piece
• A file is cut into pieces of fixed size, typically 256Kb
• Each downloader reports to all of its peers what pieces it has.
• To verify data, Hash codes are used for all the pieces, included in .torrent files.
A trivial example
User
User
Seeder:John
DownloaderMike
{1,2,3,4,5,6,7,8,9,10}
{}{1,2,3}User
DownloaderJoe
{}{1,2,3}
{1,2,3,4}
{1,2,3,5}
{1,2,3,4,5}
Messages
• Peer – Peer messages– TCP Sockets
• Peer – Tracker messages – HTTP Request/Response
• B-encoding– The "B" encoding is identical to the "BASE64"
encoding defined by RFC 1521.
Tracker Function
• Peer cache– IP, port, peer id
• State information– Completed– Downloading
• Returns random list
Peer Functions
• File space allocated• Connect to peers• Bitfield
– have(1) and not have(0)• Have <piece>
– Advertise pieces• Interest /Not_interested
– Expressing interest in the pieces published by the peer
• Requesting for a chunk– Request <index, offset, length>
Outline
• 1 What is it
• 2 Why do we need BitTorrent
• 3 Architecture And Operation
• 4 Why does it work so well
• 5 Strengths & Shortcomings
• 6 Conclusion
Peer Selection
• Built-in incentive mechanism (where all the magic happens):– Choking Algorithm– Optimistic Unchoking– Anti-snubbing
Choking Algorithm
• Choking is a temporal refusal to upload
• Choking evaluation is performed every 10 seconds.
• Each peer unchokes a fixed number of peers (default = 4)
• The decision on which peers to un/choke is based solely on download rate, which is evaluated on a rolling, 20-second average
Reasons for Choking
• TCP congestion control.
• To ensure the peers to get a consistent download rate.
User
User
Joe
mike
ChokedChoked
Optimistic Unchoking
• a BitTorrent peer has a single ‘optimistic unchoke’ which is uploaded regardless of the current download rate from it. This peer rotates avery 30s
• Reason:– To discover currently unused connections are
better than the ones being used
Anti-snubbing
• When a peer received no data in 60s, we assume it is choked by all other peers, and refuse to upload to it except for the optimistic unchoking.
• Reason– It may cause several concurrent optimistic un
chokes.
Example
mikeUser
User
User
Downloader:Albert
Downloader:Rob
User
Downloader:Ron
User
Downloader:Kelly
40kb/s
30kb/s10kb/s
100kb/s
20kb/s
70kb/s
15kb/s
10kb/s
70kb/s
110kb/s
70kb/s
5kb/s
DownloaderJoe
User
Strengths
• Better bandwidth utilization– Never before speeds.
• Up to 7 MB/s from the Internet.
• Limit free riding – tit-for-tat
• Limit leech attack – coupling upload & download
• Spurious files not propagated
• Ability to resume a download
Shortcomings
• Small files – latency, overhead• Random list of peers - naive• Scalability
– Millions of peers – Tracker behavior (uses 1/1000 of bandwidth)
– Single point of failure
• Robustness– System progress dependent on altruistic nature of
seeds (and peers)– Malicious attacks and leeches.
Conclusion
• 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
References
• [1] Bram Cohen, Incentives build robustness in Bittorrent, May 2003• [2] Stefan Saroiu, P. Krishna Gummadi, Steven D. Gribble, A
Measurement Study of Peer-to-Peer File sharing Systems, Jan 2002
• [3] Bram Cohen, Bitconjurer.org, BitTorrent Protocol Specification • [4] J R. Douceur, The Sybil Attack• [5] A W Tucker, Prisoner’s Dilemma, Serendip.com• [6] V Vishnumurthy, S Chandrakumar, EG Sirer, KARMA : A
Secure Echonomic Framework for Peer-to-Peer Resource Sharing.• [7] E. Adar and B.A. Huberman, Free Riding on Gnutella.• [8] www.kazaa.com