Patent ID: 7113990

Claim:
A method for allocating bandwidth to a set of users accessing a computer network through a portal, comprising the steps of: (a) defining a set of bandwidth rules for a set of restriction agents, said defined set of bandwidth rules including a plurality of rate-limit rules, wherein said rate-limit rules include a range of bandwidth limits less than a maximum allowable bandwidth; (b) defining a single data volume limit for a time period; (c) registering a set of communication devices with the set of users via a registration server, wherein each of said communication devices has a unique identity and each one of the users individually registers at least one communication device; (d) associating the set of users with said set of communication devices accessing the portal, wherein the portal comprises at least one restriction agent in said set of restriction agents; (e) communicating a set of data flows through said set of restriction agents between the set of users and the computer network, wherein said communicating step further comprises the steps of: (i) communicating a plurality of data headers in a set of sampling periods during said time period, and (ii) repeating said communicating step for a series of sequential time periods as a moving time frame; (f) monitoring said communicated set of data flows, wherein said monitoring step further comprises the steps of: (i) communicating said data headers to a processing agent during each of said sampling periods, and (ii) summarizing historical information about said data flows for each of said sequential time periods; and (g) selecting a set of bandwidth rules from said defined set of bandwidth rules, said selected set of bandwidth rules being determined by said processing agent, and wherein said selecting step comprises the steps of (i) allocating said monitored set of data flows to the set of users according to said association between the set of users and said set of communication devices, (ii) computing a data flow volume for each of the users during said time period according to said data headers, (iii) comparing said computed data flow volume with said single data volume limit for each of the users, (iv) identifying a set of the users having said computed data flow volume exceeding said data volume limit, (v) adding said plurality of rate limit rules to said selected set of bandwidth rules for each of the users in said identified set of users, and (vi) transmitting said selected set of bandwidth rules to said set of restriction agents; and (h) allocating bandwidth to said data flows according to said selected set of bandwidth rules transmitted from said processing agent to said restriction agents, wherein said data flows for said identified set of users are respectively within said plurality of rate-limit rules.