What is DonateBandwidth?


Building on our experience with the Poor Man's Broadband system, we are currently developing systems for users in the developing-world to share their unused bandwidth to accelerate download for other users.


Just as systems such as SETI@Home and OceanStore permit users to share their computing cycles and storage space with others on the Internet, DonateBandwidth.net permits sharing of unused Internet bandwidth (which is much more valuable in the developing-world compared to computing cycles or disk space). Our system is based on the key observation that very little traffic originating from the developing-world is served from the Internet Caches present in the country. As a consequence, the expensive and scarce upstream International link is used considerably more than is necessary. Our studies show that this is often due to two reasons in countries like Pakistan: (1) there is often no proper IXP and only a single monopoly upstream ISP that is focused solely on packet transit, (2) there is often a plethora of small ISPs, frequently with limited, and invariably mis-configured, caches. Therefore, typically very little data is cached in a developing country and there is no sharing of content between users of different ISPs.


Our system, dubbed DonateBandwidth.net, has two key components: (1) An ISP-independent web p2p cache that consolidates and enables sharing of data across users of different ISPs, and (2) a forward-caching architecture that enables users to donate their unused bandwidth by "forward populating" an ISP cache for other users. Forward caching is implemented by broadcasting a file download request to other users of the ISP willing to donate bandwidth. Donating nodes initiate download of non-overlapping chunks of the requested file such that the ISP cache is pre-populated with the file chunks by the time the low-bandwidth client starts downloading them. Viewed differently, forward-caching permits users of an ISP to collaborate with each other to aggressively exploit the limited (temporal) ISP cache to speed-up downloads for each other. Once downloaded, the data is also cached by the participating clients such that future requests for download may be served locally by a p2p transfer.


Related Work


The role of DonateBandwidth.net is analogous to caching and content distribution networks (CDNs) in the developed countries. For instance, DonateBandwidth.net's goal of caching data close to the user is similar to the vision of a CDN like Akamai or CoralCDN. However, while Akamai replicates Web content to avoid "hotspots" on the Internet, DonateBandwidth's is designed to cache data within a developing country to minimize the use of the expensive International Internet link. Moreover, while Akamai is a paid service, used by content providers to replicate their data closer to users, DonateBandwidth.net is a voluntary service that empowers people to donate their unused bandwidth to those with lower bandwidth.


The role of DonateBandwidth.net as a consolidated country-wide cache is analogous to the role played by companies like Inktomi during the explosive growth of the Web in late 90s in US. At that time, it was estimated that between 30-50% of the traffic flowing through the ISPs in US was "redundant", in that the data requested by a user had already been downloaded by another user, but had to be fetch againe from the original server due to the lack of a consolidated Internet cache across ISPs.


At the time, Inktomi, for instance, cached one third of all the data accessed by users in the US to afford enhanced download speeds and shorter download latencies. DonateBandwidth.net is aimed at playing a similar role in the developing-world.


Initial Results


Our initial experiments have revealed that by and large all ISPs in Pakistan rate limit the users, even when there is spare upstream bandwidth, and have extremely small caches, if any. As anecdotal evidence, a large ISP with 80,000 users had a cache of less than 30GB (essentially one P4 server), which is usually overwritten within 4-6 hours.


With DonateBandwidth.net's forward caching scheme, users with higher speed Cable connections were able to donate bandwidth to dialup users by pre-populating the (small) cache with data currently downloaded by dialup users. As a result, a dialup host, which would have received between 15-20kbps if it had accessed data over the Internet, was able to download a large fraction of the file (~80%) at modem-speed (~56kbps) from the ISP cache.


Status


We have an initial prototype, built using the open source Squid proxy cache. We are using this system for our experimentation with ISPs in Pakistan. At this point, we are developing our p2p cache sharing system and are looking at existing open-source solutions such as Coral CDN for building the p2p caching layer.


How can I contribute?


Currently we care conducting research and developing the software. We will be looking for volunteers for testing and using the software once it in beta version. If you want to be updated when it is available for you to download, kindly send an email to donatebandwidth at gmail dot com.