Wednesday, June 11, 2014

Kỹ thuật hàng đợi FIFO

First In-First Out Queuing
- Hàng đợi FIFO không có sự phân loại vì tất cả các gói đều thuộc về cùng một lớp. Một bộ định tuyến hay bộ chuyển mạch cần các hàng đợi xuất để giữ các gói trong khi chờ bộ giao tiếp sẵn sàng gửi gói. Trong khi các công cụ hàng đợi khác thể hiện các tính năng khác, như sắp xếp trật tự các gói, hàng đợi FIFO chỉ cung cấp một ý nghĩa giữ các gói trong khi chúng chờ để rời khỏi một cổng giao tiếp (interface). Hàng đợi FIFO sử dụng một hàng đợi đơn cho bộ giao tiếp. Vì chỉ có một hàng đợi nên không cần phân lớp để quyết định khi gói đi vào. Và cũng không cần lập lịch ban đầu để cho hàng đợi lấy gói tiếp theo. Chỉ quan tâm đến cách cấu hình chiều dài hàng đợi FIFO tránh tác động đến độ trễ và mất gói.
- Hàng đợi FIFO sử dụng kỹ thuật hủy gói cuối hàng đợi để quyết định khi nào bỏ gói hay cho gói vào hàng đợi. Nếu cấu hình một hàng đợi dài hơn, nhiều gói có thể đặt trong hàng đợi, nghĩa là hàng đợi ít khả năng đầy. Nếu không gian hàng đơi còn trống nhiều thì gói ít bị mất. Tuy vậy, với một hàng đợi dài, độ trễ và độ biến động trễ của gói tăng. Với hàng đợi ngắn, độ trì hoãn ít xuất hiện hơn, nhưng hàng đợi FIFO đơn sẽ đầy nhanh chóng, lúc này các gói mới sẽ bị hủy bỏ.

Hình 1: Hàng đợi FIFO
Lập lịch hàng đợi FIFO:
- Sau khi gói đi vào hàng đợi thì bộ định tuyến sẽ sử dụng thuật toán lập lịch để duy trì công việc. Lập lịch FIFO là thuật toán lập lịch truyền thống được sử dụng trong Internet, đây là thuật toán lập lịch đơn giản nhất. Trong thuật toán này bộ lập lịch truyền các gói theo thứ tự đến và hủy các gói khi hàng đợi đầy. Tuy nhiên, bộ lập lịch gói không có sự phân biệt giữa các người sử dụng. Vì vậy nó không thể phân phối cho một số user độ trễ trung bình thấp hơn các người dùng khác. Mọi người dùng trong cùng lớp dịch vụ chịu cùng một độ trễ biến thiên (jitter delay). Ngoài ra, độ biến động trễ có xu hướng tăng lên khi số chặng tăng lên vì độ trễ hàng đợi của gói ở các chặng khác nhau không tương quan với nhau.
- Với FIFO, độ trễ trung bình của một người sử dụng có thể tăng lên nếu tổng tốc độ đến của tất cả người sử dụng tăng lên.
- Tuy nhiên việc sử dụng kỹ thuật hàng đợi FIFO có các nhược điểm:
• FIFO không hoàn toàn tin cậy khi một luồng không mong muốn tranh giành với các luồng có độ ưu tiên thấp. Các luồng không mong muốn gửi một số lượng lớn các gói (đa số các gói đó bị huỷ bỏ). Trong khi đó, các luồng với độ ưu tiên thấp gửi một số lượng gói xác định và hầu hết chúng bị hủy bởi vì hàng đợi lúc nào cũng đầy do các luồng không mong muốn đã chiếm hết không gian hàng đợi.
• Sự bùng nổ cao hay thấp gây ra tình trạng đầy hàng đợi FIFO. Các gói đi vào một hàng đợi đầy phải chờ một thời gian dài trước khi chúng được truyền. Nhưng ở thời điểm khác, hàng đợi có thể trống và các gói trong cùng một luồng không bị trì hoãn.
- Các ưu điểm của kỹ thuật hàng đợi FIFO
• Đây là kỹ thuật đơn giản và nhanh.
• Nó được hỗ trợ trên tất cả các nền tảng.
• Hàng đợi FIFO được hỗ trợ trong tất cả các phiên bản của Cisco IOS.
Để cấu hình cho hàng đợi FIFO ta phải unable tất cả các kĩ thuật hàng đợi khác có trong interface đó. Mặc định thì WFQ (Weighted Fair Queuing) sẽ được áp dụng cho các interface và nó chạy ở tốc độ E1 (khoảng 2M).
- Để disable WFQ ta dùng câu lệnh “no fair-queue”, Khi đã disable tất cả các kĩ thuật hàng đợi có trong interface thì FIFO sẽ mặc nhiên được sử dụng.
- Để chọn chiều dài cho hàng đợi ta dùng câu lệnh “hold-queue x out”.
Ví dụ:
R3(config)#int s 0/0R3(config-if)#no fair-queue           // disable WFQ ;R3(config-if)#^ZR3#sh int s 0/0Serial0/0 is up, line protocol is up  …………………..  Last clearing of "show interface" counters 00:13:48  Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0  Queueing strategy: fifo                    //hàng đợi FIFO được dùng
  Output queue :0/40 (size/max)       //Kích cỡ hàng đợi ngõ ra là 40 gói tin.……………………+Thay đổi chiều dài hàng đợi ngõ ra thành 50 gói tin:R3(config)#int s 0/0R3(config-if)#hold-queue 50 outR3(config-if)#^Z!R3#sh int s 0/0Serial0/0 is up, line protocol is up  Hardware is PowerQUICC Serial! Lines omitted for brevity  Queueing strategy: fifo  Output queue :0/50 (size/max)  //chiều dài hàng đợi là 50 :! Line omitted for brevity

0 comments:

Post a Comment