P2P Content Distribution BitTorrent and Spotify
Amir H. Payberah
amir@sics.se
Amirkabir University of Technology (Tehran Polytechnic)
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 1 / 62
P2P Content Distribution BitTorrent and Spotify Amir H. Payberah - - PowerPoint PPT Presentation
P2P Content Distribution BitTorrent and Spotify Amir H. Payberah amir@sics.se Amirkabir University of Technology (Tehran Polytechnic) Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 1 / 62 Amir H. Payberah (Tehran
Amir H. Payberah
amir@sics.se
Amirkabir University of Technology (Tehran Polytechnic)
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 1 / 62
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 2 / 62
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 3 / 62
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 4 / 62
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 5 / 62
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 6 / 62
◮ Scalability?
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 7 / 62
◮ Scalability? ◮ Single Point of failure?
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 7 / 62
◮ Scalability? ◮ Single Point of failure?
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 7 / 62
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 8 / 62
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 9 / 62
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 10 / 62
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 11 / 62
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 12 / 62
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 13 / 62
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 14 / 62
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 15 / 62
◮ Churn in the system ◮ Free-riding problem ◮ Bottleneck in the overlay network ◮ Connectivity problem, e.g., NAT
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 16 / 62
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 17 / 62
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 18 / 62
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 19 / 62
◮ Central directory
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 20 / 62
◮ Flooding
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 21 / 62
◮ Distributed Hash Table (DHT)
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 22 / 62
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 23 / 62
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 24 / 62
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 25 / 62
◮ BitTorrent is a system for efficient and scalable replication of large
amounts of static data.
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 26 / 62
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 27 / 62
◮ Files are broken into pieces of size between 64KB and 1MB.
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 28 / 62
◮ Metadata ◮ Contains:
e.g., filename, length, ...
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 29 / 62
◮ A peer obtains .torrent file.
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 30 / 62
◮ A peer obtains .torrent file. ◮ It, then, connects to the tracker.
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 30 / 62
◮ A peer obtains .torrent file. ◮ It, then, connects to the tracker. ◮ The tracker tells the peers from
which other peers to download the pieces of the file.
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 30 / 62
◮ A peer obtains .torrent file. ◮ It, then, connects to the tracker. ◮ The tracker tells the peers from
which other peers to download the pieces of the file.
◮ Peers use this information to communicate with each other.
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 30 / 62
◮ A peer obtains .torrent file. ◮ It, then, connects to the tracker. ◮ The tracker tells the peers from
which other peers to download the pieces of the file.
◮ Peers use this information to communicate with each other. ◮ The peers send information about the file and themselves to tracker.
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 30 / 62
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 31 / 62
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 32 / 62
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 33 / 62
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 34 / 62
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 35 / 62
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 36 / 62
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 37 / 62
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 38 / 62
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 39 / 62
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 40 / 62
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 41 / 62
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 42 / 62
◮ From which peers download the pieces?
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 43 / 62
◮ Use choking algorithm to choose peer to download pieces. ◮ Decision to choke/unchoke based on tit-for-tat.
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 44 / 62
◮ Optimistic unchoking ◮ Allocate an upload slot to a randomly chosen uncooperative peer
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 45 / 62
◮ If all its peers choke it. ◮ Increase the number of optimistic unchokes.
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 46 / 62
◮ Which piece?
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 47 / 62
◮ Rarest first: common parts left for later
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 48 / 62
◮ Rarest first: common parts left for later ◮ Random first piece: start-up need to get a complete piece
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 48 / 62
◮ Rarest first: common parts left for later ◮ Random first piece: start-up need to get a complete piece ◮ Endgame mode: broadcast for all remaining blocks
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 48 / 62
◮ Distributed tracker ◮ Peer-exchange
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 49 / 62
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 50 / 62
◮ Active users: over 50 million ◮ Number of songs: over 20 million ◮ Number of songs added per day: over 20000 ◮ Number of playlists: over 1.5 billion created so far ◮ Available in 58 countries ◮ Legal
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 51 / 62
◮ Request first piece from Spotify servers.
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 52 / 62
◮ Request first piece from Spotify servers. ◮ Meanwhile, search P2P network for remainder.
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 52 / 62
◮ Request first piece from Spotify servers. ◮ Meanwhile, search P2P network for remainder. ◮ Switch back and forth between Spotify servers and peers as needed.
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 52 / 62
◮ Request first piece from Spotify servers. ◮ Meanwhile, search P2P network for remainder. ◮ Switch back and forth between Spotify servers and peers as needed. ◮ Towards end of a track, start prefetching the next one.
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 52 / 62
Peer Discovery
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 53 / 62
◮ Sever-side tracker (BitTorrent style)
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 54 / 62
◮ Sever-side tracker (BitTorrent style)
◮ Broadcast query in small (2 hops) neighborhood in overlay (Gnutella
style)
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 54 / 62
◮ Sever-side tracker (BitTorrent style)
◮ Broadcast query in small (2 hops) neighborhood in overlay (Gnutella
style)
◮ LAN peer discovery
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 54 / 62
◮ Ask for most urgent pieces first.
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 55 / 62
◮ Ask for most urgent pieces first. ◮ If a peer is slow, re-request from new peers.
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 55 / 62
◮ Ask for most urgent pieces first. ◮ If a peer is slow, re-request from new peers. ◮ When buffers are low, download from central server as well.
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 55 / 62
◮ Ask for most urgent pieces first. ◮ If a peer is slow, re-request from new peers. ◮ When buffers are low, download from central server as well. ◮ If buffers are very low, stop uploading.
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 55 / 62
◮ One (well, three) P2P overlay for all tracks (not per-torrent).
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 56 / 62
◮ One (well, three) P2P overlay for all tracks (not per-torrent). ◮ Does not inform peers about downloaded blocks.
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 56 / 62
◮ One (well, three) P2P overlay for all tracks (not per-torrent). ◮ Does not inform peers about downloaded blocks. ◮ Downloads blocks in order.
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 56 / 62
◮ One (well, three) P2P overlay for all tracks (not per-torrent). ◮ Does not inform peers about downloaded blocks. ◮ Downloads blocks in order. ◮ Does not enforce fairness (such as tit-for-tat).
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 56 / 62
◮ One (well, three) P2P overlay for all tracks (not per-torrent). ◮ Does not inform peers about downloaded blocks. ◮ Downloads blocks in order. ◮ Does not enforce fairness (such as tit-for-tat). ◮ Informs peers about urgency of request.
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 56 / 62
◮ Player caches tracks it has played. ◮ Use 10% of free space (capped at 10GB) ◮ Least Recently Used policy for cache eviction. ◮ Over 50% of data comes from local cache.
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 57 / 62
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 58 / 62
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 59 / 62
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 60 / 62
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 61 / 62
Amir H. Payberah (Tehran Polytechnic) P2P Content Distribution 1393/8/27 62 / 62