Tải bản đầy đủ (.pdf) (23 trang)

NGHIÊN CỨU KỸ THUẬT QUẢN LÝ HÀNG ĐỢI TRONG MẠNG IP CHƯƠNG 3_1 docx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (624.48 KB, 23 trang )

TỐT NGHIỆP ĐẠI HỌC
Đề tài:

NGHIÊN CỨU KỸ THUẬT QUẢN LÝ
HÀNG ĐỢI TRONG MẠNG IP

CHƯƠNG 3: QUẢN LÝ HÀNG ĐỢI VÀ CÁC THUẬT
TOÁN
3.1 Các kĩ thuật hàng đợi
3.1.1 Giới thiệu hàng đợi trong Router
Lý thuyết hàng đợi nảy sinh một cách tự nhiên trong việc nghiên cứu các
chuyển mạch kênh, và chuyển mạch gói. Trong các mạng chuyển mạch kênh, cuộc
gọi đến chuyển mạch ngẫu nhiên, mỗi cuộc gọi sẽ giữ kênh trong một khoảng thời
gian ngẫu nhiên nào đó. Trong mạng chuyển mạch gói, các gói tin với các chiều
dài khác nhau đi qua mạng, tài nguyên mạng (các chuyển mạch,kết nối sẽ được
chia sẻ cho các gói). Các bản tin được định tuyến đến các node tiếp theo. Thời
gian sử dụng bộ đệm (trễ hàng đợi) là một vấn đề quan trọng trong truyền dẫn
thông tin. Thời gian này phụ thuộc vào các thời gian xử lý, độ dài bản tin hay thời
gian chờ xử lý khi chưa có tài nguyên sử dụng.
Trong các ứng dụng tương tác và thời gian thực thì thời gian trả lời trung
bình được xem như một tiêu chuẩn quan trọng còn trong các ứng dụng khác thì
thông lượng lại là điều quan trọng nhất. Việc mô tả hàng đợi theo lý thuyết toán
học rất phức tạp nên ta chỉ mô tả chúng theo mô hình đơn giản được sử dụng trong
các mạng IP:









Hình 3.1: Mô hình hàng đợi đơn giản trong mạng
Tin tức (có thể là gói tin hay bản tin) đến hệ thống để yêu cầu phục vụ. Nếu
server rỗi thì gói tin sẽ được phục vụ ngay lập tức, ngược lại chúng sẽ được lưu giữ
trong các hàng đợi. Khi rời khỏi hàng đợi các gói sẽ được xử lý.
Các tham số cơ bản liên quan tới hàng đợi:



Bảng 3.1 : Bảng các tham số cơ bản của hàng đợi
Server
Queue

Dispatching
discipline
departures
w=items wait
T
w
=wait time
q= items in queuing system

T
q
= queuing time
T
s
= service time
P= utilization
arrivals

λ =arrival rate
Tham số Kí
hiệu
Chú thích
Tốc độ đến TB

λ Thời gian gói tin đến hệ thống hàng đợi
với vận tốc λ trên một đơn vị thời gian(s)
Tốc độ rời khỏi TB

µ Các gói tin rời khỏi hệ thống với tốc độ µ
trên một đơn vị thời gian
Hiệu suất sử dụng
dịch vụ
p Là khoảng thời gian server bận do phải xử
lý lý,đo bằng P= λ /μ
Độ dài TB

L
w
Là số gói nằm trong hàng đợi trung bình
tại tất cả các thời điểm t
Thời gian đợi TB

T
w
Có hai định nghĩa:
Thứ nhất: được tính bằng tất cả thời gian
gói
tin đến xử lý (bao gồm cả các gói không

phải
chờ trong hàng đợi)
Thứ hai: chỉ tính TB thời gian các gói tin
phải chờ trong hàng đợi
Thời gian phục vụ TB

T
s
Thời gian TB giữa thời điểm gửi gói tới
server và thời điểm rời khỏi server
Độ dài hàng đợi TB

L
q
Số gói trung bình trong hệ thống, bao gồm
các gói đang được sử dụng và các gói
đang chờ trong hàng đợi.
Thời gian xếp hàng
TB
T
q
Thời gian các gói ở trong hệ thống.
Các gói đến hàng đợi với tốc độ thay đổi λ và đây là một quá trình poisson,
thời giạ phục vụ có phân bố mũ tốc độ µ (thực chất là thời gian trung bình mà các
gói tin rời khỏi hàng đợi). Khi các gói đến hệ thống tăng thì hiệu suất sử dụng hệ
thống cũng tăng, dẫn tới tắc nghẽn có khả năng xảy ra. Với p =1 thì các server bão
hoà do đó tốc lớn nhất theo lý thuyết mà hệ thống có thể xử lý được là:
λ
max
= 1/T

s

Tại λ
max
thì kích thước hàng đợi rất dài không thể kiểm soát được. Trong
thực tế thời gian trả lời và những yêu cầu kích thước hàng đợi giới hạn tốc độ đầu
vào của thông tin là 70-90% so với λ
max
theo lý thuyết.
Tại các router và chuyển mạch trong phần lõi của kiến trúc các dịch vụ phân
biệt của mạng Internet có các thuật toán lập lịch và quản lý hàng đợi. Ngày nay
kiến trúc dịch vụ phân biệt bao gồm hàng đợi cân bằng có trọng số (WFQ) cùng kĩ
thuật tách sớm có trọng số (WRED). Các kĩ thuật trên được sử dụng trong mạng
Internet làm nhiệm vụ điều khiển tắc nghẽn và điều khiển luồng lưu lượng trong
mạng. Điều khiển tắc nghẽn là vấn đề quan trọng cần giải quyết trong việc truyền
tin trong mạng. Nó sử dụng hai cơ chế độc lập:
 Cơ chế điều khiển vòng kín (Closed Loop control): điều khiển việc
