2.2.2.1 Thế nào là quản lý hàng đợi
Các router chính trong mạng Internet được cấu hình có nhiều hàng đợi với kích thước lớn, do đó các gói truyền trong mạng sẽ phải mất một thời gian dài để truyền trong hàng đợi. Trễ hàng đợi thậm chí còn lâu hơn cả trễ truyền trong mạng. Đối với các hàng đợi quá dài, khi xảy ra tắc nghẽn thì chính sách “loại bỏ phần đuôi” được sử dụng nhiều. Điều này có nghĩa là bất kì gói nào đến trong điều kiện hàng đợi bị đầy đều bị loại bỏ trước khi vào được hàng đợi. Vấn đề đặt ra là làm thế nào khi có tắc nghẽn xảy ra. Để giải quyết vấn đề này ta sử dụng các thuật toán quản lý hàng đợi và lập lịch.
Nói đơn giản thuật toán quản lý hàng đợi được sử dụng để quản lý chiều dài của hàng đợi các gói bằng cách loại bỏ các gói khi cần thiết
Quản lý hàng đợi bao gồm các hoạt động:
• Thêm gói vào hàng đợi theo ngữ cảnh của gói khi hàng đợi chưa đầy.
• Loại bỏ gói nếu hàng đợi đã đầy.
• Xoá bỏ gói khi được yêu cầu bởi bộ lập lịch.
• Thường xuyên quản lý độ chiếm giữ của hàng đợi:
• Loại bỏ gói khi hàng đợi đã đầy.
• Đánh dấu các gói khi hàng đợi chuẩn bị đầy.
2.2.2.2 Sự cần thiết của quản lý hàng đợi
Mục đích chính của hàng đợi là điều khiển lưu lượng, chống tắc nghẽn trong mạng, đặc biệt là tại các nút cổ chai. Kĩ thuật quản lý hàng đợi trước đây là thiết lập một kích thước hàng đợi lớn nhất cho mỗi hàng đợi, các gói sẽ được đưa vào trong hàng đợi cho đến khi hàng đợi đầy sau đó nếu còn có gói đến thì sẽ loại bỏ các gói mới tới này. Khi số lượng các gói trong hàng đợi giảm do được truyền tới chặng tiếp theo thì lúc đó hàng đợi mới nhận tiếp các gói tới. Đây cũng chính là kĩ thuật “loại bỏ phần đuôi” (drop tail). Tuy nhiên cách này có 2 hạn chế:
• Kĩ thuật này chỉ cho phép các gói từ một kết nối đơn hoặc một vài luồng đủ
để chiếm dụng không gian hàng đợi, ngăn chặn không cho các kết nối khác cùng đến một hàng đợi. Kĩ thuật này là kết quả của quá trình đồng bộ hoặc có hiệu quả định thời.
• Thường thì các luồng lưu lượng đến hàng đợi dưới dạng bó. Khi hàng đợi
đầy thì bất kì luồng nào đến cũng đều bị loại bỏ cho tới khi số gói trong hàng đợi giảm xuống. Kĩ thuật này sẽ loại bỏ các bó thông tin chứ không phải chỉ là các gói, do đó việc mất mát thông tin là rất lớn.
Quản lý hàng đợi có các tính năng sau:
• Giảm số lượng các gói bị loại bỏ trong hàng đợi
Các gói thường đến mạng dưới dạng bó, và có chủng loại rất phong phú, tốc độ không cố định. Nếu ta đặt kích thước hàng đợi cố định thì không linh hoạt với từng loại lưu lượng khác nhau: như nếu kích thước hàng đợi quá bé thì hàng đợi rất dễ bị tràn và việc loại bỏ gói sẽ thường xuyên xảy ra, còn nếu kích thước hàng đợi quá lớn sẽ gây lãng phí tài nguyên. Quản lý hàng đợi giữ kích thước trung bình của hàng đợi nhỏ cung cấp khả năng cao hơn. Ngoài ra quản lý hàng đợi cho phép loại bỏ tắc nghẽn bằng việc loại bỏ gói tin chứ không loại bỏ cả bó thông tin điều này sẽ hạn chế được số lượng các gói bị loại bỏ.
• Cung cấp các dịch vụ tương tác có độ trễ thấp
Do quản lý hàng đợi giữ kích thước trung bình của hàng đợi nhỏ nên giảm độ trễ trong các luồng. Điều này rất quan trong các ứng dụng tương tác: truyền web, lưu lượng telnet hay các phiên audio-video tương tác.
Các phương pháp đưa ra để quản lý hàng đợi là các thuật toán RED, hàng đợi cân bằng có trọng số (WFQ),hàng đợi ưu tiên (PQ),…