Thuật toán RED

Một phần của tài liệu Nghiên cứu các kĩ thuật quản lý hàng đợi trong mạng IP (Trang 68 - 75)

3.3.3.1 Thuật toán

Khi có dấu hiệu của tắc nghẽn xảy ra trong mạng, các bộ đệm của router được điền đầy và router bắt đầu loại bỏ các gói. Đối với các luồng lưu lượng TCP thì đây là tín hiệu để bắt đầu pha khởi đầu chậm và để giảm tải trong mạng và làm dịu tắc nghẽn. Có hai vấn đề nan giải trong mạng: thứ nhất các gói bị mất sẽ phải được truyền lại, việc này làm tăng tải trong mạng đồng thời phát sinh ra trễ các luồng lưu lượng. Một vấn đề thứ hai là đồng bộ trên toàn luồng. Với lưu lượng dạng bó, các hàng đợi được điền đầy và các gói đến sau bị loại bỏ. Kết quả là kết nối nhiều kết nối TCP bị ảnh hưởng và chyển sang chế độ khởi đầu chậm. Việc có nhiều kết nối TCP cùng chuyển sang chế độ khởi đầu chậm tại một thời điểm và cùng thoát khỏi chế độ này do đó sẽ gây ra thêm các bó lưu lượng lớn.

Một giải pháp cho việc có nhiều lưu lượng dạng bó đến router là xây dựng các bộ đệm đủ lớn để có thể đệm được các bó lưu lượng này tránh việc phải loại bỏ các gói. Nhưng giải pháp này không khả thi bộ đệm càng lớn thì độ trễ hàng đợi càng lớn, làm giảm chất lượng dịch vụ và nếu có quá nhiều bó lưu lượng lớn đến kế tiếp nhau thì kích thước bộ đệm không đủ lớn giữ được tất cả các lưu lượng này, điều này dễ gây ra tắc nghẽn. Một giải pháp tối ưu để giải quyết tắc nghẽn là thông báo cho các luồng TCP tại thời điểm bắt đầu xảy ra tắc nghẽn để giảm tốc độ đến, nếu cần thiết thì giảm tốc độ các luồng khác. Do đó trong trường hợp tắc nghẽn thì giảm tải lưu lượng TCP trong mạng mà không được đồng bộ toàn luồng. Đây chính là giải pháp của thuật toán RED.

Thuật toán RED lần đầu tiên được nghĩ ra bởi Sally Floyd và Van Jacobson cho chức năng quản lý hàng đợi tích cực (AQM), sau đó nó được chuẩn hoá lại theo yêu cầu của IETF. RED có khả năng chống đồng bộ trên toàn thể các luồng TCP, duy trì khả năng thông qua cao cũng như độ trễ thấp cùng với cách đối xử công bằng qua đa kết nối TCP.

Mục đích thiết kế thuật toán RED

• Tránh tắc nghẽn: RED được thiết kế để tránh tắc nghẽn hơn là giải quyết nó.

Do đó RED được sử dụng để phát hiện ra tắc nghẽn ngay khi nó mới bắt đầu hình thành để duy trì mạng trong miền độ trễ thấp và độ thông qua

Đồ án tốt nghiệp Đại học Chương 3: Quản lý hàng đợi và các thuật toán

• Tránh đồng bộ toàn cục: Khi có dấu hiệu tắc nghẽn xảy ra trong mạng,

router sẽ phải quyết định xem kết nối nào để gửi thông báo phản hồi. Bằng việc phát hiện sớm tắc nghẽn và chỉ thông báo cho các kết nối khi cần thiết do đó tránh được hiện tượng đồng bộ toàn thể luồng TCP.

• Đường biên của kích thước hàng đợi trung bình: RED có thể điều khiển được

kích thước hàng đợi trung bình do đó điều khiển được trễ hàng đợi.

RED (Random Early Detection- Phát hiện sớm ngẫu nhiên) tính toán kích thước hàng đợi trung bình dựa trên dựa trên bộ lọc thông thấp và trung bình dịch chuyển có trọng số tăng theo hàm mũ (EWMA- Exponential Weighted Moving Average). Kích thước hàng đợi trung bình được so sánh với hai giá trị ngưỡng: mức ngưỡng nhỏ nhất và mức ngưỡng lớn nhất.

• Khi kích thước hàng đợi trung bình nhỏ hơn mức ngưỡng nhỏ nhất thì không

có gói nào bị đánh dấu.

• Khi kích thước hàng đợi trung bình lớn hơn mức ngưỡng tối đa cho cho phép

thì tất cả các gói đến đều bị đánh dấu. Và trên thực tế các gói có thể bị loại bỏ. Khi các gói bị loại bỏ hoặc nếu tất cả các nguồn cùng hợp tác với nhau thì kích thước hàng đợi trung bình sẽ không vượt quá giá trị ngưỡng tối đa cho phép.