truyền các gói từ các nguồn đầu cuối tới đích
 Các thuật toán lập lịch vòng hở (opened loop control): ràng buộc độ ưu
tiên được cấu hình từ trước và phân phối băng thông cho các kết nối.
Hệ thống điều khiển vòng kín bao gồm các thuật toán nguồn được điều
khiển bởi các thuật toán kết nối. Thuật toán nguồn này là bất kì giao thức nào được
truyền tải trên mạng Internet (ví dụ: TCP, UDP, RTP) và chúng không nhất thiết
phải có phản hồi đáp ứng với tắc nghẽn. Các thuật toán điều khiển kết nối hay còn
gọi là các thuật toán quản lý hàng đợi (hoặc quản lý hàng đợi tích cực AQM). Các
thuật toán AQM bao gồm thuật toán loại bỏ đuôi, thuật toán phát hiện sớm ngẫu
nhiên (RED). Thuật toán AQM thực hiện việc báo hiệu tới nguồn bằng việc đánh
dấu các gói, thông báo tắc nghẽn tường minh (ECN) hay loại bỏ các gói.
Các thuật toán lập lịch vòng mở quyết định xem gói nào sẽ được gửi kế tiếp.
Thuật toán này quyết định trật tự các gói truyền dẫn trên cơ sở trật tự sắp xếp các

gói đến và các lớp lưu lượng ưu tiên trong gói.
Còn dịch vụ phân biệt sử dụng 3 bit trong tiêu đề mỗi gói để định nghĩa lớp.
Quá trình lập lịch của gói điều khiển trật tự truyền dẫn giống như phân bố băng
thông tương ứng cho mỗi lớp dịch vụ. Lập lịch bao gồm các thuật toán liên quan
tới hàng đợi: hàng đợi FIFO, hàng đợi cân bằng có trọng số WFQ, và các thuật
toán lập lịch như: Thuật toán RR, thuật toán PS.

Hình 3.2 : Tiến trình xử lý hàng đợi trong router
Để hiểu rõ về các hàng đợi được sử dụng trong có chế điều khiển tắc nghẽn
ta phải trả lời các câu hỏi:
 Các gói sẽ được lắp đặt như thế nào trong hàng đợi.
 Thứ tự hay cách thức nào mà các thiết bị mạng phục vụ các hàng đợi của
chúng.
 Các hoạt động nào của mạng để đối xử với các bó lưu lượng và hàng đợi
bị tràn.
Router được xem như hộp lớn, trong đó có các thành phần thực hiện việc
truyền thông tin. Trong ví dụ này ta xét router có 2 giao diện. Gói tin đi từ mạng A
tới mạng B. Mạng A tiếp xúc với router qua giao diện IF0, mạng B tiếp xúc với
router qua giao diện IF1. Sau khi các gói được đưa đến từ giao diện IF0 sẽ được
đặt vào trong hàng đợi queue 0 (hàng đợi đầu vào). Tiếp theo các gói đi vào trong
router và được định hướng tới router kế tiếp dựa trên địa chỉ đích lưu giữ trong
phần header của gói tin,một số gói tin đi ra từ hàng đợi queue 0 được đưa vào hàng
đợi queue 1 kết nối với giao diện IF1. Hàng đợi queue1 còn gọi là hàng đợi đầu ra.
Có rất nhiều kĩ thuật hàng đợi: FIFO (first in first out), PQ (priority queue-
hàng đợ ưu tiên), FQ (fair queue-hàng đợi cân bằng). FIFO đây là kĩ thuật xếp
hàng vào trước ra trước cơ bản. Các gói đến trước sẽ là các gói đầu tiên được xử lý.
Khi hàng đợi đầy và có tắc nghẽn xảy ra thì các gói đến sẽ bị loại bỏ. Hàng đợi
FIFO dựa vào hệ thống đầu cuối để điều khiển tắc nghẽn thông qua cơ chế điều
khiển tắc nghẽn. Do loại hàng đợi này rất đơn giản nhiều khi không điều khiển
được tắc nghẽn nên ta thường xét các loại hàng đợi hiệu quả hơn: hàng đợi ưu

tiên(PQ), hàng đợi cân bằng (FQ), hàng đợi có trọng số (WQ).
3.1.2 Hàng đợi FIFO (First In First Out)
FIFO là hàng đợi mặc định được sử dụng trong hầu hết các router trên thế
giới. Hoạt động của FIFO. Các gói đến từ các luồng khác nhau được đối xử công
bằng bằng cách đưa vào các hàng đợi theo trật tự đến (gói nào đến trước sẽ được
đưa vào trước và được phục vụ trước)

