I am building a download application which would allow clients to download data( documents + images) from a server, which has exposed download functionality through web services apis. Each client might download anywhere from 1GB-10GB of data. What I am looking for is a possible mechanism to throttle the downloads, so that if too many clients simultaneously start the downloads then the server should not go down because of the load.
What are the standard mechanisms for throttling downloads on the server?
We finally decided to go for a rate of download approach, where the client pings the server for a rate of download and the server sends the rate at which client should download. The rate of download is calculated on the server based on the number of active clients.