One embodiment of the present invention provides a device for allocating
bandwidth on a per user basis. The device can be a computing device that
comprises a processor, a first network interface coupled to the
processor, a second network interface coupled to the processor, and a
storage medium accessible by the processor that contains a set of
computer instructions. The computer instructions can be executable by the
processor to retrieve a set of user profiles. Based on the user profile
for each user, the computer instructions can be executable to establish
at least one bandwidth limit for each user. For each user, the computer
instructions can be further executable to regulate bandwidth usage
associated with that user based on the at least one bandwidth limit
established for that user. The computer instructions can also be
executable to update the at least one bandwidth limit.