Hình 3.3 : Hoạt động của hàng đợi FIFO
Hàng đợi hoạt động như một nơi lưu giữ các gói để tránh việc loại bỏ các
gói không cần thiết khi có dấu hiệu của tắc nghẽn. Khi có tắc nghẽn xảy ra, và
hàng đợi tràn thì tất cả các gói đến sẽ bị loại bỏ. Hàng đợi FIFO được sử dụng hầu
hết trong các router, nó đơn giản do không phải định cấu hình cho nó mà chỉ việc
sử dụng luôn. Trong các router của cisco, khi không có kế hoạch hàng đợi nào
khác được cấu hình, thì tất cả các giao diện(ngoại trừ các giao diện có tốc độ bằng
hoặc nhỏ hơn luồng E1) đều sử dụng hàng đợi FIFO mặc định. Tốc độ xử lý gói
phải nhanh hơn tốc độ các gói đến hàng đợi IF0 thì mới tránh được hiện tượng tắc
nghẽn trong mạng (hàng đợi IF1 rỗng), khi tốc độ xử lý quá thấp hơn so với tốc độ
các gói vào, có nghĩa là tốc độ ra nhỏ hơn tốc gói vào (hàng đợi đầu ra dễ bị tràn)
thì sẽ xảy ra tắc nghẽn khi có quá nhiều gói đi vào trong mạng, và khi vấn đề này
xảy ra thì các gói đến sau sẽ bị loại bỏ
3.1.3 Hàng đợi ưu tiên PQ (Priority Queue)
Kĩ thuật này được sử dụng trong trường hợp đa hàng đợi, mỗi hàng đợi có
một mức ưu tiên khác nhau, hàng đợi nào có mức ưu tiên cao nhất sẽ được ưu tiên
phục vụ trước. Khi có tắc nghén xảy ra thì các gói trong các hàng đợi có độ ưu tiên
thấp sẽ bị loại bỏ. Có một vấn đề đối với kĩ thuật này: khi các hàng đợi có độ ưu
tiên cao quá nhiều thì các gói trong hàng đợi có độ ưu tiên thấp sẽ không bao giờ
được phục vụ. Các gói được phân loại và được sắp xếp vào hàng đợi tuỳ thuộc vào
thông tin bên trong các gói. Tuy nhiên kĩ thuật này dễ bị lạm dụng bởi người sử
dụng hay các ứng dụng do ấn định các độ ưu tiên không cho phép.
Vậy PQ cho phép định nghĩa các luồng lưu lượng ưu tiên như thế nào trong

mạng? Ta có thể cấu hình các độ ưu tiên lưu lượng, có thể định nghĩa một loạt các
bộ lọc trên cơ sở các đặc điểm của gói qua router để sắp xếp các lưu lượng trong
các hàng đợi. Hàng đợi có độ ưu tiên cao nhất sẽ được phục vụ trước cho đến khi
hàng đợi rỗng, sau đó các hàng đợi có độ ưu tiên thấp hơn sẽ được phục vụ lần
lượt. Câu hỏi đặt ra là PQ làm việc như thế nào? Trong quá trình truyền dẫn,các
hàng đợi có độ ưu tiên cao được đối xử ưu tiên hơn các hàng đợi có mức ưu tiên
thấp hơn, hay nói cách khác các, lưu lượng quan trọng sẽ được gán các mức ưu tiên
cao và lưu lượng có mức ưu tiên cao nhất được truyền trước, còn lại các lưu lượng
ít quan trọng hơn. Các gói được phân loại dựa trên các tiêu chuẩn phân loại của
người sử dụng,và được đặt ở một trong số các hàng đợi đầu ra với các độ ưu tiên:
độ ưu tiên cao, trung bình, bình thường (không được ưu tiên), ưu tiên thấp. Các gói
không được ấn định độ ưu tiên sẽ được đưa tới các hàng đợi bình thường. Khi các
gói được gửi tới giao diện đầu ra, các hàng đợi ưu tiên tại giao diện đó được quét
các gói theo thứ tự độ ưu tiên giảm dần. Hàng đợi có độ ưu tiên cao nhất được quét
đầu tiên, sau đó đến các hàng đợi trung bình và tiếp tục các hàng đợi có độ ưu tiên
khác. Gói đứng đầu hàng đợi có độ ưu tiên cao nhất được truyền đầu tiên. Thủ tục
này được lặp lại mỗi khi có một gói được truyền. Chiều dài lớn nhất của hàng đợi
được định nghĩa theo chiều dài giới hạn. Khi một hàng đợi dài hơn chiều dài hàng
đợi giới hạn thì các gói đến sau sẽ bị loại bỏ.
Cơ chế hàng đợi đầu ra ưu tiên có thể được sử dụng để quản lý lưu lượng từ
tất cả các giao thức trong mạng. PQ cung cấp cách đối sử ưu tiên cho các luồng lưu
lượng có độ ưu tiên cao, chắc chắn rằng các luồng lưu lượng then chốt khi qua các
kết nối WAN sẽ đạt được độ ưu tiên cao.
Các gói được phân loại như thế nào trong kĩ thuật PQ
Danh sách ưu tiên là một tập các luật lệ mô tả các gói sẽ được ấn định các độ
ưu tiên như thế nào trong các hàng đợi. Ngoài ra nó cũng có thể mô tả độ ưu tiên
mặc định hoặc giới hạn kích thước hàng đợi của các hàng đợi ưu tiên.
Các gói được phân loại theo:
 Loại giao thức hoặc giao thức con
 Giao diện đầu vào

 Kích thước các gói tin
 Các Fragment
 Danh sách truy nhập
Tất cả các lưu lượng dùng để quản lý và điều khiển mạng đều được ấn định
độ ưu tiên cao nhất để trong trường hớp có tắc nghẽn xảy ra thì chúng được ưu tiên
truyền trước. Các lưu lượng không được ấn định mức ưu tiên nào thì được đưa vào
các hàng đợi bình thường.
PQ cung cấp thời gian đáp ứng nhanh hơn so với các kĩ thuật hàng đợi khác.
Mặc dù có thể ấn định các độ ưu tiên cho các hàng đợi tại bất kì giao diện đầu nào
nhưmg nó thường được sử dụng cho các lưu lượng có băng thông thấp.
Để giải quyết vấn đề các hàng đợi có độ ưu tiên thấp không được xử lý khi
có quá nhiều hàng đợi có độ ưu tiên cao thì ta có thể sử dụng các kiểu hàng đợi
khác: hàng đợi cân bằng có trọng số (WFQ) hay hàng đợi cân bằng (FQ), đơn giản
hơn ta có thể sử dụng cơ chế định dạng lưu lượng hay CAR để giới hạn tốc độ của
lưu lượng có độ ưu tiên cao hơn. PQ sử dụng định cấu hình tĩnh do đó nó không
thể thích ứng với các mạng thay đổi. Cơ chế xếp hàng ưu tiên là cơ chế đơn giản,
có thể cung cấp các lớp dịch vụ phân biệt và cần ít nhất hai hàng đợi FIFO. Lấy
một ví dụ sau: cho các hàng đợi FIFO và ta sẽ ấn định các mức ưu tiên khác nhau
cho chúng: mức ưu tiên cao, mức ưu tiên trung bình, mức ưu tiên bình thường,
mức ưu tiên thấp.


