Thuật toán RIO 7 7-

Một phần của tài liệu Thuật toán quản lý hàng đợi A - RIO (Trang 77 - 79)

RIO sử dụng cùng một cơ chế nhƣ RED, nhƣng đƣợc thiết lập hai bộ ba tham số, một cho các gói In, một cho các gói Out. Khi các gói tin đến gateway, nó kiểm tra xem gói tin đƣợc gắn thẻ In hay Out. Nếu là gói In, gateway sẽ tính avg_in, kích thƣớc hàng đợi trung bình của các gói tin In; ngƣợc lại, gateway tính avg_total, kích thƣớc hàng đợi trung bình cho tất cả các gói tin đến (cả In Out). Xác suất loại bỏ các gói tin In phụ thuộc vào avg_in, còn xác suất loại bỏ các gói tin Out phụ thuộc vào avg_total. Thuật toán RIO đƣợc biểu diễn bằng giả ngôn ngữ nhƣ trong hình 4.1.

Nhƣ minh họa trên hình 4.2, có ba tham số cho mỗi thuật toán con xác định ba miền kích thƣớc hàng đợi trung bình tƣơng ứng với ba pha xử lý của thuật toán. Ba tham số min_in, max_in và Pmax_in xác định 3 miền: miền bình thƣờng [0, min_in), miền trách tắc nghẽn [min_in, max_in), và miền điều khiển tắc nghẽn [max_in, ) cho các gói tin In. Tƣơng tự ba tham số min_out, max_out, và Pmax_outxác định ba pha ứng với thuật toán cho các gói tin Out.

Việc phân biệt đối xử với các gói tin Out đƣợc thực hiện bằng cách lựa chọn cẩn thận các tham số (min_in, max_in, Pmax_in), và (min_out, max_out, Pmax_out). Nhƣ

minh hoạ trên hình 4.2, RIO gateway tích cực loại bỏ các gói tin Out thể hiện ở ba điểm: thứ nhất, nó loại bỏ các gói tin Out nhanh hơn so với các gói In, bằng cách chọn min_out bé hơn min_in; thứ hai, trong pha tránh tắc nghẽn, nó loại bỏ gói tin

Out với xác suất lớn hơn so, bằng cách thiết lập pmax_out lớn hơn pmax_in; thứ ba, nó đi vào pha điều khiển tắc nghẽn đối với các gói tin Out sớm hơn so với các gói tin In, bằng cách cho max_out nhỏ hơn max_in.

Hình 4.2: Các thuật toán RED và RIO

For mỗi gói tin đến if nó là gói tin In

tính kích thƣớc trung bình hàng đợi In: avg_in; tính kích thƣớc trung bình hàng đợi tổng avg_total; if nó là gói tin In

if min_in < avg_in < max_in

tính xác suất Pin;

loại bỏ gói tin này với xác suất Pin; else if max_in < avg_in

loại bỏ gói tin này. if nó là gói tin Out

if min_out <avg_total < max_out

tính xác suất Pout;

loại bỏ gói tin này với xác suất Pout; else if max_out <avg_total

loại bỏ gói tin này.

Thực chất, RIO gateway đầu tiên loại bỏ các gói Out khi nó phát hiện tắc nghẽn chớm xảy ra, và loại bỏ tất cả các gói tin Out khi tắc nghẽn kéo dài. RIO gateway chỉ thực sự phải loại bỏ các gói In nhƣ một phƣơng kế cuối cùng khi nó bị ngập bởi các gói In. Đối với một mạng đƣợc điều khiển tốt thì không bao giờ xảy ra tình huống này. Khi gateway luôn phải thực hiện pha điều khiển tắc nghẽn bằng việc loại bỏ các gói In thì mạng có thể coi nhƣ không chấp nhận đƣợc.

Việc lựa chọn avg_total để quyết định xác suất loại bỏ các gói tin Out là một lựa chọn tinh tế. Không giống nhƣ các gói tin In, các gói mà mạng phải có trách nhiệm phục vụ, các gói tin Out chính là lƣu lƣợng của những ngƣời dùng “cơ hội” (không đăng ký nhƣng vẫn sử dụng mạng!), và không có một dấu hiệu hợp lệ nào cho việc quyết định bao nhiêu gói tin Out là thích hợp. Nếu ta dùng kích thƣớc hàng đợi trung bình của các gói Out cho việc loại bỏ các gói tin Out, thì việc chọn các tham số tƣơng ứng rất khó, và không có sự tƣơng quan rõ ràng nào so với các tham số đối với các gói In. Bằng cách sử dụng avg_total gateway có thể giữ đƣợc kích thƣớc hàng đợi nhỏ và thông lƣợng cao bất kể lƣu lƣợng nào trộn lẫn vào.

Một phần của tài liệu Thuật toán quản lý hàng đợi A - RIO (Trang 77 - 79)