Các gói tin khi đi qua mạng bao giờ cũng có một độ trễ nhất định, trong đó có độ trễ do gói tin phải được lưu vào các hàng đợi của các router để chờ được chuyển tiếp đến đích. Những thuật toán hàng đợi là một trong những cách chính để quản lý tắc nghẽn tạm thời trên mạng, phục vụ việc đảm bảo chất lượng dịch vụ vận chuyển. Những thuật toán hàng đợi có ảnh hưởng lớn đến hiệu suất mạng.
Các thuật toán quản lý hàng đợi:
Firt in Firt out (FIFO) hay First Come First Serve (FCFS): Là
thuật toán đơn giản, gói tin nào đến trước thì được gửi đi trước, chỉ cần sử dụng một hàng đợi duy nhất.
Trang 83
Hình 3.2 Queue trong thuật toán FIFO
Tất cả các gói tin đến được đưa vào một hàng đợi duy nhất, không có sự phân biệt theo mức ưu tiên của chúng. Đây là một hạn chế của chiến lược FIFO, vì có thể nhiều gói tin có mức ưu tiên cao sẽ bị loại, trong khi các gói tin có độ ưu tiên thấp hơn lại được phục vụ. Mặt khác, các luồng có sự tăng đột biến về thông lượng thường gây ra sự chiếm giữ độc quyền đường truyền, dẫn tới không công bằng cho các luồng khác.
Hình 3.3 Thuật toán FIFO
Ví dụ việc chuyển tiếp 5 gói tin theo cơ chế FCFS. Các gói tin đến (miền arrivals) được đánh số thứ tự từ 1 đến 5, trong đó gói 2 có mức ưu tiên thấp hơn các gói khác. Miền packet in service minh hoạ thời gian phục vụ các gói tin, mỗi gói tin được phục vụ trong một khe thời gian. Miền departures thể hiện thời điểm các gói tin thực sự được truyền đi. Theo hình vẽ, gói tin thứ 2 có độ ưu tiên thấp hơn gói 3, nhưng nó vẫn được phục vụ trước vì nó đến trước gói 3, sau đó là các gói 4, 5.
Trang 84
Hình 3.4 Ví du về thuật toán FIFO
Priority Queuing: Sử dụng nhiều hàng đợi và có sự phân biệt mức
ưu tiên, các hàng đợi lần lượt được đưa vào sử dụng. Hết Q1 sẽ đến Q2 cho đến hết. Cũng chính vì vậy mà một số luồng dữ liệu có độ ưu tiên thấp có thể không bao giờ được truyền đi.
Hình 3.5 Queue trong thuật toán Priority
Việc nhận biết các lớp ưu tiên thông qua các giá trị chứa trong header của các gói tin, mỗi lớp gói tin có một hàng đợi riêng. Bộ lập lịch của hàng đợi ưu tiên sẽ chọn các gói tin từ lớp có độ ưu tiên cao nhất nếu hàng đợi dành riêng cho chúng không rỗng để truyền đi; sau khi truyền hết các gói tin trong hàng đợi ưu tiên cao nhất nó mới truyền các gói tin
Trang 85 của hàng đợi có ưu tiên tiếp theo, v.v... Các gói tin trong một lớp ưu tiên được chọn theo cơ chế FCFS.
Hình 3.6 Thuật toán Priority Queuing
Ví dụ việc sử dụng 2 lớp ưu tiên, các gói tin 1, 3, 4 thuộc lớp có độ ưu tiên cao; các gói tin 2, 5 thuộc lớp có độ ưu tiên thấp hơn. Gói 1 tới hàng đợi đầu tiên, khi đó đường truyền đang rỗi, nó được truyền đi ngay. Sau đó gói tin thứ 2 và thứ 3 tới, gói thứ 2 có độ ưu tiên thấp nên gói thứ 3 được truyền trước, rồi tới gói thứ 2. Khi gói thứ 2 đang được truyền thì gói thứ 4 có độ ưu tiên cao tới hàng đợi, gói tin thứ 2 vẫn tiếp tục được truyền chứ không bị ngắt lại. Sau khi gói tin thứ 2 truyền xong tới gói thứ 4, v.v..
Trang 86 PQ được cấu hình tĩnh, và không được hiệu chỉnh tự động theo sự thay đổi yêu cầu của mạng.
Mặc dù PQ cung cấp một cách tiếp cận lập lịch đơn giản, nhưng nó có thể gây ra sự thiếu băng thông cho các luồng có mức ưu tiên thấp. PQ có thể dành hết băng thông để phục vụ cho luồng có ưu tiên cao, và nếu băng thông hạn chế thì có thể dẫn tới những luồng thấp hơn không bao giờ được phục vụ. Để tránh xảy ra tình trạng này, PQ phải được kết hợp với các kỹ thuật nhằm hạn chế tốc độ của các lưu lượng có mức ưu tiên cao, như Shaping hay CAR (Committed Access Rate).
Round Robin: Sử dụng nhiều Queues, không có sự ưu tiên và truyền lần
lượt các Queue, mỗi Queue một gói tin và lại lặp lại. Thuật toán này thường bắt đầu từ trên xuống dưới. Nếu tất cả các gói tin là cùng cỡ, tất cả các Queue chia sẻ băng thông là như nhau. Tuy nhiên thuật toán này lại không có sự ưu tiên.
Hình 3.8 Queue trong thuật toán Round Robin
Cơ chế này đơn giản và dễ dàng cài đặt, tuy nhiên nó không giải quyết được sự cấp phát dải thông công bằng do không quan tâm đến đặc tính lưu lượng của các luồng gói tin đến như độ dài hàng đợi hiện tại, mức độ ưu tiên của mỗi luồng gói tin. Vì vậy, những luồng có hàng đợi
Trang 87 dài (nhiều gói tin đang chờ) hoặc có mức ưu tiên cao hơn cũng chỉ được cấp một lượng dải thông như các luồng khác.
Weighted Round Robin: Là thuật toán được phát triển nhằm cung cấp khả
năng ưu tiên cho thuật toán round robin dựa vào việc phục vụ theo trọng số cho mỗi queue. Thuật toán này vận chuyển các gói tin từ mỗi queue tương xứng với trọng số mà nó được gán, sau đó lại chuyển đến các Queue khác.
Hình 3.9 Queue trong thuật toán Weighted Round Robin
Ngoài ra còn một số thuật toán Queues khác như: WFQ (Weight Fair Queue), CBWFQ (Class base Fair queue), LLQ (Low letance queue)
Phương pháp dành chỗ trước tài nguyên đảm bảo được QoS nhưng rất khó biết chính xác về những thành phần của luồng nên hiệu quả sử dụng mạng thấp do lúc nào cũng phải dành trước tài nguyên ngay cả khi không có nhu cầu. Đồng thời khó khăn và phức tạp trong việc triển khai do không dễ dàng xác định được cần phải mở rộng băng thông là bao nhiểu để cải thiện chất lượng dịch vụ trong tình trạng dưới tải.
Với kỹ thuật ưu tiên những gói dữ liệu khác nhau hoặc những luồng khác nhau được đánh dấu với những mức độ ưu tiên khác nhau và vì vậy được đối xử khác nhau ở tất cả các router trên mạng.
Trang 88 Các kỹ thuật xử lý Queue ở trên nhằm đảm bảo chất lượng dịch vụ cho các ứng dụng truyền thông đa phương tiện. Những gói tin âm thanh và hình ảnh được gán mức ưu tiên cao luôn được ưu tiên xử lý trước. Các kỹ thuật quản lý hàng đợi được cài đặt trên các bộ định tuyến hay các nút trung gian trên các chặng đường của gói tin. Tuy nhiên, không phải thiết bị trung gian nào cũng được cài đặt các kỹ thuật tương tự và cũng rất khó để đồng bộ các kỹ thuật cải tiến lên mọi thiết bị trung gian trong mạng Internet, nên việc áp dụng kỹ thuật nâng cao hiệu suất mạng theo hướng link-by-link sẽ còn phải đầu tư nhiều thời gian, tiền của, công sức trong tương lai.
Trang 89
Chương 4: Đánh giá hiệu suất WLDA+ bằng mô phỏng