Tương tự như kỹ thuật FIFO, Weighted Fair Queuing (WFQ) không cho phép người quản trị can thiệp vào quá trình phân loại lưu lượng (khác với PQ và CQ). WFQ tự động phân loại các gói tin dựa trên thông tin về luồng lưu lượng, trong đó từng luồng sẽ được đặt trong một hàng đợi riêng lẻ. Một luồng được định nghĩa bao gồm tất cả các gói tin có cùng giá trị như:
– Địa chỉ IP nguồn.
– Địa chỉ IP đích.
– Giao thức lớp transport.
– Địa chỉ cổng nguồn (TCP hay UDP).
– Địa chỉ cổng đích TCP hay UDP.
– Giá trị độ ưu tiên của gói tin IP Precedence (IPP).
Vì WFQ phân các gói tin vào các luồng lưu lượng khác nhau và sau đó đưa các luồng này vào trong những hàng đợi khác nhau nên router sẽ có số hàng đợi khác nhau. Số hàng đợi này nhiều hơn bất kỳ các công cụ hàng đợi khác (các công cụ hàng đợi không xử lý theo luồng lưu lượng). Cơ chế WFQ dùng các thuật toán khác với các thuật toán của các kỹ thuật hàng đợi khác vì WFQ có thể quản lý một số lượng lớn các hàng đợi. WFQ hoạt động như sau:
– Các luồng có cùng độ ưu tiên IP Precedence cho gói tin IP sẽ được cấp cùng một mức bandwidth, bất chấp có bao nhiêu byte trong mỗi luồng lưu lượng.
– Đối với những luồng có những giá trị IP P Precedence khác nhau, các luồng có độ ưu tiên IP Precedence cao hơn sẽ được cấp một bandwidth thông cao hơn.
– Các hàng đợi là trống thì WFQ sẽ cấp phần bandwidth dư cho những hàng đợi khác.
– Kết quả là WFQ sẽ ưu tiên cho những luồng có dung lượng nhỏ và có độ ưu tiên cao.
Ví dụ: nếu WFQ đang quản lý 10 hàng đợi với các giá trị IP Precedence bằng nhau trên một cổng 128kbps, mỗi luồng lưu lượng sẽ nhận được khoảng bandwidth bình quân 12.8kbps. Các hàng đợi sẽ làm cho những luồng lưu lượng lớn hơn 12.8kbps, nghĩa là bị delay nhiều hơn. Các luồng có băng thông nhỏ hơn 12.8kbps sẽ truyền đi nhanh hơn và trong trường hợp các hàng đợi là trống thì WFQ sẽ cấp phần băng thông dư cho những hàng đợi khác. Kết quả là các luồng lưu lượng thấp sẽ đi qua, còn luồng lưu lượng cao sẽ bị ảnh hưởng.
Mục đích chính của WFQ là cung cấp đủ bandwidth cho các luồng lưu lượng có độ ưu tiên IP Precedence cao. Để làm điều này, các luồng được gán trọng số dựa theo giá trị IP Precedence + 1. Nghĩa là các luồng có độ ưu tiên IP Precedence bằng 7 sẽ có bandwidth nhiều hơn tám lần so với luồng có độ ưu tiên IP Precedence bằng 0, bởi vì (7+1)/(0+1)=8.
Để đạt được mục đích cấp phát bandwidth, WFQ dùng bộ định thời khá đơn giản. Bộ định thời sẽ lấy gói tin có chỉ số tuần tự thấp nhất sequence number SN (còn gọi là thời gian hoàn thành) khi nó cần chuyển gói tin kế tiếp đến hàng đợi phần cứng.
Cơ chế WFQ sẽ gán mỗi gói tin một chỉ số tuần tự SN khi gói tin đi vào hàng đợi WFQ. Tiến trình gán chỉ số tuần tự SN cũng là một phần quan trọng trong cơ chế định thời của WFQ. Bộ định thời WFQ sẽ tính toán chỉ số tuần tự SN dựa trên nhiều thông số của luồng lưu lượng, bao gồm cả chiều dài và độ ưu tiên IP Precedence của gói tin.
Công thức tính chỉ số tuần tự SN của một gói tin trong một luồng lưu lượng là như sau:
SN = chỉ số SN trước đó + (trọng số weight * chiều dài gói tin mới).
Trong đó trọng số được tính như sau:
Weight = 32384 / (IP Precedence + 1).
Công thức trên có tham chiếu đến chiều dài của gói tin mới, trọng số của luồng lưu lượng và giá trị SN trước đó.
Bảng trọng số weight:
Bằng cách xem xét chiều dài gói tin, việc tính toán số tuần tự SN có thể dẫn đến một chỉ số SN rất cao cho những gói tin có kích thước lớn và chỉ số tuần tự SN thấp hơn cho những gói tin có kích thước nhỏ hơn. Với việc bao gồm luôn chỉ số tuần tự SN của gói tin trước đó trong hàng đợi, công thức này sẽ tính ra chỉ số SN lớn hơn cho những gói tin trong hàng đợi đã có một số lượng lớn gói tin.
Nguyễn Ngọc Đại – VnPro
– Địa chỉ IP nguồn.
– Địa chỉ IP đích.
– Giao thức lớp transport.
– Địa chỉ cổng nguồn (TCP hay UDP).
– Địa chỉ cổng đích TCP hay UDP.
– Giá trị độ ưu tiên của gói tin IP Precedence (IPP).
Vì WFQ phân các gói tin vào các luồng lưu lượng khác nhau và sau đó đưa các luồng này vào trong những hàng đợi khác nhau nên router sẽ có số hàng đợi khác nhau. Số hàng đợi này nhiều hơn bất kỳ các công cụ hàng đợi khác (các công cụ hàng đợi không xử lý theo luồng lưu lượng). Cơ chế WFQ dùng các thuật toán khác với các thuật toán của các kỹ thuật hàng đợi khác vì WFQ có thể quản lý một số lượng lớn các hàng đợi. WFQ hoạt động như sau:
– Các luồng có cùng độ ưu tiên IP Precedence cho gói tin IP sẽ được cấp cùng một mức bandwidth, bất chấp có bao nhiêu byte trong mỗi luồng lưu lượng.
– Đối với những luồng có những giá trị IP P Precedence khác nhau, các luồng có độ ưu tiên IP Precedence cao hơn sẽ được cấp một bandwidth thông cao hơn.
– Các hàng đợi là trống thì WFQ sẽ cấp phần bandwidth dư cho những hàng đợi khác.
– Kết quả là WFQ sẽ ưu tiên cho những luồng có dung lượng nhỏ và có độ ưu tiên cao.
Ví dụ: nếu WFQ đang quản lý 10 hàng đợi với các giá trị IP Precedence bằng nhau trên một cổng 128kbps, mỗi luồng lưu lượng sẽ nhận được khoảng bandwidth bình quân 12.8kbps. Các hàng đợi sẽ làm cho những luồng lưu lượng lớn hơn 12.8kbps, nghĩa là bị delay nhiều hơn. Các luồng có băng thông nhỏ hơn 12.8kbps sẽ truyền đi nhanh hơn và trong trường hợp các hàng đợi là trống thì WFQ sẽ cấp phần băng thông dư cho những hàng đợi khác. Kết quả là các luồng lưu lượng thấp sẽ đi qua, còn luồng lưu lượng cao sẽ bị ảnh hưởng.
Mục đích chính của WFQ là cung cấp đủ bandwidth cho các luồng lưu lượng có độ ưu tiên IP Precedence cao. Để làm điều này, các luồng được gán trọng số dựa theo giá trị IP Precedence + 1. Nghĩa là các luồng có độ ưu tiên IP Precedence bằng 7 sẽ có bandwidth nhiều hơn tám lần so với luồng có độ ưu tiên IP Precedence bằng 0, bởi vì (7+1)/(0+1)=8.
Để đạt được mục đích cấp phát bandwidth, WFQ dùng bộ định thời khá đơn giản. Bộ định thời sẽ lấy gói tin có chỉ số tuần tự thấp nhất sequence number SN (còn gọi là thời gian hoàn thành) khi nó cần chuyển gói tin kế tiếp đến hàng đợi phần cứng.
Cơ chế WFQ sẽ gán mỗi gói tin một chỉ số tuần tự SN khi gói tin đi vào hàng đợi WFQ. Tiến trình gán chỉ số tuần tự SN cũng là một phần quan trọng trong cơ chế định thời của WFQ. Bộ định thời WFQ sẽ tính toán chỉ số tuần tự SN dựa trên nhiều thông số của luồng lưu lượng, bao gồm cả chiều dài và độ ưu tiên IP Precedence của gói tin.
Công thức tính chỉ số tuần tự SN của một gói tin trong một luồng lưu lượng là như sau:
SN = chỉ số SN trước đó + (trọng số weight * chiều dài gói tin mới).
Trong đó trọng số được tính như sau:
Weight = 32384 / (IP Precedence + 1).
Công thức trên có tham chiếu đến chiều dài của gói tin mới, trọng số của luồng lưu lượng và giá trị SN trước đó.
Bảng trọng số weight:
Bảng trọng số weight
Bằng cách xem xét chiều dài gói tin, việc tính toán số tuần tự SN có thể dẫn đến một chỉ số SN rất cao cho những gói tin có kích thước lớn và chỉ số tuần tự SN thấp hơn cho những gói tin có kích thước nhỏ hơn. Với việc bao gồm luôn chỉ số tuần tự SN của gói tin trước đó trong hàng đợi, công thức này sẽ tính ra chỉ số SN lớn hơn cho những gói tin trong hàng đợi đã có một số lượng lớn gói tin.
Nguyễn Ngọc Đại – VnPro