Weighted Random Early Detection
Khi một hàng đợi bị đầy, IOS không còn chổ cho các gói tin vừa mới đến, vì vậy nó sẽ loại bỏ các gói này. Hiện tượng này gọi là loại bỏ cuối hàng (tail drop). Thông thường khi một hàng đợi bị đầy, vài gói tin sẽ bị loại bỏ cùng lúc ở một thời điểm.
Cơ chế loại bỏ cuối hàng taildrop có thể gây ảnh hưởng tiêu cực trên lưu lượng mạng, đặc biệt là lưu lượng TCP. Khi một gói tin bị mất, vì bất kỳ lý do gì, các kết nối TCP sẽ giảm tốc độ gửi dữ liệu. Khi hiện tượng loại bỏ gói tin xảy ra và nhiều gói tin bị mất, các kết nối TCP sẽ giảm tốc độ thêm nữa. Ngoài ra, hầu như các mạng đều gửi một tỉ lệ phần trăm của lưu lượng TCP nhiều hơn UDP, nghĩa là toàn bộ tải của mạng có khuynh hướng bị loại bỏ.
Một điều thú vị là thông lượng tổng thể của mạng có thể được cải tiến bằng cách loại bỏ chỉ vài gói tin khi hàng đợi bắt đầu bị đầy. Cách này thì tốt hơn là chờ những ảnh hưởng của cơ chế loại bỏ taildrop. Cisco tạo ra cơ chế Weighted Random Early Detection (WRED) đặc biệt cho mục đích giám sát chiều dài hàng đợi và loại bỏ một số gói tin trong hàng đợi để cải tiến hiệu năng của mạng. Khi hàng đợi trở nên dài hơn, WRED bắt đầu loại bỏ nhiều gói tin, với hy vọng rằng sự gia giảm trong phần tải có thể đủ để ngăn ngừa hàng đợi bị đầy.
WRED dùng vài chỉ số khi thực hiện quyết định. Đầu tiên, WRED dùng thông số kích thước hàng đợi trung bình khi nó quyết định là một hàng đợi đã bị đầy đủ để bắt đầu loại bỏ gói tin. WRED sau đó sẽ so sánh chiều sâu trung bình với mức giới chặn trên và chặn dưới, thực hiện các hành động loại bỏ khác nhau tùy thuộc vào kết quả so sánh. Các hành động được liệt kê trong bảng dưới đây:
Khi kích thước trung bình của hàng đợi là rất thấp hay rất cao, hành động là rất rõ ràng, mặc dù thuật ngữ fulldrop có thể gây chút ngạc nhiên. Khi kích thước hàng đợi trung bình tăng trên mức giới hạn trên, WRED sẽ loại bỏ tất cả các gói tin mới. Mặc dù hành động này có thể giống cơ chế loại bỏ cuối hàng taildrop, về phương diện kỹ thuật hai cơ chế không giống nhau, vì hàng đợi thực sự có thể không bị đầy. Vì vậy, để thấy rõ sự khác biệt này, WRED gọi nhóm hành động này là loại bỏ hoàn toàn full drop.
Khi kích thước trung bình của hàng đợi nằm giữa hai giới hạn, WRED sẽ loại bỏ một số gói tin. Tỉ lệ loại bỏ tăng tuyến tính khi kích thước trung bình của hàng đợi tăng từ mức tối thiểu lên mức tối đa như mô tả trong hình trên.
Thông số cuối cùng của WRED ảnh hưởng đến hoạt động của nó là thông số MPD (mark probability denominator). Thông số này là cơ sở để tính ra tỉ lệ phần trăm tối đa 10% trong hình trên. IOS tính tỉ lệ phần trăm bị loại bỏ được dùng ở mức giới hạn chặn trên dựa trên công thức đơn giản 1/MPD. Trong hình, giá trị MPD bằng 10 sẽ tính ra giá trị nêu trên, nghĩa là tốc độ loại bỏ gói tin tăng từ 0 đến 10% khi kích thước hàng đợi trung bình tăng từ mức tối thiểu đến mức tối đa. Ngoài ra, khi WRED loại bỏ gói tin, nó sẽ ngẫu nhiên chọn lựa gói tin để loại bỏ.
WRED gán trọng số các gói tin như thế nào?
WRED gán các độ ưu tiên đến các gói tin với một giá trị IPP hoặc DSCP nào đó. Để thực hiện việc này, WRED dùng các mẫu lưu lượng khác nhau cho các giá trị IPP và DSCP khác nhau. Một mẫu lưu lượng WRED bao gồm việc gán ba biến quan trọng của WRED: mức chặn dưới, mức chặn trên và giá trị MPD. Hình dưới đây mô tả một trường hợp, trong đó có hai mẫu lưu lượng WRED, một mẫu IPP bằng 0 và một mẫu IPP bằng 3.
Như trong hình mô tả, giá trị chặn dưới của IPP 3 là cao hơn mức chặn dưới của IPP 0. Kết quả là, giá trị IPP 0 sẽ bị loại bỏ sớm hơn của gói IPP 3. Ngoài ra, giá trị MPD của IPP 3 cao hơn làm cho một tỉ lệ loại bỏ thấp hơn (dựa trên công thức 1/MPD).
Bảng dưới đây liệt kê các thông số mặc định của WRED cho các giá trị DSCP khác nhau. Theo chương trước, giá trị AF kết thúc bằng 1 (ví dụ AF21) sẽ được WRED xử lý tốt hơn những giá trị DSCP tận cùng bằng 2 (ví dụ AF32). Các giá trị mặc định của hệ điều hành IOS sẽ đạt được mục đích đó bằng cách gán giá trị giới hạn chặn dưới và chặn trên thấp hơn cho các giá trị DSCP.
Khi một hàng đợi bị đầy, IOS không còn chổ cho các gói tin vừa mới đến, vì vậy nó sẽ loại bỏ các gói này. Hiện tượng này gọi là loại bỏ cuối hàng (tail drop). Thông thường khi một hàng đợi bị đầy, vài gói tin sẽ bị loại bỏ cùng lúc ở một thời điểm.
Cơ chế loại bỏ cuối hàng taildrop có thể gây ảnh hưởng tiêu cực trên lưu lượng mạng, đặc biệt là lưu lượng TCP. Khi một gói tin bị mất, vì bất kỳ lý do gì, các kết nối TCP sẽ giảm tốc độ gửi dữ liệu. Khi hiện tượng loại bỏ gói tin xảy ra và nhiều gói tin bị mất, các kết nối TCP sẽ giảm tốc độ thêm nữa. Ngoài ra, hầu như các mạng đều gửi một tỉ lệ phần trăm của lưu lượng TCP nhiều hơn UDP, nghĩa là toàn bộ tải của mạng có khuynh hướng bị loại bỏ.
Một điều thú vị là thông lượng tổng thể của mạng có thể được cải tiến bằng cách loại bỏ chỉ vài gói tin khi hàng đợi bắt đầu bị đầy. Cách này thì tốt hơn là chờ những ảnh hưởng của cơ chế loại bỏ taildrop. Cisco tạo ra cơ chế Weighted Random Early Detection (WRED) đặc biệt cho mục đích giám sát chiều dài hàng đợi và loại bỏ một số gói tin trong hàng đợi để cải tiến hiệu năng của mạng. Khi hàng đợi trở nên dài hơn, WRED bắt đầu loại bỏ nhiều gói tin, với hy vọng rằng sự gia giảm trong phần tải có thể đủ để ngăn ngừa hàng đợi bị đầy.
WRED dùng vài chỉ số khi thực hiện quyết định. Đầu tiên, WRED dùng thông số kích thước hàng đợi trung bình khi nó quyết định là một hàng đợi đã bị đầy đủ để bắt đầu loại bỏ gói tin. WRED sau đó sẽ so sánh chiều sâu trung bình với mức giới chặn trên và chặn dưới, thực hiện các hành động loại bỏ khác nhau tùy thuộc vào kết quả so sánh. Các hành động được liệt kê trong bảng dưới đây:
Khi kích thước trung bình của hàng đợi là rất thấp hay rất cao, hành động là rất rõ ràng, mặc dù thuật ngữ fulldrop có thể gây chút ngạc nhiên. Khi kích thước hàng đợi trung bình tăng trên mức giới hạn trên, WRED sẽ loại bỏ tất cả các gói tin mới. Mặc dù hành động này có thể giống cơ chế loại bỏ cuối hàng taildrop, về phương diện kỹ thuật hai cơ chế không giống nhau, vì hàng đợi thực sự có thể không bị đầy. Vì vậy, để thấy rõ sự khác biệt này, WRED gọi nhóm hành động này là loại bỏ hoàn toàn full drop.
Khi kích thước trung bình của hàng đợi nằm giữa hai giới hạn, WRED sẽ loại bỏ một số gói tin. Tỉ lệ loại bỏ tăng tuyến tính khi kích thước trung bình của hàng đợi tăng từ mức tối thiểu lên mức tối đa như mô tả trong hình trên.
Thông số cuối cùng của WRED ảnh hưởng đến hoạt động của nó là thông số MPD (mark probability denominator). Thông số này là cơ sở để tính ra tỉ lệ phần trăm tối đa 10% trong hình trên. IOS tính tỉ lệ phần trăm bị loại bỏ được dùng ở mức giới hạn chặn trên dựa trên công thức đơn giản 1/MPD. Trong hình, giá trị MPD bằng 10 sẽ tính ra giá trị nêu trên, nghĩa là tốc độ loại bỏ gói tin tăng từ 0 đến 10% khi kích thước hàng đợi trung bình tăng từ mức tối thiểu đến mức tối đa. Ngoài ra, khi WRED loại bỏ gói tin, nó sẽ ngẫu nhiên chọn lựa gói tin để loại bỏ.
WRED gán trọng số các gói tin như thế nào?
WRED gán các độ ưu tiên đến các gói tin với một giá trị IPP hoặc DSCP nào đó. Để thực hiện việc này, WRED dùng các mẫu lưu lượng khác nhau cho các giá trị IPP và DSCP khác nhau. Một mẫu lưu lượng WRED bao gồm việc gán ba biến quan trọng của WRED: mức chặn dưới, mức chặn trên và giá trị MPD. Hình dưới đây mô tả một trường hợp, trong đó có hai mẫu lưu lượng WRED, một mẫu IPP bằng 0 và một mẫu IPP bằng 3.
Như trong hình mô tả, giá trị chặn dưới của IPP 3 là cao hơn mức chặn dưới của IPP 0. Kết quả là, giá trị IPP 0 sẽ bị loại bỏ sớm hơn của gói IPP 3. Ngoài ra, giá trị MPD của IPP 3 cao hơn làm cho một tỉ lệ loại bỏ thấp hơn (dựa trên công thức 1/MPD).
Bảng dưới đây liệt kê các thông số mặc định của WRED cho các giá trị DSCP khác nhau. Theo chương trước, giá trị AF kết thúc bằng 1 (ví dụ AF21) sẽ được WRED xử lý tốt hơn những giá trị DSCP tận cùng bằng 2 (ví dụ AF32). Các giá trị mặc định của hệ điều hành IOS sẽ đạt được mục đích đó bằng cách gán giá trị giới hạn chặn dưới và chặn trên thấp hơn cho các giá trị DSCP.
Comment