Tokens are added to a "bucket" at some fixed rate X (tokens per second) and are removed from the bucket whenever a packet arrives. A bucket also has a finitedepth--it never will contain more than Ytokens.