CBQ là sự mở rộng của WFQ nhằm cung cấp đồng thời hai khả năng: đảm bảo băng thông tối thiểu cho các lớp lƣu lƣợng do ngƣời dùng đặt trƣớc, và đảm bảo sự phân phối công bằng cho các luồng trong mỗi lớp đó. Không giống nhƣ WFQ- mỗi luồng đƣợc cung cấp một hàng đợi riêng biệt, với CBQ, mỗi lớp đƣợc cung cấp một hàng đợi, và mỗi lớp có thể có một hoặc nhiều luồng [13]. Lớp lƣu lƣợng đƣợc xác định dựa trên các tiêu chí nhƣ giao thức (IP, FTP, HTTP, Telnet,..), danh sách điều khiển truy cập ACL và giao diện vào. Các gói tin cùng thoả mãn một tiêu chí đƣợc phân vào một lớp.
CBQ cho phép ngƣời quản trị mạng xác định chính xác lƣợng băng thông đƣợc cấp phát cho một lớp lƣu lƣợng cụ thể dựa vào lƣợng băng thông có sẵn trên giao diện. Đây là điều khác biệt với WFQ – việc tính trọng số là của hệ thống (dựa vào các bit ƣu tiên của trƣờng ToS), chứ không do ngƣời dùng đặt. Điều này giúp quản trị viên có thể phân phối cho một lớp lƣu lƣợng đặc biệt nào đó một lƣợng băng thông tối thiểu để hoạt động. Để làm rõ điều này, ta hãy xét một ví dụ: Giả sử truyền một luồng video có yêu cầu băng thông bằng một nửa dung dƣợng của đƣờng truyền T1 (1.544Mbps). Nếu có 2 luồng lƣu lƣợng (luồng video đang xét và một luồng khác), thì không vấn đề gì nếu dùng WFQ để phân phối. Giả sử có thêm nhiều luồng mới nữa, nếu dùng WFQ thì luồng video sẽ đƣợc cấp lƣợng băng thông nhỏ hơn, vì WFQ đảm bảo công bằng cho các luồng. Khi đó ngƣời quản trị mạng có thể sử dụng CBQ, định nghĩa một lớp riêng cho luồng video, yêu cầu router cấp cho lớp này 768 kbps (một nửa dung lƣợng đƣờng truyền T1). Video giờ đây đã có đủ
băng thông để hoạt động, các luồng còn lại sẽ đƣợc đƣa vào một lớp khác, chia sẻ phần băng thông còn lại (nửa còn lại của đƣờng truyền T1) [13].
Khi một lớp đƣợc xác định, nó đƣợc gán các đặc trƣng nhƣ: băng thông, trọng số, giới hạn độ dài gói tin tối đa, kích thƣớc hàng đợi tối đa. Băng thông đƣợc gán cho lớp là phần băng thông tối thiểu đƣợc phân phát cho lớp trong suốt quá trình tắc nghẽn. Trọng số của một lớp cụ thể đƣợc lấy từ băng thông đƣợc gán cho lớp. Trọng số đặc trƣng cho lớp trở thành trọng số của các gói tin thuộc lớp đó.
Ngoài ra, CBQ còn hỗ trợ sự chia sẻ băng thông giữa các lớp bằng cách sử dụng cấu trúc dạng cây phân cấp theo các lớp. Để rõ hơn ta xét một ví dụ nhƣ trong hình 2.10: Tại cấp cao nhất, ngƣời quản trị mạng cấp phát cho mỗi ngƣời dùng (agency) một phần băng thông của kênh truyền chung; ở cấp hai, mỗi ngƣời dùng này lại lấy phần băng thông đƣợc cấp chia cho các ứng dụng theo một tỷ lệ nào đó; quá trình cứ tiếp tục cho đến khi các ứng dụng thực sự sử dụng băng thông đƣợc cấp phát để truyền.
20% 20%
10%
50% 40%
Hình 2.10: Ví dụ về cấu trúc phân cấp chia sẻ băng thông trong CBQ
Link Real- time telnet ftp 30% 10% 10% 1 2 3 Real- time telnet ftp 3% 2% 5% 1 2 3 Real- time telnet ftp 15% 5% 0% 1 2 3 IP DEC- net Agency A Agency B Agency C
Trong quá trình mạng hoạt động, có thể xẩy ra tình huống là có những lớp không dùng hết phần băng thông đƣợc cấp phát, khi đó các lớp khác cùng cấp có thể mƣợn băng thông dƣ đó thông qua lớp cha của nó, lớp nào có mức ƣu tiên cao hơn sẽ đƣợc mƣợn nhiều băng thông hơn [26]. Để làm đƣợc điều này cần phải có một cơ chế chia sẻ đặc biệt đƣợc cài đặt tại các nút của cây.
CBQ đã đƣợc cài đặt trong Linux bằng cách dùng thuật toán từ bộ mô phỏng NS. Cài đặt ban đầu của CBQ là WRR (Weighted Round Robin), trong Linux là DRR (Deficit Round Robin). Chính sách chia sẻ băng thông giữa hai lớp A và B đƣợc sử dụng trong DRR nhƣ sau: khi lớp A có độ ƣu tiên cao hơn lớp B, cả hai đang mƣợn băng thông từ C thì A sẽ lấy một lƣợng băng thông nó cần, phần còn lại dành cho B. Nếu B có cùng độ ƣu tiên nhƣ A thì hai lớp sẽ cùng đƣợc một tỷ lệ băng thông nhƣ nhau [26].
CHƢƠNG 3 CÁC CHIẾN LƢỢC QUẢN LÝ HÀNG ĐỢI ĐỘNG
Trong Lý thuyết hàng đợi, ngƣời ta đã chứng minh rằng, thời gian trung bình mà các gói tin đi qua hàng đợi, bao gồm thời gian các gói tin phải chờ trong hàng đợi cộng với thời gian chúng đƣợc phục vụ, tỉ lệ thuận với chiều dài trung bình của hàng đợi và tỉ lệ nghịch với tốc độ đến hàng đợi trung bình [3]. Điều này đƣợc Little phát biểu bằng công thức: L = .W ( W = L/), trong đó: L (packets) là chiều dài trung bình của hàng đợi, (packets/s) là tốc độ đến trung bình của các gói tin, và W là thời gian đi qua hàng đợi (s). Mục tiêu chính của các chiến lƣợc quản lý hàng đợi là giữ cho chiều dài hàng đợi có một giá trị đủ nhỏ và ổn định, đảm bảo độ trễ trung bình của các gói tin không vƣợt quá mức cho phép, đồng thời đạt đƣợc hệ số sử dụng đƣờng truyền cao. Hai yêu cầu trên là trái ngƣợc nhau, chính vì vậy cần có sự thoả hiệp. Để biểu diễn sự thoả hiệp, ngƣời ta đƣa ra một đại lƣợng gọi là “công suất”, đó là tỷ lệ giữa thông lƣợng và độ trễ. Điểm làm việc tối ƣu là điểm có “công suất” cực đại. Nội dung chính của chƣơng này là trình bày về chiến lƣợc quản lý hàng đợi động AQM và một số thuật toán tiêu biểu, chiến lƣợc này đảm bảo đáp ứng đƣợc mục tiêu chính nhƣ vừa nêu trên. Trƣớc khi đi sâu tìm hiểu hai thuật toán AQM cụ thể, chúng ta hãy xem lại cách tiếp cận quản lý hàng đợi truyền thống, sau đó là cách tiếp cận AQM và khả năng của nó trong việc khắc phục những hạn chế của chiến lƣợc truyền thống.