菊花电器公司:专为低带宽环境设计的BT客户端

来源:百度文库 编辑:九乡新闻网 时间:2024/04/29 14:38:35

在宽带普及的国家,BT一般能占到总流量的70%;但在低带宽的拨号连接网络,BT流量却不到10%。许多发展中国家还没有普及宽带,伯克利和美国国务院资助了名为BitMate的BT客户端开发,优化低带宽环境中下载和上传的性能。

BitMate兼容BitTorrent协议,基于azureus(Vuze)代码库,修改了底层机制(GPL),没有改动UI或Vuze平台相关代码。在低带宽环境下,BitMate的下载速度能提高一倍,上传速度比其它BT客户端相比能提高数十乃至上百倍;在高带宽环境下,BitMate不逊于其它客户端。

BITMATE - BITTORRENT FOR THE LESS PRIVILEGED

BitTorrent is a hugely popular peer-to-peer file sharing system. In countries where broadband Internet is widespread, BitTorrent accounts for as much as 70% of the overall Internet traffic. In contrast, in developing countries, BitTorrent is almost unusable on the typically low bandwidth dialup connections and accounts for less than 10% of the overall traffic. 

BitMate is designed to enhance the performance of hosts with low-bandwidth connections. Importantly, BitMate enhances the performance of low-bandwidth nodes without cheating, circumventing the fairness policy of BitTorrent or adversely affecting the performance of other peers. 

BitMate outperforms vanilla BitTorrent by as much as 70% in download performance, while at the same time improving upload contribution by as much as 1000%! BitMate also outperforms strategic clients like BitTyrant in low-bandwidth conditions by as much as 60% in download performance (without cheating).

BITMATE CLIENT

BitMate is a BitTorrent client fully compliant with the BitTorrent protocol and compatible with existing BitTorrent clients. BitMate is implemented using azureus (Vuze) code base. We have subtly changed the underlying mechanism (GPL'ed) without changing the UI or the codebase that deals with the Vuze platform. 

BitMate is designed to specifically improve the performance of low-bandwidth peers (5-20 KB/sec); in our target conditions, Bitmate can almost double your download performance. At the same time, it performs at least as well as the traditional BitTorrent clients for high-bandwidth peers (but you'll see most performance benefit for low-bandwidth peers in the developing-world).

DESIGN

A BitMate client achieves good performance under low-bandwidth conditions by the following key design principles:

  • Minimize Wasted Goodwill:

    A BitMate client minimizes "wasted" goodwill. Instead of trying to earn goodwill from high-bandwidth nodes, which rarely reciprocate due to a bandwidth mismatch, a BitMate client utilizes its limited bandwidth to earn goodwill with other low-bandwidth peers with which it can establish the most mutually beneficial tit-for-tat connections. As a result, low-bandwidth clients talk to each other more often, helping each other download faster. In doing so, BitMate clients also reduce the arbitrage between their upload and download bandwidth, minimizing the element of free-riding associated with low-bandwidth peers.

  • Don't Compete Unnecessarily:

    Instead of competing with each other to download the same blocks from high-bandwidth peers, BitMate clients download distinct blocks of a file (that other low-bandwidth nodes have not already downloaded) from high bandwidth peers. This improves performance since low-bandwidth clients download from (reluctant) high-bandwidth peers only when necessary. In essence, by avoiding competition for the same blocks, low-bandwidth BitMate clients "pool" their bandwidth when talking to high bandwidth clients. This also improves fairness since it minimizes the data gratuitously downloaded by low-bandwidth clients from higher bandwidth peers -- instead encouraging mutually beneficial tit-for-tat connections between matching low-bandwidth peers.

  • Avoid Redundant Downloads:

    A BitMate client is watchful when downloading data from other clients and only downloads from those peers that have it unchoked at the time of download. As a result, a low-bandwidth BitMate node makes faster progress in stringing together a piece and avoids redundant downloads due to "premature chokes" by higher bandwidth peers. This also reduces the element of free riding by not downloading from nodes that have choked a low-bandwidth node.

  • Share Aggressively:

    A BitMate client does not wait for a piece to download completely before sharing it with other peers. Instead, BitMate implements pipelined uploads to enable uploading by low-bandwidth clients that are otherwise struggling to string together a piece in the face of repeated chokes by other peers. As a result, a BitMate client can start earning goodwill with other peers (by uploading blocks of a piece) quickly while traditional clients are struggling to string together a piece before starting upload

  • Minimize Cross-ISP Traffic:

    BitMate is designed to minimize cross-ISP traffic without adversely affecting the performance of a low-bandwidth client. However, unlike previous work like Ono, which bias peer selection solely based on the proximity of the peers, BitMate matches peer locality as well as bandwidth. The goal of our work is not to find local peers that may offer better bandwidth due to better path properties, but to find bandwidth-matched peers that may also help reduce congestion on the upstream link of a developing-world ISP.

Overall, a low-bandwidth BitMate client prefers stable, bandwidth-matched peers over the greedy strategy of vanilla BitTorrent. Instead of wasting optimistic unchokes on high bandwidth peers, a BitMate client optimistically unchokes those peers that have a similar low-bandwidth. As a result, a BitMate client invests its scarce upload bandwidth on peers that are most likely to reciprocate. At the same time, BiTMate leaves the tit-for-tat reciprocal unchoke policy untouched to uphold the fairness of BitTorrent. This leads to both increased performance and fairness since low-bandwidth clients can quickly form mutually beneficial peer-to-peer connections.


DOWNLOAD LINK

BitMate






z