Hình 3.4 : Cơ chế làm việc của PQ
Sau đó cần hai cơ chế sau:
 Một bộ phân loại có nhiệm vụ kiểm tra các phần header của gói tin để
quyết định xem gói nào nên được đưa vào hàng đợi nào.
 Bộ lập lịch có nhiệm vụ làm rỗng các hàng đợi, bắt đầu bằng hàng đợi có
độ ưu tiên cao nhất sau đó đến các hàng đợi trung bình, tiếp theo là các
hàng đợi trung bình, cuối cùng là hàng đợi có độ ưu tiên thấp. Các hàng
đợi được phục vụ cho tới khi nào không còn gói nào trong chúng thì lúc

đó bộ lập lịch mới chuyển sang hàng đợi khác.
3.1.4 Hàng đợi cân bằng FQ (Fair Queue)
Kĩ thuật này giải quyết vấn đề một số hàng đợi không được phục vụ trong
một thời gian dài do tài nguyên dùng để phục vụ cho các hàng đợi có độ ưu tiên
cao hơn. Thuật toán Round Robin trong lập lịch được dùng để phục vụ tất cả các
hàng đợi một cách công bằng. Kĩ thuật này ngăn chặn một số nguồn dùng quá
nhiều tài nguyên của mạng mà không chia sẻ cho các nguồn khác. Các vấn đề có
thể xảy ra khi các gói có chiều dài thay đổi, và các hàng đợi chỉ được cho phép giải
phóng một gói tại một thời điểm. Lược đồ định hướng một byte có thể được sử
dụng để cân bằng các hàng đợi. Thêm vào đó một số hàng đợi có thể bị đầy hơn
các hàng đợi khác và chúng yêu cầu phải được phục vụ nhiều hơn nhưng kĩ thuật
hàng đợi cân bằng sẽ phục vụ mỗi hàng đợi công bằng
3.1.5 Hàng đợi cân bằng có trọng số WFQ (Weighted Fair Queue)
Thuật toán hàng đợi cân bằng có trọng số là một thuật toán nằm trong họ các
thuật toán hàng đợi cân bằng (FQ). Kĩ thuật này có thể được xem là sự phối hợp
của hai kĩ thuật hàng đợi cân bằng và hàng đợi ưu tiên. Tất cả các hàng đợi đều
được phục vụ do đó có thể tránh được tình trạng bỏ đói hàng đợi, tuy nhiên sẽ có
một số hàng đợi được ưu tiên phục vụ nhiều hơn. Một trọng số sẽ được gán cho
một số hàng đợi để ấn định chỉ số ưu tiên cao hơn cho chúng.

Hình 3.5 : Hoạt động của hàng đợi WFQ
Ví dụ: có một hàng đợi sẽ chiếm một nửa băng thông khả dụng, nửa băng thông
còn lại sẽ chia cho các hàng đợi còn lại. Lưu lượng có thể được ưu tiên tuỳ theo
các gói được đánh dấu, địa chỉ IP đích, địa chỉ IP nguồn hay số cổng, thông tin
trong trường TOS của phần tiêu đề gói tin IP. WFQ đánh các trọng số cho các luồng
lưu lượng do đó các lưu lượng có mức băng thông thấp sẽ đạt được các mức ưu tiên
bằng nhau. Nếu các hàng đợi có mức ưu tiên cao không được sử dụng thì các lưu
lượng có mức ưu tiên thấp sẽ sử dụng các hàng đợi đó. Điều này ngăn cản các lưu
lượng có băng thông cao giành lấy các tài nguyên đã được chia sẻ. Tính năng quan
trọng của kĩ thuật này là việc di chuyển các lưu lượng tương thích thời gian thực lên

