3.1.4.a Giải thuật thùng rò (Leaky Bucket)
Mô hình thùng rò 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 thùng rò là kích thước của thùng và tốc độ dòng chảy ra. 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ình 3.4: Giải thuật thung rò
3.1.4.b Giải thuật thùng token (Token Bucket)
Thùng token có kích thước B, tốc độ token “chảy” vào thùng không đổi là p, nghĩa là trong một giây sẽ có thêm p token mới chảy vào thùng. Số lượng token trong thùng không vượt quá B hay nói cách khác, B là số lượng token tối đa trong thùng.
Hình 3.5: Giải thuật thùng token
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 token trong thùng lớn hơn hay bằng G, đồng thời lượng token trong thùng được giảm đi G. Ngược lại, khi lượng token 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 thùng token 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 thùng token cho phép một ít bùng phát ở ngõ ra, điều này không có ở thuật toán thùng rò khi mà tốc độ ra là không đổi. Như vậy thùng token cho đáp ứng ra tốt hơn so với thùng rò. Trong việc thực thi kh?ng ch?, thùng token có thể được dùng độc lập hay được dùng phối hợp.