Patent ID: 8296410

Claim:
A device comprising: a processor; a communication interface operably coupled to the processor and configured to receive a request from a second device, the request including an indication to transfer a file between the device and the second device and an identifier of the second device; and to send a response to the second device; and a computer-readable medium operably coupled to the processor, the computer-readable medium comprising instructions that if executed by the processor cause the device to determine a client group associated with the second device based on the identifier of the second device; select a bandwidth usage policy based on the determined client group; determine a data transfer rate for transferring the file between the device and the second device based on the selected bandwidth usage policy, a bandwidth usage at the device associated with a plurality of devices, and a storage memory usage of less than a predetermined amount at the device by the second device; and determine a number of bytes to transfer between the device and the second device during a next bandwidth interval based on the determined data transfer rate and a duration of the next bandwidth interval; wherein the response includes the determined number of bytes to transfer during the next bandwidth interval and the duration of the next bandwidth interval.