trước hàng đợi và chia sẻ một cách công bằng băng thông còn lại với các hàng đợi
khác.
Khi các gói đến nó sẽ được phân loại bởi bộ phân loại và được ấn định tới
một cửa. Cửa này là một thực thể của hàng đợi mà cùng với các cửa khác được sắp
xếp theo trật tự của thuật toán round robin có trọng số. Chỉ theo cách này thì dịch
vụ mới thực sự được đối sử công bằng cho mỗi hàng đợi. Chìa khoá của sự phân
loại là đàm thoại, điều này có nghĩa là việc thể hiện trọng số để phân loại phụ
thuộc vào thông tin nằm trong phần tiêu đề gói tin (địa chỉ nguồn, địa chỉ đích,
giao thức cổng nguồn, IP precedence). Bởi vì trong thực tế không thể áp dụng một
hàng đợi cho một cuộc đàm thoại, WFQ sẽ sử dụng thuật toán Băm để chia cắt
luồng lưu lượng ra thành các luồng nhỏ rồi đưa vào một số gới hạn các hàng đợi
được lựa chọn bởi người sử dụng hay được cố định bởi mặc định. Cách này làm
tăng số lượng lớn nhất có thể của các hàng đợi, thể hiện sự cân bằng của thuật
toán. Điều này có nghĩa là ta có thể có rất nhiều luồng cùng chia sẻ trong cùng một
hàng đợi (được thể hiện dựa trên màu sắc khác nhau của các gói trong hàng đợi).
Khi các gói đến, bộ phân loại sẽ kiểm tra thông tin trong phần header của gói tin và
sử dụng các thông tin này, tính toán số lượng nằm giữa 1 và số hàng đợi. Sau đó
lắp đặt các gói này vào các hàng đợi định nghĩa bởi các số này. WFQ tách các gói
có độ ưu tiên cao hơn được đánh dấu các bit IP Precedence bởi các router và có thể
lập lịch nhanh hơn. Theo cách này thì với các precedence cao thì WFQ được cấp
băng thông nhiều hơn cho các luồng này hơn các luồng các khác. WFQ được sử
dụng như các hàng đợi mặc định trong các giao diện nối tiếp của các router của
cisco được cấu hình tại tốc độ nhỏ hơn hoặc bằng tốc độ luồng E1(2.048 Mb/s).
Ngoài các bit precedence thì WFQ có thể phân loại lưu lượng thành các luồng khác
nhau (hàng đợi) dựa trên cơ sở mạng đích, mạng nguồn hoặc địa chỉ MAC, cổng
nguồn, cổng đích, giao thức, số ổ cắm của khe, giá trị nhận dạng kết nối liên kết
chuyển tiếp khung (DLCI) và giá trị TOS. Có loại xử lý luồng : các phiên làm việc
có băng thông cao và các phiên làm viêcj có băng thông thấp. Lưu lượng băng
thông thấp có độ ưu tiên hiệu quả hơn so với lưu lượng yêu cầu băng thông lớn và
các lưu lượng băng thông lớn chia sẻ dịch vụ truyền dẫn tương ứng theo các trọng

số được ấn định. Các luồng lưu lượng băng thông thấp bao gồm các phần chính
của lưu lượng, dịch vụ ưu đãi nhận, cho phép toàn bộ tải cung cấp được gửi trong
trong một khuôn mẫu mang tính thời gian. Các luồng lưu lượng băng thông cao
chia sẻ băng thông còn lại. Các bản tin mới đối với các luồng yêu cầu băng thông
cao bị loại bỏ sau khi bắt gặp mức ngưỡng bản tin tắc nghẽn. Tuy nhiên các luồng
băng thông thấp bao gồm bản tin điều khiển sẽ tiếp tục xếp hàng lại. Kết quả là
hàng đợi cân bằng thỉnh thoảng sẽ chứa nhiều bản tin hơn là được phân loại bởi số
mức ngưỡng. Ngoài ra WFQ có thể làm việc với RSVP (giao thức đặt trước tài
nguyên) để xây dựng nên các cấu trúc dịch vụ tích hợp (kiến trúc được thiết kế để
đảm bảo băng thông mạng từ đầu cuối đến đầu cuối trong mạng IP), hay liên kết
với các lược đồ thông báo tắc nghẽn Frame Relay bằng việc chỉnh sửa các trọng số
của hàng đợi để đáp ứng cho các thông báo tắc nghẽn thuận(FECN) và thông báo
tắc nghẽn ngược (BECN), và một chút để xây dựng kiến trúc dịch vụ phân biệt sử
dụng các bít IP Precedence.

WFQ cung cấp sự quản lý ưu tiên lưu lượng động theo từng loại lưu lượng
bên trong các gói. WFQ có thể quản lý các luồng dữ liệu duplex, ví dụ như giữa
các cặp ứng dụng, và các luồng dữ liệu đơn giản như thoại và thoại và video. WFQ
cung cấp giải pháp cho các trường hợp yêu cầu thời gian nhất quán cho các người
sử dụng mạng có tải nặng và nhẹ giống như là không cung cấp thêm băng thông
thừa. WFQ tự động tương thích để thay đổi các điều kiện lưu lượng của mạng
3.1.6 So sánh các kĩ thuật hàng đợi
Bảng 3.2 : So sánh các loại hàng đợi
Cơ sở
so
sánh
WFQ PQ FQ FIFO
Hoạt
động
+Ấn định trọng

số cho hàng đợi.
Luồng lưu lượng
có độ ưu tiên cao
được truyền
trước
+Hạn chế được
hiện tượng bỏ
đói các hàng đợi
có độ ưu tiên
thấp
+Ấn định độ ưu tiên
khác nhau cho từmg
hàng đợi phù hợp với
từng loại lưu lượng.
Hàng đợi có độ ưu tiên
cao nhất được truyền
đầu tiên
+Xảy ra trường hợp bỏ
đói các hàng đợi có độ
ưu tiên thấp
+Các hàng đợi
được đối xử
như nhau
+Không xảy ra
hiện tượng bỏ
đói hàng đợi
+Gói nào đến
trước được
phục vụ trước
không phân

biệt loại dịch
vụ
+Không có
hiện tượng bỏ
đói hàng đợi
Loại
lưu
lượng

Không được ấn
định cho loại lưu
lượng có độ trễ
latency thấp. Do
thời gian phục
vụ của hàng đợi
phục thuộcvào
số lượng gói có
trong hàng đợi
Ưu tiên sử dụng cho
các loại lưu lượng yêu
cầu độ trễ latency thấp,
do các gói quan trọng
sẽ được ấn định độ ưu
tiên cao và luôn được
truyền trước.
Không được
ấn định cho
loại lưu lượng
có độ trễ
latency thấp.

Do thời gian
phục vụ của
hàng đợi phục
thuộcvào số
lượng gói có
trong hàng đợi