• Khi kích thước hàng đợi trung bình nằm trong khoảng giá trị ngưỡng nhỏ

nhất và giá trị ngưỡng lớn nhất thì mỗi gói đến đều được đánh dấu bằng một xác suất Pa

, Pa là một hàm của kích thước hàng đợi trung bình. Tại mỗi thời điểm một gói bị đánh dấu, xác suất của gói bị đánh dấu phải tương xứng với băng thông được chia sẻ của các kết nối tại router.

Hình 3.8 : Mối quan hệ giữa xác suất loại bỏ gói và kích thước hàng đợi trung bình

Drop=0 Non-zero and Increasing likely- hood of Drop minth maxth 100% Maxp 0 1 Guaranteed Drop Average Occupacy D ro p P ro ba bi lit y

3 trường hợp trên được xem như 3 pha của quá trình tránh tắc nghẽn:

• Pha thứ nhất: hoạt động bình thường

• Pha thứ hai : tránh tắc nghẽn

• Pha tắc nghẽn: điều khiển tắc nghẽn

Nhìn chung thuật toán RED được chia thành 2 phần riêng:

• Phần 1: dùng để tính toán kích thước hàng đợi trung bình, được quyết định

bởi mức độ của các bó được cho phép đi vào hàng đợi của router. Nó đưa ra bản mô tả

các chu kì khi hàng đợi rỗng (chu kì rỗi) bằng cách đánh giá số lượng m của các gói

nhỏ có thể được truyền trong suốt chu kì rỗi bởi router. Sau mỗi chu kì rỗi router lại tính toán kích thước hàng đợi trung bình như thể m gói đã đến được hàng đợi rỗng trong suốt chu kì đó.

• Phần 2: được sử dụng để tính toán xác suất đánh dấu gói và sau đó quyết

định xem router đánh dấu các gói có thường xuyên không, để đưa ra các mức tắc nghẽn rõ ràng. Mục đích đánh dấu các gói một cách đều đặn của các router là tránh đồng bộ trên toàn thể các luồng TCP, tránh lệch và điều khiển kích thước hàng đợi trung bình. Độ chiếm giữ hàng đợi lớn thì xác suất loại bỏ gói càng cao, độ chiếm giữ hàng đợi càng gần giá trị maxth thì xác suất loại bỏ gói dần tiến tới giá trị maxp

Hình 3.9 : Mô tả mối quan hệ giữa maxp và độ chiếm giữ hàng đợi

Thuật toán chung cho router RED

For mỗi gói đến

Tính toán kích thước hàng đợi trung bình của hàng đợi avg If minth ≤ avg < maxth

Tính toán xác suất Pa

với Pa là xác suất đánh dấu các gói đến;

Đ ch iế m g iữ h àn g đ i Maxp

Đồ án tốt nghiệp Đại học Chương 3: Quản lý hàng đợi và các thuật toán

else if maxth ≤ avg

Đánh dấu các gói đến Else

Chấp nhận các gói đến hàng đợi;

Khi kích thước hàng đợi nằm giữa mức ngưỡng min và max, thì mỗi gói đến sẽ

được đánh dấu bằng xác suất Pa, đây là một chức năng của kích thước hàng đợi trung

bình. Tại mỗi thời điểm có một gói bị đánh dấu và xác suất gói bị đánh dấu từ một kết nối điển hình tỉ lệ với băng thông chia sẻ kết nối tại mỗi router.

Thuật toán chi tiết của RED:

Count ← -1 Avg ← 0 For mỗi gói đến

Tính toán kích thước hàng đợi mới avg; If hàng đợi không rỗng

avg ← avg + w* (q- avg) Else

m= (time – q_time)/s avg ← (1- w)m avg if minth ≤ avg < maxth

tăng biến count tính toán xác suất Pa ;

Pa ←maxp (avg - minth) / (maxth - minth) Pa ← Pb / (1- count* Pb)

với xác suất Pa ;

đánh dấu các gói đến count ← 0

else if maxth ≤ avg

Đánh dấu các gói đến count ← 0

else count ← -1 Khi hàng đợi bắt đầu đầy q_time ← time

Các biến:

avg : kích thước hàng đợi trung bình q_time : thời điểm bắt đầu hàng đợi rỗi

count : số các gói đến ngay sau gói cuối cùng bị đánh dấu Tham số cố định:

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

minth : chiều dài ngưỡng nhỏ nhất của hàng đợi maxth : chiều dài ngưỡng lớn nhất của hàng đợi maxp : giá trị lớn nhất của Pb

s : thời gian truyền dẫn điển hình (của các gói nhỏ) q : kích thước hàng đợi hiện tại

