It seems to me that many sites are wasting a lot of bandwidth by providing file downloads over HTTP. If 10,000 users download a 20MB file, the website uses 200,000MB of bandwidth, assuming nothing fancy is done by the ISPs, like caching, etc. (I'm just trying to provide a simple example.)
Here's my idea: Rather than providing a direct link to the desired file, give a link to a torrent associated with it. By itself, this would definitely fail. If the file isn't popular, no one will be able to get it. So the key to this idea is that the webserver would need to seed the file.
This is how I see it:
Worst case scenario:
- The file is something really obscure, something that only one person in the world would want.
- Eventually, this person finds out where to get the file, and starts to use the torrent.
- Since it is only the webserver seeding, the person downloads at the same rate he would have over HTTP.
- There's some overhead for running the BitTorrent client, and perhaps a tracker as well. (I don't really know anything about torrent trackers.)
Best case scenario:
- The file is something that everyone really wants, like the latest Windows update.
- The initial downloaders download at the base rate, but later downloaders can download from the server, as well as their peers.
- Users are able to download the file as fast as they possibly can.
- The cost to the company hosting the file asymptotes.
- A month later, the one person who hasn't turned their computer on for a long time connects and downloads from the webserver, since no one else is downloading anymore.
Right now, there are some obstacles that might turn people off of the idea:
- You need to run a BitTorrent client on the server. There's some overhead associated with this.
- You have to add another file to the client whenever you offer another file for download.
- BitTorrent hasn't been integrated into the popular web browsers. Your grandmother doesn't want to download another program to download... whatever it is that grandmothers might be interested in downloading...
Pretend that these problems have been solved. Are there any other problems with this idea that I haven't thought of?
Also, are there any initiatives out there that are trying to promote this?