Cơ chế một tốc độ khống chế, hai trạng thái
(Single-Rate, Two-Color Policing One Bucket)
Đây là dạng đơn giản nhất của công cụ
CB Policing. Cơ chế này chỉ dùng hai nhóm lưu lượng (confirm và exceed), định
nghĩa các hành động khác nhau trên các gói tin của từng loại. Thông thường,
hành động khi gói tin trong giới hạn (confirm action) là router sẽ truyền gói
tin, còn hành động khi gói tin vượt quá giới hạn (exceed action) là router sẽ
loại bỏ hay đánh dấu độ ưu tiên của gói tin thấp xuống.
Kiểu
thuật toán này thường được gọi là cơ chế khống chế một tốc độ, hai trạng thái.
Nó thỉnh thoảng còn được gọi là single bucket, two color bởi vì cơ chế này chỉ
dùng một bucket duy nhất để xử lý bên trong router.
Cơ
chế policing cũng sử dụng công cụ token buckets trong hoạt động của nó giống
như trong CB shaping. Các token sẽ được đưa vào bucket sau đó router sẽ dùng
các token này để truyền dữ liệu. Cùng với thời gian, router sẽ lấp đầy bucket
theo tốc độ khống chế.
Ví dụ, việc khống chế lưu lượng ở mức
96 kbps trong khoảng thời gian một giây sẽ cần thêm vào 12000 token vào trong
bucket vì một token tượng trưng cho quyền để truyền một byte dữ liệu. 12000
tokens tương đương với 96000 bit dữ liệu.
Cơ chế CB policing không có lấp đầy bucket trong khoảng thời gian một chu kỳ. Thay vào đó, CB policing sẽ phản ứng lại khi có một gói tin đến bằng cách thêm vào một số token xác định trước trong bucket.
Cơ chế CB policing không có lấp đầy bucket trong khoảng thời gian một chu kỳ. Thay vào đó, CB policing sẽ phản ứng lại khi có một gói tin đến bằng cách thêm vào một số token xác định trước trong bucket.
Số token được định
nghĩa theo công thức sau:
Police-rate*(Thời
gian đến của gói tin hiện hành - Thời gian đến của gói tin trước đó)/8.
Lưu ý rằng một token tượng trưng cho quyền để gửi một byte. Vì vậy công thức trên bao gồm việc chia cho 8 để chuyển công thức về bytes thay vì là bits. Ý tưởng đằng sau của công thức thì đơn giản. Một cách cơ bản, mỗi khi có một gói tin bị khống chế, sẽ chỉ có một số lượng nhỏ các token được thêm vào. Kết quả cuối cùng là các token sẽ được cung cấp vào trong bucket chỉ ở tốc độ khống chế.
Lưu ý rằng một token tượng trưng cho quyền để gửi một byte. Vì vậy công thức trên bao gồm việc chia cho 8 để chuyển công thức về bytes thay vì là bits. Ý tưởng đằng sau của công thức thì đơn giản. Một cách cơ bản, mỗi khi có một gói tin bị khống chế, sẽ chỉ có một số lượng nhỏ các token được thêm vào. Kết quả cuối cùng là các token sẽ được cung cấp vào trong bucket chỉ ở tốc độ khống chế.
Ví
dụ, cho một tốc độ khống chế là 128kbps, router sẽ phải thêm vào 16000 token mỗi
giây. Nếu một giây đã trôi qua kể từ gói tin trước đó đến, router sẽ thêm vào
16000 token trong bucket. Nếu 0.1 giây đã trôi qua kể từ khi gói tin trước đó đến,
CB policing sẽ thêm vào một số lượng là 1600 tokens. Nếu đã có 0.01 giây trôi
qua, router sẽ thêm vào 160 token ở thời điểm đó.
Router
sau đó sẽ xem xét là nó có nên nhóm các gói tin mới đến như là tuân theo hay vượt
quá tốc độ thoả thuận trong hợp đồng. Router so sánh số bytes trong gói tin (tượng
trưng bằng biến Xp trong đó p nghĩa là packet) với số token hiện có trong
bucket (tượng trưng bằng biến Xb trong đó b là bucket).
Khi
tốc độ truyền tổng thể không vượt quá tốc độ giới hạn, các gói tin sẽ trong trạng
thái tuân thủ ( conform). Tuy nhiên nếu tốc độ giới hạn bị vượt quá, các token
sẽ bị xóa ra khỏi bucket cho từng gói tin trong trạng thái conform. Cùng với thời
gian, các tokens sẽ được thêm vào bucket vì vậy vài gói tin sẽ vào lại trạng
thái conform. Khi tốc độ truyền thấp hơn tốc độ khống chế, tất cả các gói tin sẽ
vào trạng thái confrom.
Cơ chế một tốc độ, ba trạng thái, hai bucket.
Khi
bạn muốn router khống chế tốc độ truyền ở một mức nào đó nhưng vẫn hỗ trợ Be,
router sẽ dùng cơ chế hai token bucket. Cơ chế này sẽ dùng cả ba trạng thái gói
tin là conform, exceed và violate. Kết
hợp các khái niệm này lại, chính sách này thường được gọi là cơ chế một tốc độ,
ba trạng thái single-rate, three-color policing.
Như trước đây, cơ chế CB Policing sẽ lấp đầy bucket khi có gói tin đến. Trong phần này, bucket đầu tiên gọi là Bc bucket vì bucket này có kích thước là Bc. Bucket thứ hai là Be bucket vì nó có kích thước Be. Cơ chế CB Policing sẽ lấp đầy Bc bucket giống như mô hình một bucket trước đây. Tuy nhiên nếu Bc bucket có bất kỳ token nào còn lại bên trong, một số token mới sẽ trượt qua bucket này. Các token bị trượt qua sẽ lấp đầy Be bucket.
Như trước đây, cơ chế CB Policing sẽ lấp đầy bucket khi có gói tin đến. Trong phần này, bucket đầu tiên gọi là Bc bucket vì bucket này có kích thước là Bc. Bucket thứ hai là Be bucket vì nó có kích thước Be. Cơ chế CB Policing sẽ lấp đầy Bc bucket giống như mô hình một bucket trước đây. Tuy nhiên nếu Bc bucket có bất kỳ token nào còn lại bên trong, một số token mới sẽ trượt qua bucket này. Các token bị trượt qua sẽ lấp đầy Be bucket.
Sau
khi đổ vào các token, router sẽ xác định các gói tin mới đến thuộc vào nhóm
nào. Trong trường hợp, Xbc là số token trong Bc bucket và Xbe là số token trong
Be bucket. Nếu kích thước gói tin nhỏ hơn số token trong Bc bucket, gói tin sẽ
được truyền bằng cách lấy ra Xp token từ Bc bucket.
Nếu kích thước gói tin lớn hơn số
token trong Bc bucket, lúc này gói tin được gọi là không conform; khi đó,
router sẽ so sánh kích thước của gói tin với số lượng token có trong Be bucket.
Nếu kích thước (tính bằng bytes) của gói tin cần truyền là nhỏ hơn hoặc số token
hiện có trong bucket Be, trạng thái này gọi là exceed.
Vậy,
trạng thái exceed của một gói tin sẽ là khi gói tin đó không conform nhưng kích
thước gói tin vẫn nhỏ hơn số lượng token trong Be. Trong trạng thái exceed này,
để truyền gói tin, router sẽ lấy ra Xp token từ Be bucket. Nếu số lượng token
trong Be bucket không đủ để truyền gói tin, trạng thái này gọi là violate. Vậy
trạng thái violate nghĩa là gói tin không phải trong trạng thái conform và cũng
không trong trạng thái exceed. Nếu trong trạng thái violate, gói tin sẽ bị loại
bỏ.
Hai tốc độ khống chế, ba trạng thái Two-Rate,
Three-Color Policer (Two Buckets)
Tùy chọn thứ ba của CB Policing là
dùng hai tốc độ khống chế riêng biệt. Tốc độ thấp hơn là tốc độ CIR và tốc độ cao hơn gọi là tốc độ đỉnh
peak information rate (PIR).
Các gói tin nằm dưới mức CIR sẽ trong
trạng thái tuân thủ conform. Các gói tin vượt qua mức CIR nhưng dưới mức PIR được
gọi là vượt quá exceed. Cuối cùng các gói tin vượt qua mức PIR được gọi là vi
phạm violate.
Sự khác nhau giữa cơ chế một tốc độ
và cơ chế hai tốc độ là cơ chế hai tốc độ sẽ cho phép duy trì Be. Trong cơ chế
một tốc độ, ba trạng thái, có tồn tại Be nhưng trạng thái bùng nổ chỉ được duy
trì cho đến khi Be bucket là trống. Nếu còn token trong Be bucket thì trạng
thái bùng nổ có thể được duy trì. Để Be bucket có thể được lấp đầy các token,
router phải ở trong một khoảng thời gian hoạt động tương đối thấp.
Với cơ chế hai tốc độ, việc lấp đầy
Be bucket sẽ không dựa vào việc tràn qua Bc bucket. Chú ý là các bucket này thỉnh
thoảng được gọi là CIR và PIR với cơ chế hai tốc độ.
Cơ chế lấp đầy của hai bucket dựa
trên hai tốc độ khác nhau là rất quan trọng. Ví dụ, giả sử bạn gán giá trị CIR
bằng 128 kbps (16 kilobytes/giây) và PIR bằng 256 kbps (32 kBps). Nếu trong
vòng 0.1 giây đã trôi qua trước khi gói tin kế tiếp đến thì CIR sẽ bổ sung 1600
tokens (số token tương đương 1/10 giây, tính bằng bytes) trong khi PIR bucket sẽ
bổ sung thêm 3200 tokens. Vì vậy, trong PIR bucket có nhiều token để dùng hơn
so với CIR bucket.
0 comments:
Post a Comment