Olá.
Nós temos um esquema parecido com o que voce quer.
Eu tenho armazenado em uma base de dados de 5 em 5 minutos o trafego e cada cliente, então sei quanto de banda ele esta usando, cada vez que o sistema faz uma leitura ele verifica se o cliente usou mais do que a banda configurada pra ele nos 5 minutos anteriores a leitura e na leitura atual caso ele tenha excedido ele perde a banda liberada e entra no seu controle.
Realmente isso da uma performance de navegação muito superior, estamos testando isso a uma semana e a resposta tem sido ótima.
Se quiser maiores explicações sobre o sistema e sobre o cbq só solicitar.