Internet service providers are constantly presented with the challenge of optimizing their bandwidth allocation. The challenge is manifested with the fact that their subscribers fall into multiple usage categories such as http, p2p, newsgroups, video, gaming, VoIP and so on. Intelligent bandwidth allocation is hence the first and most important step towards ensuring uniform service availability across all these user groups.