Incentives Build Robustness in BitTorrent Author: Bram Cohen Presenter: Brian Liao
About Bram Cohen Live in Berkeley Only publish one paper: Noise Strategies for Local Search Interest : Complexity theory Multi-agent systems Usability
What is BitTorrent? New file-sharing strategy: Minimize the file hosting cost Increase scalability
Traditional File Hosting
BitTorrent Strategy
Technical Framework Publishing Content Peer Distribution Pipelining Piece Selection
Technical Framework Publishing Content Peer Distribution Pipelining Piece Selection
Publishing Content Distribute.torrent file over the web. Contains file info, name, hash info, url for a tracker
Technical Framework Publishing Content Peer Distribution Pipelining Piece Selection
Peer Distribution Standard tracker algorithm will return a random list of peers. cut files into pieces of fixed size for easy bookkeeping
Technical Framework Publishing Content Peer Distribution Pipelining Piece Selection
Pipelining Avoid delay between pieces so a pipeline is required. Further breaking pieces into sub- pieces (usually 16 kilobytes) to put in the pipeline. Usually 5 sub-pieces pipelined at once.
Technical Framework Publishing Content Peer Distribution Pipelining Piece Selection
Piece Selection Strict Priority Rarest First Random First Piece Endgame Mode
Strict Priority Finish complete piece as quickly as possible
Rarest First Download pieces which all others want Better performance Prevent rarest piece missing
Randnom First Piece & Endgame Mode Random First Piece For the initial stage of download Endgame Mode Multiple requests for sub-pieces to prevent delay.
Choking Algorithms Punishment to selfish users Utilize available resources & provide consistent service
Pareto Efficiency Def: no two parties can exchange resource and make both happier. Local optimization –> global optima
Choke & Unchoke Purely based on download rate Every 10 seconds calculate who to choke Unchoke limit is 4
Optimistic Unchoking Discover unused connection Rotate every 30 seconds
Upload only After finish download, only upload to high upload rate users.
My thought on implementing a price scheme for BT DC: download charge Static price base on content or fixed per download fee SC: service charge Negatively proportion to the contribution to the network. Goal: encourage more seeds
Price Paid = DC + SC DC Price paid Finish download
Price Measurement Local measurement Periodically report to host