Cooperative Download

In short, with Tribler you can donate unused upload capacity to your friends.

Early downloading protocols (e.g., Gnutella) have no incentives for donating upload bandwidth. This approach has serious limitations in real environments, because unconstrained bandwidth sharing is sensitive to freeriding. The Bittorrent tit-for-tat mechanism was the first system which offered an incentive for uploading. The current Bittorrent mechanism also has its disadvantages, because without enough seeding peers, the download speed of a peer depends on its actual contribution to the community. In real systems this is overly restrictive, as Bittorrent's tit-for-tat bartering protocol limits a peer's effective download bandwidth to its upload link capacity. Hence, peers with asymmetric Internet access, such as ADSL or ADSL-2, cannot fully use their download capacity.

We have developed a new cooperative downloading protocol which makes use of social groups, where members who trust each other cooperate to improve their download performance. Peers from a social group that decide to participate in a cooperative download take one of two roles: they are either collectors or helpers (see Figure 1). A collector is the peer that is interested in obtaining a complete copy of a particular file, and a helper is a peer that is recruited by a collector to assist in downloading that file. Both collector and helpers start downloading the file using the classical Bittorrent tit-for-tat and cooperative download extensions. Before downloading, a helper asks the collector what chunk it should download. After downloading a file chunk, the helper sends the chunk to the collector without requesting anything in return. In addition to receiving file chunks from its helpers, the collector also optimizes its download performance by dynamically selecting the best available data source from the set of helpers and other peers in the Bittorrent network. Helpers give priority to collector requests and are therefore preferred as data sources.