Sử dụng cho
mọi loại lưu
lượng, cung
cấp cách xếp
hàng nhanh
nhất và hiệu
quả đối với
các kết nối có
độ tắc nghẽn
nhỏ nhất.
Cấu
hình
Không yêu cầu
thiết lập cấu
hình danh sách
Có yêu cầu cấu hình Không yêu cầu
thiết lập cấu
hình danh sách
Không yêu
cầu cấu hình
truy nh
ập khi
quyết định luồng

lưu lượng nào sẽ
được truyền tại
cổng serial
truy nh
ập khi
quyết định
luồng lưu
lượng nào sẽ
được truyền
Bộ
lập
lịch
Sử dụng trong
bộ lập lịch tương
thích
Sử dụng trong bộ lập
lịch ưu tiên chặt

Sử dụng trong
bộ lập lịch
tương thích
Ít sử dụng
trong bộ lập
lịch
Với các loại hàng đợi khác nhau sẽ hoạt động theo các cách khác nhau và
chúng có các ưu điểm và nhược điểm riêng thích hợp với từng loại lưu lượng. Có
loại hàng đợi được sử dụng phù hợp với loại lưu lượng này và không nên sử dụng
với loại lưu lượng khác. Việc tìm hiểu đặc tính của các loại hàng đợi cho phép sử
dụng hiệu quả kĩ thuật này trong việc điều khiển tắc nghẽn và điều khiển lưu
lượng. Các loại hàng đợi này hầu hết cũng được sử dụng trong các thuật toán lập

lịch.
3.2 Các kĩ thuật liên quan tới hàng đợi
Trong chương 2 chúng ta đã biết sơ qua về khái niệm quản lý hàng đợi,
trong chương này sẽ đi sâu hơn.
Thực chất quản lý hàng đợi (hay quản lý hàng đợi tích cực- AQM) là lược
đồ thể hiện các hoạt động đặc biệt của router để thực hiện truyền các luồng tốt hơn,
thoả mãn yêu cầu QoS của người sử dụng. Các hoạt động này bao gồm quá trình
loại bỏ gói ngẫu nhiên (ví dụ trong RED), sắp xếp lại theo trật tự các gói được
phục vụ (trong WFQ) và đánh dấu ngẫu nhiên các gói từ các luồng (trong ECN).
Nếu WFQ được sử dụng để cung cấp sự công bằng cho các luồng tham gia thì
RED/ECN được sử dụng để tránh tắc nghẽn bằng việc loại bỏ ngẫu nhiên hoặc
đánh dấu các gói có xác suất làm tăng tắc nghẽn. Các phương pháp này không biến
đổi thích hợp với các ứng dụng đa phương tiện do đó không thể trực tiếp sử dụng
để cải thiện chất lượng video của luồng trên Internet. Phương pháp điều khiển tắc
nghẽn truyền thống phối hợp với AQM tạo ra cách thức điều khiển cho mạnh mẽ
và tinh vi cho phép phát hiện các trạng thái của mạng rõ ràng hơn so với các hệ
thống đầu cuối.
Do kích thước hàng đợi không phải là vô hạn nên chúng có thể bị điền đầy
và có thể bị tràn khi số lượng gói tin đến quá nhiều. Nếu hàng đợi đã đầy, thì bất kì
gói nào đến hàng đợi đều không được đưa vào hàng đợi mà sẽ bị loại bỏ ngay.
Trường hợp này gọi là loại bỏ đằng đuôi. Với phương pháp này thì router không
thể ngăn chặn được việc các gói này bị loại bỏ (thậm chí nếu đó là các gói có độ ưu
tiên cao). Do đó cơ chế quản lý hàng đợi cần phải thực hiện được hai việc:
 Cố gắng quản lý sao cho hàng đợi không bị điền đầy, do đó vẫn còn chỗ
cho các gói có độ ưu tiên cao và giảm được xác suất loại bỏ gói.
 Nếu hàng đợi bị đầy thì thực hiện chính sách loại bỏ các gói có độ ưu
tiên thấp trước các gói có độ ưu tiên cao. Để thực hiện được điều này ta
sử dụng các thuật toán RED
Để có thể hiểu rõ hơn về các thuật toán quản lý hàng đợi ta xem xét qua một
số vấn đề sau

3.2.1 Bắt giữ và đánh dấu gói tin
Mỗi lớp lưu lượng đều có một giới hạn các cách xử sự trước khi đi vào mạng
như giới hạn tốc độ các gói vào mạng như thế nào, số lượng các gói đến trong các
khoảng thời gian lý thuyết (được biết đến như một Profile). Bắt giữ và đánh dấu
gần giống như các hoạt động diễn ra trong router khi nó quyết định một gói ở bên
ngoài các giới hạn một giá trị trị nào đó được ấn định cho mỗi luồng lưu lượng (gọi
là out profile). Nếu các gói bị bắt giữ thì các gói out profile sẽ bị loại bỏ. Còn đánh
dấu thì mềm hơn là các gói out profile bị đánh dấu bằng cách chỉnh sửa một hoặc
một vài các bit trong phần header và sau đó được chuyển tới hàng đợi đầu ra của
router và tới tầng lập lịch. Các chức năng tương tự được biết đến là các chức năng
định dạng lưu lượng, nó sẽ chỉnh sửa một số đặc điểm tạm thời của lưu lượng bằng
cách chuyển tiếp các gói bên trong có độ trễ được lựa chọn.
Hoạt động của chức năng bắt giữ và đánh dấu
Bắt giữ và đánh dấu chia sẻ thành phần chung đó là bộ đo. Chức năng đo đạc
để quyết định xem gói nằm trong profile (in profile) hay nằm ngoài profile (out
profile). Một ví dụ là sử dụng bộ đo thẻ token packet cho phép một mức độ nhỏ
các bó bên trong một lớp lưu lượng điển hình. Các thẻ được đưa vào gáo tại tốc độ
cố định X (số thẻ /s) và sẽ bị loại bỏ ra khỏi gói khi gói đến. Kích thước của gáo là
giới hạn, gáo có kích thước là Y thẻ










