Ưu điểm của FIFO bao gồm:
Đơn giản và nhanh.
Hỗ trợ trên tất cả các thiết bị.
Hỗ trợ tất cả các đường chuyển mạch (switching paths).
Hỗ trợ tất cả các phiên bản phần mềm. Nhược điểm:
FIFO không cấp băng thông cân bằng giữa các luồng. Một vài luồng nhận được băng thông nhiều hơn bởi vì chúng sử dụng các gói lớn hơn hoặc gửi nhiều gói hơn.
FIFO cực kỳ không cân bằng khi một luồng lớn tranh chấp với một luồng nhỏ (fragile flow). Luồng lớn gửi một số lượng lớn các gói và khi tràn hàng đợi sẽ có nhiều gói trong đó bị drop. Luồng nhỏ gửi một số
lượng gói vừa phải và hầu hết chúng bị drop bởi vì hàng đợi luôn bị đầy do luồng lớn. Loại quan hệ này được gọi là Starvation (sự thiếu hụt).
4.2.1.2 Cấu hình FIFO
Khởi tạo hàng đợi FIFO trên giao diện (xem hình 4.8)
FIFO mặc định được thiết lập trên các giao diện tốc độ lớn hơn 2M.
WFQ là mặc định được thiết lập trên các giao diện tốc độ nhỏ hơn 2M.
Lệnh này dùng để không cho phép WFQ và khởi tạo FIFO.
Hình 4.8 Ví dụ cấu hình hàng đợi FIFO Cấu hình bộ nhớđệm hàng đợi FIFO.
Hàng đợi FIFO cho phép tối đa 40 gói được lưu lại trong hàng đợi đầu ra.
Câu lệnh này có thể được dùng để tăng hoặc giảm số lượng gói tối đa trong bộđệm gói.
Một giá trị lớn có thể được đặt để hỗ trợ sự bùng nổ dài hơn (drop ít hơn, chiếm nhiều bộđệm được dùng).
4.2.2 Hàng đợi tuần tự (CQ)
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.
Hình 4.9 Cơ chế hoạt động của CQ
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.
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àng đợi 1 Hàng đợi 2 Hàng đợi 3 1500 2999 3000 4499 4500 5999 Bộ l ậ p l ị ch Round Robin 64 kbps MTU = 1500
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 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.
Đặ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: Một chi nhánh văn phòng Mạng lõi (WAN) E0 E1 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 Hình 4.12 Ví dụ cấu hình hàng đợi CQ
Trong ví dụ hình 6.8
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.
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.
4.2.3 Hàng đợi ưu tiên (PQ)
PQ (Priority Queuing) thường được sử dụng trong các ứng dụng ưu tiên một loại lưu lượng, tuy nhiên nó cũng có thể mở rộng với tất cả các loại dịch vụ khác. Đối với PQ các hàng đợi có thứ tựưu tiên thấp có thể phát sinh ảnh hưởng bất lợi, chúng có thể không bao giờ được gửi đi nếu như băng thông truyền tải bị giới hạn hay tốc độ truyền dẫn không đáp ứng được dung lượng các dạng lưu lượng được gửi tới.
4.2.3.1 Cơ chế hoạt động
Trong qúa trình truyền dẫn các gói sẽ được phân loại thành 4 mức (cao, thông thường, trung bình và thấp) dựa trên các tiêu chuẩn của người quản lý, sau đó chúng sẽ được sắp xếp vào các hàng đợi trên cơ sở các mức ưu tiên. Cơ chế làm việc của PQ được mô tả theo hình vẽ 4.13
Phân lớp
Các gói tin đến Hàng Txđợi Các gói tin ra
Phân lớp bởi:
Các giao thức (IP, TPX, Apple Talk,...) Các giao diện nguồn (E0, S0,…)
High
Chiều dài được định nghĩa bởi giới hạn hàng đợi
Bộđệm Các giao diện phần cứng như: Ethernet, Serial Link,
Frame Relay, ATM
Medium Normal Low
Theo hình vẽ 4.13, chiều dài tối đa của hàng đợi được định nghĩa thông qua chiều dài giới hạn, khi hàng đợi dài quá chiều dài giới hạn thì tất cả các gói nằm ngoài giới hạn hàng đợi đó sẽ bị rớt.
Việc phân loại các gói có thể dựa trên các đặc tính sau:
Kiểu giao thức.
Giao diện đầu vào.
Các thông tin của mạng luôn luôn được gán thứ tựưu tiên cao nhất, tất cả
các thông tin về quản lý lưu lượng khác cũng phải được cấu hình. Các gói không được phân loại bằng cơ chế danh sách ưu tiên sẽ được sắp xếp vào hàng đợi thông thường.
4.2.3.2 Các ưu nhược điểm của hàng đợi ưu tiên
Ưu điểm:
Cho trễ truyền thấp đối với các gói có ưu tiên cao.
Hỗ trợ hầu hết trên các thiết bị.
Hỗ trợ trong hầu hết các phiên bản phần mềm (Cisco IOS 10.0 trở lên). Nhược điểm:
Cấu hình phân lớp bằng tay trên các hop.
Sự thiếu hụt của mức ưu tiên thấp nếu mức ưu tiên cao bị nghẽn.
4.2.3.3 Cấu hình thực thi hàng đợi ưu tiên
Việc thiết lập cấu hình hàng đợi PQ được thực hiện theo 4 bước chính sau:
Bước 1: Cấu hình phân lớp.
Bước 2: Lựa chọn một hàng đợi.
Bước 3: Đặt kích thước tối đa hàng đợi.
Bước 4: Áp dụng danh sách ưu tiên trên lưu lượng đầu ra trên một hoặc nhiều giao diện.
Bước 1: cấu hình phân lớp:
Dùng lệnh priority-list cấu hình phân lớp dựa vào các giao thức lớp 3. Phân lớp dựa vào giao diện đầu vào.
Bước 2 + 3: Xác định kích thước tối đa của từng hàng đợi ưu tiên.
PQ dùng các thông số kích thước hàng đợi mặc định bao gồm:
High queue mặc định là 20.
Medium queue mặc định là 40.
Normal queue mặc định là 60.
Low queue mặc định là 80.
Bước 4: Áp dụng danh sách ưu tiên trên lưu lượng đầu ra trên một hoặc nhiều giao diện:
Lệnh priority-group áp dụng một priority-group vào một giao diện.
Một chi nhánh văn phòng Mạng lõi (WAN) Interface serial0 Priority - group 1
priority-list 1 protocol ip high list 101 priority-list 1 interface ethernet 0 medium priority-list 1 default normal
priority-list 1 queue-limit 20 40 60 80 access-list 101 permit tcp any any eq 23 E0
E1
Hình 4.14 Một Ví dụ cấu hình hàng đợi PQ Trong hình vẽ 6.5 ta nhận thấy:
Tất cả các telnet outbound được vào hàng đợi có yêu tiên cao.
Tất cả lưu lượng vào router từ ethernet 0 được chuyển tiếp vào hàng
đợi medium.
Tất cả lưu lượng còn lại đi vào hàng đợi mặc định.
4.2.3.4 Kết luận
Khi lựa chọn sử dụng PQ cần chú ý rằng việc cấu hình không thích hợp có thể phục vụ một hàng đợi hoàn tất mà không để ý tới các dịch vụ khác. Trong trường hợp tồi nhất dịch vụ trong hàng đợi có thứ tựưu nhiên thấp nhất có thể
không bao giờ được gửi đi. Để giải quyết vấn đề này chúng ta có thể sử dụng cơ chế tốc độ truy cập cam kết (CAR) hoặc sửa dạng lưu lượng (GTS) để giới hạn tốc độ cho các lưu lượng có thứ tựưu tiên cao hơn.
4.2.4 Hàng đợi cân bằng trọng số (WFQ)
WFQ (Weighted Fair Queuing) xây dựng hàng đợi dựa trên cơ sở trọng số, từđó nó đảm bảo xử lý công bằng cho toàn bộ lưu lượng truyền tới cổng giao diện. Đặc biệt trong các thiết bị router các giao tiếp có tốc độ nhỏ hơn hoặc bằng 2Mbps chếđộ mặc định sử dụng là WFQ.
4.2.4.1 Cơ chế hoạt động
WFQ được biết đến như một giải pháp để khắc phục nhược điểm trong các cơ chế hàng đợi FIFO, PQ, CQ bằng các chức năng sau (xem hình 4.15):
Có hàng đợi chuyên dụng cho mỗi luồng (không có sự thiếu hụt: starvation, delay, jitter trong hàng đợi).
Dùng IP precedence như là trọng số khi cấp băng thông.
WFQ dùng các phân lớp tựđộng, không hỗ trợ phân lớp nhân công.
WFQ loại bỏ gói (drop) hầu hết trên các luồng.
Khối lập lịch WFQ giống như hệ thống TDM (Time Division
Multiplex). Băng thông được phân bổ công bằng và chính xác giữa tất cả các luồng (đảm bảo dịch vụ, tối thiểu hóa trễ sắp xếp).
WFQ được hỗ trợ trên hầu hết các giao diện của router cũng như giao diện đa năng (VIP - Versatile Interface Processors).
B ộ l ậ p l ị ch hàng đợ i Hình 4.15 Cơ chế hoạt động của WFQ
Có 2 tham số mà ảnh hưởng đến chính sách rớt các gói của cơ chế hàng đợi WFQ là:
Ngưỡng lọai bỏ nghẽn (Congestive discard threshold: CDT) được dùng bắt đầu drop gói của hầu hết các luồng thậm chí trước cả đạt đến giới hạn hold-queue.
Hold-queueđược xác định là tổng số gói lớn nhất có thểđược xếp hàng trong hệ thống WFQ ở mọi thời điểm. Hay nói cách khác HQO (Hold- queue) là số lượng gói lớn nhất mà hệ thống WFQ có thể giữ (hold). Sau đây chúng ta xét một ví dụ sử dụng WFQ trong mạng IP. Trong ví dụ
này ta dùng đường truyền dẫn WAN 128kbp để truyền thoại không dùng
RSVP. Giả sử rằng VoIP dùng phương thức mã hóa (codec) theo chuẩn G729 thì nó sẽ sử dụng băng thông xấp xỉ là 30kbp (bao gồm cả RTP, UDP, IP và Header).
Tất cả các gói thoại được đánh dấu là 5 (IP precedence 5) và được tính như
1 phiên VoIP, 5 phiên dữ liệu: thoại chiếm băng thông [6/(6+5)]*128=69kbp lớn hơn tốc độ thoại yêu cầu, đủ băng thông cho 1 phiên thoại.
1 phiên VoIP, 20 phiên dữ liệu: [6/(6+20)]*128=29kbp ảnh hưởng đến thoại.
Có 3 kiểu hàng đợi cân bằng trọng số (WFQ) là:
Flow – based WFQ (WFQ)
Class – based WFQ (CBWFQ)
VIP – Distributed WFQ (DWFQ)