Một phần mở rộng của thuật toán RIO là thuật toán ARIO (Adaptive RIO) được dùng trong quản lý hàng đợi tích cực. Thuật toán ARIO là sự pha trộn của hai thuật toán ARED và RIO. Mục đích chính của thuật toán ARIO là:
• Đơn giản hoá cấu hình của các router hỗ trợ DS bằng việc làm giảm bớt các
vấn đề trong việc thiết lập các tham số trong hầu hết các thuật toán ARED hiện thời.
• Tự động biên dịch các tham số của QoS thành bộ các tham số của Router.
• Cố gắng giữ cho độ chiếm giữ hàng đợi ổn định xung quanh giá trị cuối
cùng bên dưới các tải mạng nặng.
ARED là sự mở rộng trực tiếp của các thuật toán ARED và RIO-C. Cũng giống như thuật toán ARED, ARIO cần một tham số đầu vào đơn, trễ cần đạt tới, được biên dịch thành bộ các tham số router được yêu cầu. Tính năng này có thể rất hữu ích đối với việc cung cấp các dịch vụ phân biệt: cấu hình các router trong nhóm các trễ, trọng số QoS có liên quan trực tiếp tới việc định rõ dịch vụ và các yêu cầu khách hàng nên nó sẽ đơn giản nhóm các tham số như các mức ngưỡng hàng đợi, xác suất loại bỏ các gói, trọng số trung bình.
ARIO cố gắng để đạt được khả năng thông qua lớn nhất trong khi vẫn kiểm soát được độ trễ trong biên giới đã định trước, các khoảng thời gian có thể đoán trước được trong khi tải hàng đợi vẫn cao. Trong ngữ cảnh của dịch vụ phân biệt, phải nhận thức đúng các gói được đánh dấu với các trường Precedence tương ứng.
Do đó thuật toán ARIO dựa trên hai nguyên lý: Thứ nhất là việc sử dụng thuật toán ARED cho mỗi mức Precedence trong lớp AF (hàng đợi vật lý). Nguyên lý thứ hai là sử dụng các mức ngưỡng chồng chéo hoàn toàn cho tất cả các Precedence.
Một số diểm chính trong ARED vẫn được giữ nguyên trong ARIO:
• Các tham số tương thích, maxp thay đổi trong khoảng 0.001đến 0.5
• Mức ngưỡng thấp nhất minth được tính toán như một chức năng của độ trễ
theo yêu cầu dt và khả năng kết nối C (gói/s) có mức biên thấp nhất là 5
gói. Do đó minth=max(5,dt.C/2). Mức ngưỡng cao nhất maxth được gắn cố
định là giá trị 3minth.
• wq cũng được tính toán trong cùng nhóm băng thông kết nối như wq=1-exp(-
• Biến số của RED được sử dụng thông qua, khoảng cách maxth ≤avg ≤ 2maxth.
• Chức năng thích ứng của maxp sử dụng luật AIMD. Mục đích của luật này
để tránh sự thay đổi mạnh trong giá trị maxp do đó tránh được dao động
mạnh trong kích thước hàng đợi.
• Nếu tải thay đổi bất ngờ, kích thước hàng đợi trung bình có thể tìm ra
khoảng thời gian hợp lý. Các nhân tố tăng và giảm α và β được gắn cố định do đó kích thước hàng đợi trung bình có thể khôi phục lại được trong khoảng thời gian ít hơn 25s.
Quyết định thiết kế ARIO nhằm mục đích thoả mãn độ trễ theo yêu cầu, đồng thời giữ cho kích thước hàng đợi trung bình trong khoảng (qlow,qhigh), khi qlow = minth+0.4 (maxth- minth) và qhigh = minth+0.6 (maxth-minth).
Để hiểu rõ hơn ta xét hàng đợi RIO-C với các mức ngưỡng không bị chồng chéo. Các precedence là 1(In) và 2(Out). Nếu tổng tốc độ In thấp được so sánh với khả năng kết nối mà ở dưới mức tải nặng thì các mức ngưỡng Out và xác suất loại bỏ gói
tin sẽ được kích hoạt để giữ kích thước hàng đợi trung bình trong khoảng min2 và
max2. Tuy nhiên hầu hết lưu lượng là In nên kích thước hàng đợi trung bình sẽ là giá
trị trong khoảng min1 và max1. Do đó các mức ngưỡng so le có thể đem lại các kích
thước hàng đợi trung bình khác nhau cho các hỗn hợp lưu lượng khác nhau. Đây cũng chính là mặt hạn chế cho việc dự đoán trước trễ của các hàng đợi khi có trễ toàn bộ hay một phần. Do đó yêu cầu phải sử dụng cùng các mức ngưỡng cho tất cả các Precedence. Theo cách này cơ chế thích ứng của ARED nên đẩy kích thước hàng đợi trung bình tới cùng một khoảng thời gian biên không quan tâm tới trộn lưu lượng.
Tuy nhiên việc sử dụng các mức ngưỡng có liên quan tới sự phân biệt. RIO-C phân biệt loại bỏ theo 3 cách: phân biệt các mức ngưỡng, phân biệt các chức năng loại bỏ, và kết hợp các hàng đợi ảo. Trong ARIO có sử dụng các mức ngưỡng chồng chéo nên ARIO không theo cách thứ nhất mà chỉ sử dụng theo hai cách dưới.
Thuật toán ARIO:
For mỗi gói đến có giá trị precedence I ; For mỗi giá trị precedence j = i, i+1,2,….n
Tính toán lại giá trị avgj ; avg(j) ← avg(j) * (1- wq) + q(j) * wq mỗi thời gian interval tính toán lại maxp(j):
if avg(j) > qhigh and maxp(j) < 0.5
tính toán tác nhân tăng: α← min(0.001 ; maxp(j)/4) tăng maxp(j): maxp(j) ← maxp(j) + α
if j < n then: maxp (j) ← min(maxp(j), maxp(j+1)) else if avg(j) < qlow and maxp(j)>0.01
giảm maxp(j): maxp(j) ← maxp(j) * β
if j > 0 then: maxp(j) ← max(maxp(j) , maxp(j-1)) if minth < avg(i) ≤ maxth
Tính toán p(i) như trong RED loại bỏ các gói có xác suất p(i) else if maxth < avg(i) ≤ 2* maxth Tính toán pgentle(i) như trong RED loại bỏ các gói có xác suất pgentle(i) else if avg(i) > 2 * maxth
loại bỏ gói này
Các tham số cố định và các biến:
avg(i) : kích thước hàng đợi trung bình cho precedence thứ i (bộ đếm
sẽ đếm số lượng các gói với giá trị precedence từ 1 tới i)
maxp(i) : xác suất loại bỏ gói có precedence i khi giá trị avg(i) = maxth
p(i) : xác suất loại bỏ gói cho precedence i
pgentle(i) : xác suất loại bỏ gói có precedence i trong miền gentle interval : 0.5 s
β (nhân tố tăng) : 0.9
Lưu ý rằng maxp(i) ≤ maxp(i+1) , ∀i ∈ {1,2,…n-1}