Chính sách loại bỏ gói tin của WFQ, số hàng đợi và chiều dài hàng đợi
Trong hoạt động của router, mặc dù đã đưa các lưu lượng vào các hàng đợi tương ứng khi có nghẽn xảy ra, nhưng nếu lưu lượng đi qua router vẫn tiếp tục tăng cao, bắt buộc router sẽ phải tiến hành việc loại bỏ bớt gói tin để giảm bớt nghẽn. WFQ dùng tiến trình hai bước gọi là loại bỏ cuối hàng có bổ sung (modified tail drop) để chọn lựa khi nào thì loại bỏ gói tin. Theo tên gọi, tiến trình này khác với tiến trình loại bỏ cuối hàng (tail-drop) thông thường.
Đầu tiên, WFQ sẽ xem xét giới hạn tuyệt đối của tất cả các gói tin trong hàng đợi giữa tất cả các hàng đợi, giới hạn này gọi là hold-queue limit. Nếu một gói tin đến hàng đợi và giới hạn hold-queue đã tới, gói tin sẽ bị loại bỏ. Quyết định đó không dựa trên một hàng duy nhất nhưng trên toàn hệ thống hàng đợi của WFQ. Nói cách khác, giới hạn hold-queue này là một chỉ số toàn cục, được tính toán tổng thể giữa các hàng đợi WFQ.
Thứ hai là WFQ sẽ xem xét chiều dài của một hàng đợi mà những gói tin sẽ được đưa vào. Trước khi đưa một gói tin vào hàng đợi, mức ngưỡng congestive discard threshold (CDT) sẽ được kiểm tra với chiều dài thực sự của hàng đợi đó. Nếu hàng đợi là dài hơn CDT, một gói tin sẽ bị loại bỏ, nhưng có thể không phải là những gói tin mới đến. Gói tin có chỉ số tuần tự cao nhất trong tất cả các hàng đợi của WFQ sẽ bị loại bỏ.
Một cách cơ bản, nếu gói mới đến cần phải đi vào một hàng đợi đã vượt quá CDT, WFQ sẽ loại bỏ gói tin có chỉ số tuần tự cao nhất từ bất kỳ hàng đợi nào. Giá trị CDT phải gán bằng bội số của 2. IOS sẽ không chấp nhận bất kỳ giá trị nào khác.
Các kiểu hàng đợi WFQ
WFQ có thể được cấu hình dùng tối đa 4096 hàng đợi, gọi là dynamic queue trong kết quả của lệnh show. Mỗi khi có một dòng lưu lượng, router sẽ tạo ra một dynamic queue để truyền dòng lưu lượng trên. Khi xử lý xong một dòng lưu lượng, hàng đợi đó sẽ bị huỷ. Một điều thú vị là các giá trị có thể cấu hình được là bội số của 2, nằm trong khoảng từ 16 đến 4096. IOS giới hạn các giá trị này bởi vì WFQ thực hiện một thuật toán hash để phân loại traffic và thuật toán hash chỉ hoạt động khi số hàng đợi là một trong những giá trị này.
Thêm vào đó, WFQ giữ tám hàng đợi ẩn cho các lưu lượng được tạo ra bởi router. WFQ dùng một mức trọng số rất thấp cho các hàng đợi này để ưu tiên cho các các lưu lượng của hệ thống. Ngoài ra, có một vài hàng đợi trong số 4096 hàng đợi có thể được dùng bởi giao thức Resource Reservation Protocols (RSVP) để giữ băng thông. RSVP dùng các báo hiệu để giữ phần băng thông tối thiểu cho những dòng lưu lượng đặc biệt trong một hệ thống mạng, dựa chủ yếu vào các công cụ hàng đợi để thực sự hiện thực được tính năng giữ băng thông. WFQ, CBWFQ, và LLQ hỗ trợ RSVP.
Trong hoạt động của router, mặc dù đã đưa các lưu lượng vào các hàng đợi tương ứng khi có nghẽn xảy ra, nhưng nếu lưu lượng đi qua router vẫn tiếp tục tăng cao, bắt buộc router sẽ phải tiến hành việc loại bỏ bớt gói tin để giảm bớt nghẽn. WFQ dùng tiến trình hai bước gọi là loại bỏ cuối hàng có bổ sung (modified tail drop) để chọn lựa khi nào thì loại bỏ gói tin. Theo tên gọi, tiến trình này khác với tiến trình loại bỏ cuối hàng (tail-drop) thông thường.
Đầu tiên, WFQ sẽ xem xét giới hạn tuyệt đối của tất cả các gói tin trong hàng đợi giữa tất cả các hàng đợi, giới hạn này gọi là hold-queue limit. Nếu một gói tin đến hàng đợi và giới hạn hold-queue đã tới, gói tin sẽ bị loại bỏ. Quyết định đó không dựa trên một hàng duy nhất nhưng trên toàn hệ thống hàng đợi của WFQ. Nói cách khác, giới hạn hold-queue này là một chỉ số toàn cục, được tính toán tổng thể giữa các hàng đợi WFQ.
Thứ hai là WFQ sẽ xem xét chiều dài của một hàng đợi mà những gói tin sẽ được đưa vào. Trước khi đưa một gói tin vào hàng đợi, mức ngưỡng congestive discard threshold (CDT) sẽ được kiểm tra với chiều dài thực sự của hàng đợi đó. Nếu hàng đợi là dài hơn CDT, một gói tin sẽ bị loại bỏ, nhưng có thể không phải là những gói tin mới đến. Gói tin có chỉ số tuần tự cao nhất trong tất cả các hàng đợi của WFQ sẽ bị loại bỏ.
Một cách cơ bản, nếu gói mới đến cần phải đi vào một hàng đợi đã vượt quá CDT, WFQ sẽ loại bỏ gói tin có chỉ số tuần tự cao nhất từ bất kỳ hàng đợi nào. Giá trị CDT phải gán bằng bội số của 2. IOS sẽ không chấp nhận bất kỳ giá trị nào khác.
Các kiểu hàng đợi WFQ
WFQ có thể được cấu hình dùng tối đa 4096 hàng đợi, gọi là dynamic queue trong kết quả của lệnh show. Mỗi khi có một dòng lưu lượng, router sẽ tạo ra một dynamic queue để truyền dòng lưu lượng trên. Khi xử lý xong một dòng lưu lượng, hàng đợi đó sẽ bị huỷ. Một điều thú vị là các giá trị có thể cấu hình được là bội số của 2, nằm trong khoảng từ 16 đến 4096. IOS giới hạn các giá trị này bởi vì WFQ thực hiện một thuật toán hash để phân loại traffic và thuật toán hash chỉ hoạt động khi số hàng đợi là một trong những giá trị này.
Thêm vào đó, WFQ giữ tám hàng đợi ẩn cho các lưu lượng được tạo ra bởi router. WFQ dùng một mức trọng số rất thấp cho các hàng đợi này để ưu tiên cho các các lưu lượng của hệ thống. Ngoài ra, có một vài hàng đợi trong số 4096 hàng đợi có thể được dùng bởi giao thức Resource Reservation Protocols (RSVP) để giữ băng thông. RSVP dùng các báo hiệu để giữ phần băng thông tối thiểu cho những dòng lưu lượng đặc biệt trong một hệ thống mạng, dựa chủ yếu vào các công cụ hàng đợi để thực sự hiện thực được tính năng giữ băng thông. WFQ, CBWFQ, và LLQ hỗ trợ RSVP.
Comment