DonateBandwidth works in much the same way but lets people share more than just large files. When users try to access a website or download a file, a DonateBandwidth program running on their machine checks first with the peer-to-peer cache to see if the data is stored there. If so, it starts downloading chunks of the file from peers running the same software, while also getting parts of the file through the usual Internet connection. The software could allow people in countries that have better Internet connections to donate their bandwidth to users in the developing world.
DonateBandwidth also manipulates an ISP’s cache. “Say a person with a dial-up connection wants to download a file,” Saif says. “When running DonateBandwidth, their computer starts downloading part of a file, while also sending a request for other DonateBandwidth users who have access through the same ISP, and whose computers have spare bandwidth, to trigger them to start downloading other parts of the same file.” The file is then loaded into the ISP’s cache, so it can be downloaded more quickly.
Saif compares the project to distributed computing schemes such as SETI@Home, which uses volunteers’ spare computer power to collaboratively analyze radio signals from space, looking for signs of intelligent life. “DonateBandwidth permits sharing of unused Internet bandwidth, which is much more valuable in the developing world, compared to computing cycles or disk space,” he says.
The more people who use DonateBandwidth within the same country, the more websites and files could be cached, freeing up the international link. In the developed world, “typical bandwidth savings due to caching are around 30 to 40 percent,” Saif says. The program is not publicly available yet, but Saif’s team is currently testing a proof-of-concept version and will collaborate with Eric Brewer and colleagues at the University of California, Berkeley, to implement it in Pakistan.
“In Pakistan and a lot of developing countries, they are building a good local network, but the international network is not very good,” says computer scientist Saman Amarasinghe of MIT. “Having a system like what [Saif] proposed is very valuable.”
“Misconfiguration of caches rings true with our experiences in Kenya and Ghana,” adds Tariq Khokar of Aptivate, a nonprofit group in Cambridge, U.K., that works on improving connectivity in developing countries. “I doubt anybody outside of a developing country would have come up with DonateBandwidth.”
Aptivate created another system, called Loband, that strips photos and formatting from Web pages to make them load faster for users in developing countries. “Loband helps with bandwidth but not latency,” Khokar says, but “having content cached in country means the latency associated with an international hop is eliminated.”