Pa : xác suất đánh dấu gói hiện tại time : thời gian hiện tại

Router tính toán avg tại mỗi gói đến sử dụng công thức: avg ← avg + w * (q - avg)

Khi hàng đợi rỗng (chu kì rỗi) với m là số lượng các gói nhỏ có thể được truyền trong suốt các chu kì rỗi:

avg← (1- w)m avg m = (time – q_time)/ s

Và sau mỗi chu kì rỗi router sẽ tính toán kích thước hàng đợi trung bình giống như là có m gói đã được truyền vào hàng đợi trong suốt chu kì đó.

Khi avg thay đổi từ minth đến maxth thì xác suất đánh dấu các gói Pb thay đổi tuyến tính từ 0 đến maxp

Pb ← maxp(avg - minth) / (maxth - minth)

Xác suất đánh dấu cuối cùng Pa tăng chậm sẽ được tính toán từ gói bị đánh dấu cuối cùng:

Pa ← Pb / (1 – count * Pb)

Điều này giúp cho router không phải đợi lâu trước khi đánh dấu các gói. Giá trị count càng lớn thì xác suất đánh dấu càng cao. Router đánh dấu các gói tới khi kích thước hàng đợi trung bình vượt quá maxth.

Đồ án tốt nghiệp Đại học Chương 3: Quản lý hàng đợi và các thuật toán

Một lựa chọn cho các router RED là tính toán hàng đợi theo byte hơn là theo các gói. Với lựa chọn này thì kích thước trung bình hàng đợi sẽ phản ánh chính xác độ trễ trung bình tại router. Khi lựa chọn này được sử dụng thì thuật toán phải được chỉnh sửa để chắc chắn rằng xác suất các gói bị đánh dấu tỉ lệ với kích thước gói theo byte:

Pb ← maxp (avg - minth)/ (maxth - minth) Pb ← Pb * packetsize / maximum packetsize Pa ← Pb /(1- count * Pb)

Nhiệm vụ đánh dấu các gói được thực hiện nhờ vào Gateway RED tại mỗi router. Gateway RED là thành phần của mạng thực hiện nhiệm vụ đánh dấu các gói. RED là thuật toán được đưa ra và được điều khiển bởi các Gateway RED trong router. Các gateway này thực hiện việc loại bỏ tắc nghẽn bằng việc sử dụng thuật toán RED để tính toán các giá trị hàng đợi trung bình. Cổng này có thể thông báo tới các kết nối bị tắc nghẽn, cũng như loại bỏ các gói đến cổng hoặc thiết lập các bit trong phần tiêu đề của các gói. Khi kích thước hàng đợi trung bình vượt quá mức ngưỡng cho phép thì Gateway sẽ loại bỏ hoặc đánh dấu các gói đến bằng một hàm xác suất của kích thước hàng đợi trung bình. Các gateway RED giữ cho kích thước hàng đợi trung bình thấp trong khi vẫn cho phép các gói đến dưới dạng bó đi vào hàng đợi. Trong suốt thời gian tắc nghẽn xác suất các gateway thông báo cho các kết nối giảm kích thước cửa sổ của nó phải cân xứng với băng thông của các kết nối được chia sẻ qua gateway. Các gateway RED được thiết kế để hỗ trợ giao thức điều khiển tắc nghẽn lớp truyền tải như TCP.

3.3.3.2 Các tham số của RED

Các tham số thể hiện hiệu năng của thuật toán RED và để cấu hình các tham số. Các tham số xác suất loại bỏ gói, chiều dài hàng đợi trung bình, các giá trị ngưỡng.

a. Xác suất loại bỏ gói

X là biến ngẫu nhiên thể hiện số lượng các gói đến sau một gói được đánh dấu cho tới khi có một gói bị đánh dấu. Giả thiết kích thước hàng đợi trung bình là không đổi.

Cách 1: Các biến ngẫu nhiên có hình thức Nếu định nghĩa xác suất mất gói Pb là Pb = maxp * [(avg – minth) / (maxth – minth)] Thì ta có:

Prob [X=n] =(1-Pb)n-1 Pb

Do đó X là biến ngẫu nhiên có hình thức (RV) với tham số Pb và E[X] =1/Pb

Vấn đề phải đánh dấu các gói tại các khoảng đều đặn. Nếu có quá nhiều gói được đánh dấu gần nhau hay khoảng cách các gói đánh dấu quá dài thì nó có thể gây ra hiện

tượng đồng bộ toàn thể các luồng TCP và các kết nối giảm kích thước của sổ tại cùng một thời điểm.

Cách 2: Các biến ngẫu nhiên đồng bộ

Nếu định nghĩa xác suất loại bỏ gói là Pa

Pa = Pb / (1- count * Pb)

