3.1.4.1 Giải thuật Leaky Bucket
Mô hình Leaky Bucket có thể được diễn tả như sau: bất chấp tốc độ nước được đổ vào thùng là bao nhiêu, tốc độ dòng nước chảy ra là không đổi miễn là trong thùng còn nước. Một khi thùng đầy, lượng nước được đổ thêm vào sẽ bị tràn và mất. Các thông số cần chú ý trong mô hình Leaky Bucket là kích thước của thùng và tốc độ dòng chảy ra[7].
Mô hình trên có thể áp dụng cho gói. Bất kể lưu lượng tới có tốc độ biến động như thế nào, lưu lượng ra đều có tốc độ không đổi.
Hình38: Giải thuật Leaky Bucket
3.1.4.2 Giải thuật Token Bucket
Token Bucket có kích thước B, tốc độ thẻ “chảy” vào thùng không đổi là p, nghĩa là trong một giây sẽ có thêm p thẻ mới chảy vào thùng. Số lượng thẻ trong thùng không vượt quá B hay nói cách khác, B là số lượng thẻ tối đa trong thùng[7].
Hình39: Giải thuật Token Bucket
Khi có gói đến, G là kích thước của gói, gói được xem là “phù hợp” khi lượng thẻ trong thùng lớn hơn hay bằng G, đồng thời lượng thẻ trong thùng được giảm đi G. Ngược lại, khi lượng thẻ trong thùng nhỏ hơn kích thước gói, gói được xem là vượt mức hay không hợp lệ. Tùy thuộc vào các chính sách khác nhau mà các gói vượt mức (hay không hợp lệ) được xử lý khác nhau.
Giải thuật Token Bucket có thể được dùng trong việc sửa dạng lưu lượng (shaping) hay được ứng dụng trong việc thực thi khống chế (policing). Trong sửa dạng lưu lượng, thuật toán Token Bucket cho phép một ít bùng phát ở ngõ ra, điều này không có ở thuật toán Leaky Bucket khi mà tốc độ ra là không đổi. Như vậy Token Bucket cho đáp ứng ra tốt hơn so với Leaky Bucket. Trong việc thực thi khống chế, Token Bucket có thể được dùng độc lập hay được dùng phối hợp.