Phân tích thuật toán RED phù hợp với đường truyền băng thông thấp 1 Thuật toán

Một phần của tài liệu giảm trễ (Trang 32 - 38)

- Protocol Frame Relay FECN,BECN Session identifler ,DE(for Frame Relay

3.5Phân tích thuật toán RED phù hợp với đường truyền băng thông thấp 1 Thuật toán

3.5.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 các thiết bị định tuyến được điền đầy và chúng 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 thiết bị định tuyến 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

• Tránh đồng bộ toàn cục: Khi có dấu hiệu tắc nghẽn xảy ra trong mạng, thiết bị định tuyến 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 thiết bị định tuyến.

Hình 3.11 : 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

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 thiết bị định tuyến. Nó

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

đư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 nó. Sau mỗi chu kì rỗi thiết bị định tuyến 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 thiết bị định tuyến đá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 thiết bị định tuyến 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.12 : Mô tả mối quan hệ giữa maxp và độ chiếm giữ hàng đợi

Thuật toán chung: 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; else if maxth ≤ avg

Đánh dấu các gói đến Đ ch iế m g iữ h àn g đ i Maxp

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 thiết bị định tuyến.

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

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

Thiết bị định tuyến 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 thiết bị định tuyến 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 thiết bị định tuyến 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. Thiết bị định tuyến đánh dấu các gói tới khi kích thước hàng đợi trung bình vượt quá maxth.

Một lựa chọn cho các thiết bị định tuyến 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 thiết bị định tuyến. 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 thiết bị định tuyến. 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 thiết bị định tuyến. 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.

Một phần của tài liệu giảm trễ (Trang 32 - 38)