To seed or not to seed? The torrenter’s dilemma
Many of us are familiar with “torrenting.” Torrenting in our everyday usage means to download a file (movie, music, games…) from online by using a torrenting application such as utorrent. In a wider sense, torrents can be categorized as “ad hoc networks.” Ad hoc (meaning “for this” in latin) networks are different from the networking schemes that we know such as WiFi and router connection in that the network is sustained not by an existing infrastructure but by participation of nodes receiving and sending data among themselves. So a data in a torrenting network can exist because a node in the network has the data. A node that has the whole chunk of data in the network and is sharing it to other nodes is called a seeder. A node that is receiving a particular data from a source is called a leecher. A node that has parts of a data (but not the complete chunk) is called a peer, and a peer downloads parts of the data that it lacks from the seeder while it sends parts of data that it has to other leechers. A file always starts with one seeder (the original uploader). When the seeder stops seeding, for other nodes to get the whole data there needs to be at least one whole copy of the data, either completely in one node (a new seeder) or in fragments, distributed among peers. So it is obvious that seeding is crucial to the network’s survival; without it, the network will stop functioning as it will not have working data. Then, the obvious solution would be for everyone/every node to upload (seed) data, right?
It is never that simple. When nodes (people) request data, it is obvious that they would want the whole chunk of the data, and they would probably want to receive the data as fast as possible. Uploading, however, might hurt the download speed (think of it as a “stream” with fixed capacity–if more capacity is used for uploading, there would be less left for downloading). We can explain this situation with game theory and Nash equilibrium. Let’s say that we have 3 users, user 1, 2, 3. Although we have mostly seen 2 X 2 payoff matrices, we can show this situation by making two separate payoff matrices, one for when User 3 decides to share his/her data, and one for when he/she does not.
Here we see the payoff values. If a user shares while other users do not share, he/she gets negative payoff and the user that does not share gets positive payoff (more download speed, enhanced even more when there are two users sharing and only one downloading). There is only one Nash equilibrium in this case: when all users do not share. However this is far from optimal–the better option would be to have everyone to share and to get a maximum net payoff of 1.5. Plus, if the network stayed at Nash equilibrium–if no one decided to share–the network would die as there cannot be any more flow of data.
This is very similar to the prisoner’s dilemma, and one way to facilitate the network may be similar to a “tit-for-tat” approach, where the users/nodes react to what the node requesting the share responded before. Also, the person who monitors the network (called a tracker) may enforce sharing rules to make a mixed equilibrium strategy more efficient.
Game theory seems to be very effective in explaining many network models, including torrents. Next time when you download something from the torrent, think about it. Don’t forget to seed!
The article (paper) I read is from
http://www.omidi.iut.ac.ir/SDR/2007/WebPages/07_GameTheory/papers/Srivastava_IEEE_commsurvey_finalversion.pdf