Count: là số lượng các gói đến ngay sau gói cuối cùng bị đánh dấu Prob[X=n] = b b P n P ) 1 ( 1− − ∏=−2 − − 0 ) 1 1 ( n i b b iP P = Pb với 1≤ n ≤ 1/ Pb prob[X= n] = 0 với n> 1/Pb

Với biến ngẫu nhiên đồng bộ trong số [1,2,3,…1/Pb] với E[X] =1/(2*Pb)+1/2 i: là biến chạy của các gói đến router ngay sau gói cuối cùng bị đánh dấu.

b. Chiều dài hàng đợi trung bình và wq

Cổng RED sử dụng bộ lọc thông thấp để tính toán kích thước hàng đợi trung bình. Do đó các khoảng thời gian ngắn hạn sẽ tăng tới kích thước hàng đợi đây là kết quả của lưu lượng dạng bó hoặc tắc nghẽn trong suốt chứ không phải là thay đổi trong kích thước hàng đợi trung bình. Bộ lọc thông thấp là trung bình dịch chuyển có trọng số tăng theo luỹ thừa (EWMA):

avg ← (1- wq)avg + wq*q

Trọng số wq quyết định thời gian của bộ lọc thông thấp. Việc lựa chọn wq quyết

định hằng số thời gian cho quá trình tính toán kích thước hàng đợi trung bình. Nếu wq

thì kích thước hàng đợi trung bình được đánh giá là đáp ứng quá chậm so với tắc nghẽn trong suốt. Còn nếu wq quá cao thì kích thước hàng đợi trung bình được đánh giá là quá gần với kích thước hàng đợi tức thời. Ta có thể thiết lập các biên giới trên hoặc dưới cho

tham số wq. Việc tính toán kích thước hàng đợi trung bình có thể được thực hiện một

cách hiệu quả ngay cả khi wq mang cả hai tính chất trên

• Biên giới trên của wq

Nếu wq quá lớn thì các thủ tục sẽ không xác đinh được tắc nghẽn qua gateway.

Giả sử ban đầu hàng đợi rỗng (kích thước trung bình =0), sau khi có các gói, số gói trong hàng đợi sẽ tăng từ 0 đến L gói (giả sử có L gói đến hàng đợi), lúc này kích thước hàng đợi trung bình được xác định như sau:

avgL = ∑ = − − L i i L q q w iw 1 ) 1 ( = wq(1-wq)L ∑ = − L i i q w i 1 ) 1 1 (

Đồ án tốt nghiệp Đại học Chương 3: Quản lý hàng đợi và các thuật toán với: ∑ = L i i ix 1 = 2 1 ) 1 ( ) 1 ( x x L Lx x L − − − + +

ta xác định được biên trên đối với wq như sau: avgL = L + 1 + q L q w w ) 1 1 ( − +1 −

Khi đưa ra giá trị minth tức là ta đã cho phép số lượng các bó của L gói đến gateway.

Sau đó trọng số wq sẽ được lựa chọn để thảo mãn avg < minth

avgL = L + 1 + q L q w w ) 1 1 ( − +1− < minth

• Biên dưới của wq

Các gateway RED được thiết kế sao cho thuật toán RED luôn giữ kết quả tính toán kích thước hàng đợi trung bình nằm dưới mức ngưỡng nào đó. Tuy nhiên nếu giá trị wq được thiết lập quá chậm thì giá trị avg sẽ đáp ứng chậm với sự thay đổi kích thước hàng đợi trong thực tế. Trong trường hợp này thì các gateway RED không loại bỏ được các mức nghẽn ban đầu.

c. Các giá trị ngưỡng: thiết lập giá trị minth,maxth

Giá trị tối ưu của minth, maxth phụ thuộc vào kích thước hàng đợi trung bình mong muốn. Nếu lưu lượng đến hàng đợi dưới dạng bó thì giá trị minth phải lớn tương xứng để để cho phép duy trì việc sử dụng các kết nối tại mức cao có thể chấp nhận được.

Giá trị minth phụ thuộc chính xác vào việc cân bằng theo mong muốn giữa trễ trung bình thấp và sự tận dụng kết nối cao tại router. Việc thiết lập tối ưu giá trị minth cũng phụ thuộc một phần vào tốc độ kết nối, trễ lan truyền, và kích thước hàng đợi lớn nhất.

Giá trị maxth tối ưu phụ thuộc vào trễ trung bình lớn nhất được cho phép bởi gateway. Các gateway hoạt động hiệu quả nhất khi giá trị (maxth- minth) rộng hơn lượng tăng thêm kích thước hàng đợi trung bình được tính toán trong một thời gian Roundtrip. Thường chọn maxth = 3 minth

Một phần của tài liệu Nghiên cứu các kĩ thuật quản lý hàng đợi trong mạng IP (Trang 68 - 75)

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

(98 trang)
w