Depth of Bucket

Token Bucket

Token Bucket

Token Bucket

Pack
arrive
Pack
arrive
Pack
arrive
Take
available
Token
Take
available
token

Take
available
token
P
rofile : In

Pr
of
ile : In

Pr

of
ile : Out

Hình 3.6 : Chức năng đo đơn giản của token packet
Khi một gói đến trong một gáo, và trong gáo có ít nhất một thẻ tồn tại thì thẻ
đó được gán cho gói (thẻ được gỡ bỏ) và gói được xem như in profile. Nếu không
có thẻ nào trong gói thì gói được coi là out profile. Thẻ sẽ được bổ sung với tốc độ
X thể hiện tốc độ trung bình dài hạn nếu các gói được duy trì trong profile. Tuy
nhiên các gói có thể đến dưới dạng các bó ngắn và vẫn được xem như ở trong
profile cho tới khi gáo đạt được Y thẻ. Nếu gói đến với tốc độ R nhỏ hơn X thì gáo
sẽ điền thêm (X - R) thẻ trên một giây, và sẽ dừng lại khi nó đạt được Y thẻ. Nếu
gói đến với tốc độ R= X thì số thẻ trong gáo không đổi. Khi tốc độ R > X thì thẻ ra
khỏi gáo với tốc độ R- X. Chỉ cần trong gáo còn ít nhất một thẻ thì gói vẫn được
xem như trong Profile. Nếu R quá lớn hơn so với X, gáo rỗng thì các gói đến lần
lượt sẽ được xem như nằm ngoài profile. Trạng thái out profile sẽ tiếp diễn cho tới
khi R giảm xuống nhỏ hơn X (tại điểm này gáo lại bắt đầu được điền đầy và thoát
khỏi trạng thái rỗng). Một token packet có thể được xem như điều luật bắt buộc để
điều khiển tốc độ của các gói đến: số lượng các gói đến một điểm đo tại chu kì T
phải nhỏ hơn (T

X

Y)
Có thể có nhiều token packet cùng hoạt động đồng thời để đo các gói đến.
Lúc này ta phải sử dụng profile xếp lớp cho các gói đến. Các trường hợp có thể xảy
ra khi các gói đến:
 Nếu trong các gáo có tồn tại các thẻ thì tất cả các gói đến đều là in
profile tại mỗi gói thẻ sẽ được rút ra và gói được truyền bình thường
 Nếu một gáo không có thẻ, nhưng các gáo khác vẫn có thẻ thì gói đi vào
gáo không thẻ có thể bị bắt giữ, còn các gói đến các gáo có thẻ thì chỉ bị

đánh dấu trước khi truyền gói thông thường.
 Nếu tất cả các gáo đều rỗng thì các gói bị loại bỏ(bắt giữ)
Tuy nhiên các router sẽ đối xử các gói bị đánh dấu như các gói loại hai khi
có tắc nghẽn xảy ra trong mạng. Có hai cách đối xử với các gói bị đánh dấu này:
cách thứ nhất đánh giá thấp độ ưu tiên của gói bằng cách ấn định chúng vào các
hàng đợi khác nhau trên quá trình đánh dấu. Cách thứ 2 hoán vị thuật toán quản lý
hàng đợi để giữ cho độ chiếm giữ hàng đợi thấp. Cách thứ nhất thường gây ra hiện
tượng sắp xếp lại trong hàng đợi của cùng một lớp lưu lượng, hầu hết các giao thức
đầu cuối trong mạng TCP không xử lý hiệu quả được hiện tượng này nên cách tốt
nhất là sử dụng quản lý hàng đợi tích cực để quản lý các gói đi vào trong hàng đợi.
RED là một thuật toán quản lý hàng đợi tích cực cho phép quản lý hiệu quả quá
trình các gói đi vào trong hàng đợi.
3.2.2 Giảm chiếm giữ hàng đợi
Chiếm giữ hàng đợi là hiện tượng các gói tin ở lâu trong hàng đợi mà chưa
được xử lý. Các gói tin chiếm giữ hàng đợi làm cho không gianhàng đợi bị thu hẹp
lại và khi có nhiều gói tin khác đến sẽ không được đưa vào hàng đợi và có thể bị
loại bỏ khi có tắc nghẽn xảy ra. Độ chiếm giữ hàng đợi tăng khi tải cung cấp (tốc
độ lưu lượng đến) vượt quá tốc độ bộ lập lịch xử lý gói tin ra khỏi hàng đợi. Và tốc
độ hàng đợi đưa gói ra ngoài phụ thuộc nhiều vào cách bộ lập lịch tác động ngược
trở lại luồng lưu lượng như thế nào từ các hàng đợi khác để truy nhập được tới đầu
ra. Độ chiếm giữ có thể được xem như ảnh hưởng của các mức tắc nghẽn hiện tại
lên giao diện đầu ra của hàng đợi.
Để giảm độ tắc nghẽn ta sử dụng một số cách thức tránh tắc nghẽn trog một
số các giao thức truyền tải được tạo ra khi luồng lưu lượng đi qua hàng đợi. Do trễ
xảy ra trước khi bất kì một giao thức truyền tải nào kịp tác động đến tắc nghẽn
trong router, nên quản lý hàng đợi có hai khái niệm cơ bản về tắc nghẽn :
 Tắc nghẽn trong suốt : xảy ra với chu kì ngắn hơn là thời gian xử lý
