CQ (Custom Queuing) thực hiện phục vụ các hàng ựợi theo cơ chế tuần tự, nó thực hiện truyền phần trăm lưu lượng trên mỗi hàng ựợi trước khi chuyển ựến hàng ựợi kế tiếp bởi vậy nó có khả năng ựảm bảo cho một vài mức dịch vụ hay toàn bộ lưu lượng ựược truyền tải.
4.2.2.1 Cơ chế hoạt ựộng
Hàng ựợi CQ cho phép người sử dụng (user) ựịnh ra phần trăm băng thông khả dụng cho một dịch vụ ựặc biệt nào ựó. Nghĩa là CQ cho phép người dùng chỉ ựịnh số lượng byte xác ựịnh từ hàng ựợi sẽ ựược gửi ựi dựa trên cơ sở tốc ựộ giao tiếp và phần trăm lưu lượng ựược cấu hình. CQ cũng cho phép người dùng chỉ ựịnh số lượng tối ựa các gói ựược sắp xếp trong hàng ựợi và có thể ựịnh nghĩa lên tới 17 hàng ựợi, trong ựó hàng ựợi số 0 ựược dùng cho hàng ựợi của hệ thống, hàng ựợi hệ thống có thứ tự ưu tiên cao nhất, hàng ựợi này là rỗng trước khi có bất kỳ hàng ựợi dữ liệu nào ựược tham gia xử lý, nó mang các thông tin báo hiệu và các thông ựiệp của hệ thống.
Cơ chế hoạt ựộng của CQ ựược mô tả theo hình vẽ 4.9
Trong hình vẽ 4.9 CQ sử dụng kỹ thuật lập lịch (scheduling) round-robin, trong ựó mỗi hàng ựợi ựược cấu hình với một số byte (byte-count) mà nó có thể gửi ựi trong một vòng. Gói cuối cùng luôn luôn ựược gửi, thậm chắ tổng số byte ựược gửi trong một chu kỳ lớn hơn giới hạn (byte-count). Như vậy việc thiết lập số lượng byte giới hạn quá nhỏ có thể phát sinh những vấn ựề không mong ựợi trong việc phân phối băng thông. Tuy nhiên khi số lượng byte giới hạn ựược thiết lập quá lớn thì có thể phát sinh thời gian chờ ựược phục vụ của hàng ựợi tiếp theo. Do ựó việc xác ựịnh số lượng byte phải dựa trên cỡ gói trong mỗi giao thức nếu không tỉ lệ phần trăm phân phối băng thông sử dụng sẽ không giống như các thông số ựược cấu hình.
Hình 4.10 sẽ minh họa một trường hợp xấu nhất trong ựó các tham số ựược sử dụng ựể thực thi CQ trên giao diện như sau:
MTU trên giao diện là 1500.
Byte-count là 3000.
Hình 4.10 Một trường hợp xấu nhất xảy ra ựối với hàng ựợi CQ
Theo vắ dụ trên hình 4.10 tổng số bytes hai gói dữ liệu là 2999 byte mà byte-count là 3000. Do ựó router sẽ gửi tiếp các byte ở gói tiếp theo, nghĩa là tại hàng ựợi ựó router sẽ gửi 4499 byte, sau ựó mới phục vụ hàng ựợi tiếp theo. đây cũng là một trong những nhược ựiểm của CQ.
Vậy ta phải xác ựịnh byte-count là bao nhiêu? Nếu tỷ số byte-count/MTU quá nhỏ CQ sẽ không phân phối băng thông chắnh xác. Nếu tỷ số này quá lớn CQ sẽ là nguyên nhân của trễ. Sau ựây chúng ta phân tắch một vắ dụ về tắnh
toán băng thông và ựộ trễ tối ựa.
Ta xét một hệ thống gồm 3 hàng ựợi CQ như hình vẽ 4.11 trong ựó:
Hàng ựợi thứ nhất dùng byte-count là 4500.
Hàng ựợi thứ 2 dùng byte-count là 3000.
Hàng ựợi thứ 3 dùng byte-count là 1500.
Hình 4.11 Minh họa tắnh toán băng thông và ựộ trễ tối ựa
Việc tắnh toán ựảm bảo băng thông và ựộ trễ tối ựa (theo công thức 4.1). Thời gian hoàn thành một vòng phụ thuộc vào băng thông của giao diện, kắch thước MTU, và tổng số của tất cả byte-count hàng ựợi.
BW1 = bc1 / (bc1 + bc2 + bc3) = 4500/9000 = 50%
Td1 = (bc2 + bc3) / B = (3000+1500)*8/64000 = 562 ms (4.1) Tw1 = ((bc2 + 1499) + (bc3 +1499)) / B
= (3000+1499 + 1500+1499)*8/64000 = 937 ms Trong ựó:
BW1(%): Tỷ lệ % chiếm băng thông của hàng ựợi 1
bc1, bc2, bc3 (byte): Là các ngưỡng (byte Ờ count) của hàng ựợi 1, 2, 3 Td1(s): Thời gian trễ của hàng ựợi 1
Tw1(s): Thời gian trễ trong trường hợp xấu nhất của hàng ựợi 1 B (b/s): Dải thông của giao diện ựầu ra
Phép tắnh thứ nhất và thứ hai chỉ ra rằng hàng ựợi ựầu tiên sẽ nhận băng
B ộ lậ p lịc h Hàng ựợi Hàng ựợi Hàng ựợi 64 kbps MTU = 1500 2999 3000 4499 4500 5999
thông xấp xỉ là 50% băng thông và thời gian trễ là 562ms. Phép tắnh thứ ba chỉ ra rằng round-robin delay là 937ms cho hàng ựợi thứ nhất khi tất cả các lớp nghẽn và gửi số lượng byte tối ựa (byte-count + MTU-1) trong một vòng.
Tắnh toán tương tự ựối với hàng ựợi thứ 2 ta có: Tỉ lệ chiếm băng thông xấp xỉ là 33%, thời gian trễ là 750ms, thời gian trễ trong trường hợp xấu nhất xấp xỉ là 1125ms.
đối với hàng ựợi thứ 3 ta có: Tỉ lệ chiếm băng thông xấp xỉ là 17%, thời gian trễ xấp xỉ là 936ms, thời gian trễ trong trường hợp xấu nhất xấp xỉ là 1312ms.
Căn cứ vào số liệu ựược tắnh toán, ta thấy các tham số ựược cấu hình trong hàng ựợi thứ 1 là tối ưu hơn cả.
4.2.2.2 Những ưu nhược ựiểm của hàng ựợi CQ Ưu ựiểm:
đảm bảo thông lượng cho các lớp lưu lượng (tránh sự thiếu hụt giữa các lớp lưu lượng).
Hỗ trợ trên hầu hết các platform.
Hỗ trợ trong hầu hết các phiên bản phần mềm (Cisco IOS version 10.0 trở lên).
Nhược ựiểm:
Cấu hình bằng tay tại mỗi hop.
Cấp băng thông không chắnh xác.
độ jitter cao do thực thi sự sắp xếp.
4.2.2.3 Cấu hình thực thi hàng ựợi CQ
Khởi tạo CQ trên một giao diện và gán CQ xác ựịnh vào giao diện.
Phân lớp các gói dựa trên giao thức. Các gói không phân lớp sẽ ựược sắp xếp vào hàng ựợi mặc ựịnh
Phân lớp các gói thành lớp dựa trên giao diện ựầu vào.
Xác ựịnh byte-count, mặc ựịnh là 1500 bytes.
Xác ựịnh số gói tối ựa trong một hàng ựợi. Mặc ựịnh là 20.
đặt hàng ựợi thấp nhất: Q1 có ưu tiên cao nhất, hàng ựợi mặc ựịnh Q0 luôn luôn ựược coi là Ộpre-emptiveỢ chứa các thông tin về hệ thống và các bản tin link-level.
Hình 4.12 minh họa một vắ dụ cấu hình CQ trên router của một chi nhánh văn phòng: E0 Mạng lõi (WAN) E1 Một chi nhánh văn phòng interface serial 1/0 custom - queue-list 5 !
queue-list 5 protocol ip 1 list 101 queue-list 5 queue 1 limit 40 queue-list 5 lowest-custom 2 queue-list 5 interface ethernet 0/0 2 queue-list 5 queue 2 byte-count 3000 queue-list 5 protocol ip 3
queue-list 5 queue 3 byte-count 5000 queue-list 5 default 4
!
access-list 101 permit ip any any precedence 5
Trong vắ dụ hình 4.12
Q1 ựược dùng cho các ứng dụng nhạy cảm với trễ (ựược ựánh dấu với IP precedence 5.
Q2 dùng cho tất cả các gói ựến từ giao diện Ethernet 0/0.
Q3 ựược dùng cho tất cả các gói IP mà không phải là một trong 2 hàng ựợi ựầu tiên.
Q4 ựược dùng cho tất cả các lưu lượng khác.