Giải thuật 5 2-

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

Phần này sẽ mô tả giải thuật cho các RED gateways. RED gateways tính kích thƣớc hàng đợi trung bình, bằng cách dùng một bộ lọc thông thấp. Kích thƣớc hàng đợi trung bình này đƣợc so sánh với hai ngƣỡng: ngƣỡng dƣới minthvà ngƣỡng trên

maxth. Khi kích thƣớc hàng đợi trung bình bé hơn ngƣỡng dƣới thì không gói tin đến nào bị đánh dấu; khi kích thƣớc hàng đợi trung bình lớn hơn ngƣỡng trên thì tất cả các gói tin đến đều bị đánh dấu. Nếu tất cả các gói tin bị đánh dấu đều bị loại bỏ, và nếu tất cả các nút nguồn đồng thực hiện thì kích thƣớc hàng đợi trung bình không vƣợt quá ngƣỡng trên. Khi kích thƣớc hàng đợi trung bình nằm giữa ngƣỡng dƣới và ngƣỡng trên thì mỗi gói tin đến đƣợc đánh dấu theo một xác suất pa, trong đó pa là một hàm theo kích thƣớc hàng đợi trung bình avg; xác suất đánh dấu một gói tin của một kết nối cụ thể tỷ lệ với phần băng thông chia sẻ của kết nối đó tại gateway. Giải thuật tổng quát của RED gateway đƣợc mô tả nhƣ sau:

Nhƣ vậy, giải thuật tại RED gateway gồm hai giải thuật tách biệt: Giải thuật tính kích thƣớc hàng đợi trung bình quyết định mức độ bùng nổ cho phép trong

For each packet arrival

Caculate the average queue size avg If minth  avg < maxth

Caculate propability pa With propability pa:

mark the ariving packet else maxth  avg

mark the ariving packet

hàng đợi tại gateway và giải thuật tính xác suất đánh dấu quyết định mức độ thƣờng xuyên của việc đánh dấu gói tin của gateway. Giải thuật tính xác suất đánh dấu phải đảm bảo sao cho các gói tin đƣợc đánh dấu tại những khoảng không gian đều nhau, để tránh hiện tƣợng đồng bộ toàn cầu, trong khi vẫn giữ kích thƣớc hàng đợi trung bình ở một giới hạn nhất định.

Giải thuật chi tiết tại RED gateway đƣợc mô tả nhƣ hình 3.2 dƣới đây.

Khởi tạo:

avg  0

count  -1

for mỗi gói tin đến

Tính kích thƣớc hàng đợi trung bình avg: if hàng đợi không rỗng

avg (1- wq) avg + wq*q

else

m f(time – q_time) avg (1-wq)m avg

ifminth avg maxth

count ++

Tính xác suất pa:

pb maxp(agv – minth)/ (maxth - minth) pa pb / (1 – count.pb)

với xác suất pa:

đánh dấu gói tin đến count  0

else ifavg maxth đánh dấu gói tin đến count  0

elsecount  -1

Khi hàng đợi trở nên rỗng

q_time time

Các biến thay đổi:

avg: kích thƣớc hàng đợi trung bình

q_time: thời gian hàng đợi bắt đầu rỗng

count: số gói tin từ gói cuối cùng bị đánh dấu

Các tham số cố định:

wq: trọng số hàng đợi

minth: ngƣỡng dƣới của hàng đợi

maxth: ngƣỡng trên của hàng đợi

maxp: xác suất loại bỏ tối đa

Các tham số khác:

pa: xác suất đánh dấu gói tin hiện tại

q: kích thƣớc hàng đợi hiện tại

time: thời gian hiện tại

f(t): một hàm tuyến tính của thời gian t

Theo giải thuật, mỗi khi có một gói tin đến, sẽ tính kích thƣớc hàng đợi trung bình – avg bằng bộ lọc thông thấp:

avg (1 – wq) * avg + wq * q,

trong đó: q là kích thƣớc hàng đợi hiện thời; wq là trọng số hàng đợi, nhận giá trị trong miền 0..1, wq còn đƣợc gọi là hệ số làm trơn, wq càng nhỏ thì mức độ làm trơn càng cao, wq càng lớn thì avg càng bám sát giá trị tức thời của q. Nhƣ vậy wq quyết định độ lớn và độ kéo dài cho phép của sự bùng nổ lƣu lƣợng.

Khi avg chạy từ minth đến maxththì xác suất pb thay đổi tuyến tính từ 0 đến

maxp: pb maxp(avg – minth) / (maxth - minth).

Xác suất đánh dấu gói tin pa tăng chậm khi số gói tin từ gói cuối cùng đƣợc đánh dấu count tăng lên: pa pb / (1 – count.pb), điều này đảm bảo cho gateway không phải đợi quá lâu trƣớc khi đánh dấu một gói tin. RED gateway đánh dấu tất cả các gói tin đến nếu nhƣ avg vƣợt quá maxth.

RED có một tuỳ chọn: để đảm bảo xác suất một gói bị loại bỏ tỉ lệ với thông lƣợng tính bằng bit/s chứ không phải packet/s, pb đƣợc tính nhƣ sau:

Trong trƣờng hợp này, một gói tin lớn dễ bị loại bỏ hơn là một gói tin nhỏ.

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

Tải bản đầy đủ (PDF)

(119 trang)