của các giao thức điều khiển tắc nghẽn. Tắc nghẽn này xảy ra ngắn, liên quan tới
các lưu lượng dạng bó từ một hoặc nhiều luồng. Nhìn chung router không muốn
loại bỏ các gói từ một bó lưu lượng do đó phải thiết kế được hàng đợi có kích

thước sao cho nó có thể bao trùm được kích thước của các bó lưu lượng. Điều này
rất khó thực hiện được do kích thước bó lưu lượng thay đổi theo từng luồng lưu
lượng đến do đó chỉ có cách là quản lý động kích thước hàng đợi phù hợp với kích
thước của bó lưu lượng. Khi kích thước bó lưu lượng lớn thì kích thước hàng đợi
trung bình tăng, còn khi lưu lượng đến dưới dạng bó nhỏ thì kích thước hàng đợi
trung bình giảm.
 Tắc nghẽn dài hạn : là kết quả từ tốc độ trạng thái không đổi của tất cả
các luồng khi chuyển qua hàng đợi. Khi có tắc nghẽn trong mạng thì quản lý hàng
đợi sẽ sử dụng cơ chế phản hồi cho các giao thức truyền tải để giữ cho trễ dài hạn
giảm. Về nguyên lý có thể gửi phản hồi theo hai cách :
+ Đánh dấu các gói trong nhóm
+ Loại bỏ các gói
Để giảm độ chiếm giữ hàng đợi có hai cách thực hiện :

a. Thông báo tắc nghẽn rõ ràng
Mặc dù loại bỏ các gói là cách phù hợp với cơ chế phản hồi, nhưng cách này
không tích cực do việc loại bỏ các gói sẽ gây ra lãng phí tài nguyên mạng sử dụng
để truyền được gói đến router trước khi nhận thấy có tắc nghẽn. Do đó sử dụng chỉ
thị tắc nghẽn để tránh lãng phí tài nguyên. Một cách thức được sử dụng là thông
báo tắc nghẽn rõ ràng (ECN). Hai bit không được sử dụng CU trong trường DS
được chỉ thị như các bít truyền tải theo ECN (ECT) và bit thể hiện tắc nghẽn (CE).
Phía gửi giao thức truyền tải sẽ thiết lập bit ECT tại biên giới ngoài của các gói tin
khi đó phần kết thúc một luồng hiểu được bit CE. Khi không có yêu cầu phản hồi
điều khiển tắc nghẽn, bit CE bị từ chối. Khi một router dọc theo tuyến muốn gửi
phản hồi điều khiển tắc nghẽn thì có hai tuỳ chọn sau :
 Nếu bit ECT được thiết lập, thì thiết lập bit CE.
 Nếu bit ECT được thiết lập lại thì loại bỏ các gói.
b. Loại bỏ trước
Trước khi quyết định loại gói phải đặt ra câu hỏi nên loại bỏ gói để đơn giản
việc quản lý và không ảnh hưởng nhiều đến các gói khác trong hàng đợi. Từ vấn đề

trên thấy đơn giản nhất là loại bỏ gói ngay trước khi đi vào hàng đợi (gọi là loại bỏ
đuôi). Có một cách tương tự trên là loại bỏ trước (DFF), loại bỏ ngay tại đầu hàng
đợi. Đôi khi loại bỏ trước được thông báo sớm hơn loại bỏ đuôi tuy nhiên nó mất
thời gian và công đoạn xử lý hơn do các gói đã được đưa vào hàng đợi rồi mới bị
loại bỏ.
3.3 Các phương pháp quản lý hàng đợi
Quản lý hàng đợi là là một nhóm tổ hợp các phương pháp quản lý bộ đệm và
lập lịch gói, đây là một trong những cơ chế cung cấp chất lượng dịch vụ (QoS).
Quản lý bộ đệm quyết định việc phân phối bộ đệm và loại bỏ các gói đến theo một
chính sách được quyết định trước. Trong khi đó lập lịch cho phép quản lý băng
thông hay nói cách khác là nó quyết định xem gói nào sẽ được đưa ra từ hàng đợi
nào. Do đó có rất nhiều các thuật toán được đưa ra trong kĩ thuật quản lý hàng đợi.
Đối với quản lý bộ đệm có các thuật toán : RED, Blue, PBS (chia sẻ bộ đệm từng
phần), loại bỏ đuôi….quá trình lập lịch có nhiều phương pháp : RR, WFQ, EDF
(Earliest Deadline First). Trong chương này chủ yếu đi sâu vào các phương pháp
quản lý bộ đệm.
3.3.1 Kĩ thuật Tail Drop
Loại bỏ đuôi là kĩ thuật truyền thống nhằm quản lý chiều dài hàng đợi của
router, thiết lập chiều dài hàng đợi lớn nhất cho mỗi hàng đợi, chấp nhận các gói
đến cho tới khi đạt được chiều dài lớn nhất. Các gói đến sau sẽ bị loại bỏ cho tới
khi kích thước
hàng đợi giảm
xuống.











Khi độ chiếm giữ hàng đợi nhỏ hơn giá trị lớn nhất (max) thì các gói đến từ
luồng lưu lượng vẫn được chấp nhận và được xếp hàng vào bộ đệm chờ xử lý. Khi
độ chiếm giữ hàng đợi vượt quá giá trị max cho phép thì tất cả các gói đến sau đều
bị loại bỏ cho tới khi độ chiếm hàng đợi giảm.

Hình 3.7 : Lược đồ xác suất loại bỏ các gói trong Tail Drop
0
max
chiều dài hàng đợi
100%
Xác suất loại bỏ gói

×