Thuật toán hàng đợi cân bằng có trọng số là một thuật toán nằm trong họ các thuật toán hàng đợi cân bằng (FQ). Kĩ thuật này có thể được xem là sự phối hợp của hai kĩ thuật hàng đợi cân bằng và hàng đợi ưu tiên. Tất cả các hàng đợi đều được phục vụ
do đó có thể tránh được tình trạng bỏ đói hàng đợi, tuy nhiên sẽ có một số hàng đợi được ưu tiên phục vụ nhiều hơn. Một trọng số sẽ được gán cho một số hàng đợi để ấn định chỉ số ưu tiên cao hơn cho chúng.
Hình 3.5 : Hoạt động của hàng đợi WFQ
Ví dụ: có một hàng đợi sẽ chiếm một nửa băng thông khả dụng, nửa băng thông còn lại sẽ chia cho các hàng đợi còn lại. Lưu lượng có thể được ưu tiên tuỳ theo các gói được đánh dấu, địa chỉ IP đích, địa chỉ IP nguồn hay số cổng, thông tin trong trường TOS của phần tiêu đề gói tin IP. WFQ đánh các trọng số cho các luồng lưu lượng do đó các lưu lượng có mức băng thông thấp sẽ đạt được các mức ưu tiên bằng nhau. Nếu các hàng đợi có mức ưu tiên cao không được sử dụng thì các lưu lượng có mức ưu tiên thấp sẽ sử dụng các hàng đợi đó. Điều này ngăn cản các lưu lượng có băng thông cao giành lấy các tài nguyên đã được chia sẻ. Tính năng quan trọng của kĩ thuật này là việc di chuyển các lưu lượng tương thích thời gian thực lên trước hàng đợi và chia sẻ một cách công bằng băng thông còn lại với các hàng đợi khác.
Khi các gói đến nó sẽ được phân loại bởi bộ phân loại và được ấn định tới một cửa. Cửa này là một thực thể của hàng đợi mà cùng với các cửa khác được sắp xếp theo trật tự của thuật toán round robin có trọng số. Chỉ theo cách này thì dịch vụ mới thực sự được đối sử công bằng cho mỗi hàng đợi. Chìa khoá của sự phân loại là đàm thoại, điều này có nghĩa là việc thể hiện trọng số để phân loại phụ thuộc vào thông tin nằm trong phần tiêu đề gói tin (địa chỉ nguồn, địa chỉ đích, giao thức cổng nguồn, IP precedence). Bởi vì trong thực tế không thể áp dụng một hàng đợi cho một cuộc đàm thoại, WFQ sẽ sử dụng thuật toán Băm để chia cắt luồng lưu lượng ra thành các luồng nhỏ rồi đưa vào một số gới hạn các hàng đợi được lựa chọn bởi người sử dụng hay được cố định bởi
Đồ á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ặc định. Cách này làm tăng số lượng lớn nhất có thể của các hàng đợi, thể hiện sự cân bằng của thuật toán. Điều này có nghĩa là ta có thể có rất nhiều luồng cùng chia sẻ trong cùng một hàng đợi (được thể hiện dựa trên màu sắc khác nhau của các gói trong hàng đợi). Khi các gói đến, bộ phân loại sẽ kiểm tra thông tin trong phần header của gói tin và sử dụng các thông tin này, tính toán số lượng nằm giữa 1 và số hàng đợi. Sau đó lắp đặt các gói này vào các hàng đợi định nghĩa bởi các số này. WFQ tách các gói có độ ưu tiên cao hơn được đánh dấu các bit IP Precedence bởi các router và có thể lập lịch nhanh hơn. Theo cách này thì với các precedence cao thì WFQ được cấp băng thông nhiều hơn cho các luồng này hơn các luồng các khác. WFQ được sử dụng như các hàng đợi mặc định trong các giao diện nối tiếp của các router của cisco được cấu hình tại tốc độ nhỏ hơn hoặc bằng tốc độ luồng E1(2.048 Mb/s). Ngoài các bit precedence thì WFQ có thể phân loại lưu lượng thành các luồng khác nhau (hàng đợi) dựa trên cơ sở mạng đích, mạng nguồn hoặc địa chỉ MAC, cổng nguồn, cổng đích, giao thức, số ổ cắm của khe, giá trị nhận dạng kết nối liên kết chuyển tiếp khung (DLCI) và giá trị TOS. Có loại xử lý luồng : các phiên làm việc có băng thông cao và các phiên làm viêcj có băng thông thấp. Lưu lượng băng thông thấp có độ ưu tiên hiệu quả hơn so với lưu lượng yêu cầu băng thông lớn và các lưu lượng băng thông lớn chia sẻ dịch vụ truyền dẫn tương ứng theo các trọng số được ấn định. Các luồng lưu lượng băng thông thấp bao gồm các phần chính của lưu lượng, dịch vụ ưu đãi nhận, cho phép toàn bộ tải cung cấp được gửi trong trong một khuôn mẫu mang tính thời gian. Các luồng lưu lượng băng thông cao chia sẻ băng thông còn lại. Các bản tin mới đối với các luồng yêu cầu băng thông cao bị loại bỏ sau khi bắt gặp mức ngưỡng bản tin tắc nghẽn. Tuy nhiên các luồng băng thông thấp bao gồm bản tin điều khiển sẽ tiếp tục xếp hàng lại. Kết quả là hàng đợi cân bằng thỉnh thoảng sẽ chứa nhiều bản tin hơn là được phân loại bởi số mức ngưỡng. Ngoài ra WFQ có thể làm việc với RSVP (giao thức đặt trước tài nguyên) để xây dựng nên các cấu trúc dịch vụ tích hợp (kiến trúc được thiết kế để đảm bảo băng thông mạng từ đầu cuối đến đầu cuối trong mạng IP), hay liên kết với các lược đồ thông báo tắc nghẽn Frame Relay bằng việc chỉnh sửa các trọng số của hàng đợi để đáp ứng cho các thông báo tắc nghẽn thuận(FECN) và thông báo tắc nghẽn ngược (BECN), và một chút để xây dựng kiến trúc dịch vụ phân biệt sử dụng các bít IP Precedence.
WFQ cung cấp sự quản lý ưu tiên lưu lượng động theo từng loại lưu lượng bên trong các gói. WFQ có thể quản lý các luồng dữ liệu duplex, ví dụ như giữa các cặp ứng dụng, và các luồng dữ liệu đơn giản như thoại và thoại và video. WFQ cung cấp giải pháp cho các trường hợp yêu cầu thời gian nhất quán cho các người sử dụng mạng có tải nặng và nhẹ giống như là không cung cấp thêm băng thông thừa. WFQ tự động tương thích để thay đổi các điều kiện lưu lượng của mạng