Anh em kỹ sư mạng chắc hẳn từng gặp cảnh: lưu lượng đổ vào thiết bị thì ào ạt, nhưng băng thông ra lại nhỏ hơn. Đây chính là tắc nghẽn (congestion) – và nếu không có cơ chế xử lý, thì packet sẽ bị drop, gây ảnh hưởng ngay đến ứng dụng, đặc biệt là voice, video, giao dịch thời gian thực.
Trong QoS, quản lý tắc nghẽn (Congestion Management) chính là chìa khóa. Thay vì “bóp cổ chai” và đánh rơi gói tin, thiết bị sẽ xếp hàng (queuing) và áp dụng scheduling để quyết định gói nào được đi trước, gói nào phải chờ. 1. Khái niệm cơ bản
Ví dụ: trên router Cisco, nếu cổng GigabitEthernet đang phải phục vụ hàng ngàn flow, thì queuing sẽ gom lại và scheduling quyết định: voice đi trước, file transfer đi sau. 2. Các thuật toán lập lịch (scheduling algorithms)
Ví dụ thực tế:
Khi băng thông ra cổng bị tắc nghẽn, LLQ sẽ chắc chắn đảm bảo voice không bị delay/jitter, trong khi data traffic vẫn có công bằng theo class đã định.
👉 Tóm lại:
Trong QoS, quản lý tắc nghẽn (Congestion Management) chính là chìa khóa. Thay vì “bóp cổ chai” và đánh rơi gói tin, thiết bị sẽ xếp hàng (queuing) và áp dụng scheduling để quyết định gói nào được đi trước, gói nào phải chờ. 1. Khái niệm cơ bản
- Queuing (xếp hàng): Lưu tạm packet trong buffer khi có tắc nghẽn.
- Scheduling (lập lịch): Chọn gói nào ra cổng trước. Scheduling vẫn hoạt động ngay cả khi không có tắc nghẽn.
Ví dụ: trên router Cisco, nếu cổng GigabitEthernet đang phải phục vụ hàng ngàn flow, thì queuing sẽ gom lại và scheduling quyết định: voice đi trước, file transfer đi sau. 2. Các thuật toán lập lịch (scheduling algorithms)
- Strict Priority (PQ – Priority Queuing): Luôn ưu tiên hàng cao nhất. Nhược điểm: các hàng thấp có thể bị starvation (bị bỏ đói).
Ví dụ: Nếu có một hàng voice chiếm dụng liên tục, thì FTP hoặc web có thể gần như không bao giờ được xử lý. - Round Robin (CQ – Custom Queuing): Lần lượt phục vụ từng hàng theo vòng tròn. Tránh starvation, nhưng voice/video có thể bị delay quá mức.
- Weighted Fair Queuing (WFQ): Các hàng được gán trọng số khác nhau. Hàng có trọng số cao được phục vụ nhiều hơn. Cân bằng công bằng hơn, nhưng không có guarantee tuyệt đối cho từng flow.
- FIFO (First In, First Out): Đơn giản, ai đến trước đi trước. Không phù hợp cho ứng dụng real-time.
- PQ (Priority Queuing): 4 hàng, strict priority. Có nguy cơ starvation.
- CQ (Custom Queuing): 16 hàng, round-robin, có guarantee nhưng không ưu tiên real-time.
- WFQ: Chia băng thông cho mỗi flow. Công bằng, nhưng không bảo đảm cho từng ứng dụng cụ thể.
- CBWFQ (Class-Based WFQ): Cho phép định nghĩa class, gán băng thông đảm bảo cho mỗi class. Phù hợp data traffic, nhưng không bảo đảm độ trễ → không hợp cho voice/video.
- LLQ (Low Latency Queuing): Chính là CBWFQ + strict priority queue. Vừa đảm bảo băng thông cho data, vừa đảm bảo độ trễ thấp cho real-time traffic. Đây là cơ chế Cisco khuyến nghị cho voice + video + data.
Ví dụ thực tế:
- Trong mạng doanh nghiệp có hệ thống VoIP + Camera IP + ERP + Internet, ta dùng LLQ để:
- Voice đi trong Priority Queue (strict priority).
- Video conference gán 30% băng thông đảm bảo.
- ERP gán 20%.
- Best-effort traffic (web, email) dùng phần còn lại.
Khi băng thông ra cổng bị tắc nghẽn, LLQ sẽ chắc chắn đảm bảo voice không bị delay/jitter, trong khi data traffic vẫn có công bằng theo class đã định.
👉 Tóm lại:
- Nếu chỉ có data: CBWFQ đủ dùng.
- Nếu có real-time traffic: Bắt buộc dùng LLQ để vừa đảm bảo băng thông vừa kiểm soát độ trễ.