Saturday, August 16, 2014

Các cơ chế hoạt động trong Traffic Policing

Posted on 10:42 PM in , ,

 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.
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ế.
            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.
            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