bandwidth to allocate to the requesting entities denote by req i the amount of bandwidth requested by entity i at a specific time initially when operation of entity i begins both buckets are full the method 1000 proceeds at operation 1010 to update the data amounts gr i and be i for an entity i by decreasing them according to their respective leak rates and according to the time elapsed since their last update at operation 1020 dba module 250 determines the unused portions of the gr and be buckets gr_unused i and be_unused i respectively by subtracting the updated data amounts from the respective capacities of the buckets these variables represent the amounts of data entity i is entitled to based respectively on the guaranteed bandwidth rate and the best effort bandwidth rate in the entity 39 s sla operation 1030 is a two way branch 1030 a 1030 b based on whether req i is less than or equal to gr_unused i or else greater than this amount dba module 250 sets bandwidth allocation alloc i at operations 1040 a 1040 b according to the respective branch taken at operation 1030 finally at operation 1050 dba module 250 adds the allocation alloc i to the data gr i dba module 250 repeats operations 1010 1050 for each entity i at operation 1060 dba module 250 determines an order for prioritizing the entities for allocation of leftover bandwidth the order of prioritization is important because there may not be sufficient bandwidth left over to satisfy all of the entities 39 requirements operation 1060 is described in detail hereinbelow.