Recall that BitTorrent uses a choking mechanism to allocate bandwidth to peers. It “unchokes” four peers who have given it the best download performance (tit-for-tat), plus one of the remaining peers chosen at random (optimistic unchoking). The choice of four best peers, as well as the random choice are changed every 30 seconds.
Suppose Bob joins a BitTorrent swarm with 50 other peers. Let each peer, including Bob, have an upload speed of 1 M bps and unlimited download speed. Consider what happens in the phase of the protocol where for each pair of peers A and B, A has some blocks that B wants and vice versa; i.e, any peer can productively download data from any other peer.
(a) Suppose Bob wants to upload no data; i.e., be a free rider. What will be his average download speed?
(b) What will be the average download speed of each of the other peers?
(c) Suppose that Bob runs a second client that pretends to be a separate peer, who also becomes a free rider. How fast can Bob download data now?
(d) Suppose Bob switches his two clients to the regular BitTorrent code and they both start uploading as well. What kind of aggregate download performance can he expect then?