Tải bản đầy đủ (.doc) (26 trang)

Tổng quan về lí thuyết hàng đợi

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 (554.63 KB, 26 trang )

Tiểu luận mơn học mạng băng rộng

1. Mở đầu
Lí thuyết hàng đợi đã nghiên cứu từ lâu là nền tảng cho việc sản xuất cũng như vận hành các
hệ thống thơng tin. Trong đó khái niệm về lập lịch trong hàng đợi cũng là một ưu tiên được
quan tâm nhiều nhất vì tính vai trị quan trọng của nó. Trong bài tiểu luận này, chúng tôi xin
được đưa ra các khái niệm, ích lợi cũng như hạn chế của các kiểu lập lịch trong hàng đợi
2. Tổng quan về lí thuyết hàng đợi
2.1 Hàng đợi và đặc điểm
Trong bất cứ một hệ thống nào thì khách hàng đi đến các điểm cung cấp dịch vụ và rời khỏi
hệ thống khi dịch vụ đã được cung cấp.
Ví dụ:
Các hệ thống điện thoại: khi số lượng lớn khách hàng quay số để kết nối đến một trong
những đường ra hữu hạn của tổng đài. Trong mạng máy tính: khi mà gói tin được chuyển từ
nguồn tới đích và đi qua một số lượng các nút trung gian. Hệ thống hàng đợi xuất hiện tại mỗi
nút ở q trình lưu tạm thơng tin tại bộ đệm.
Hệ thống máy tính: khi các cơng việc tính tốn và tuyến làm việc của hệ thống u cầu
dịch vụ từ bộ xử lý trung tâm và từ các nguồn khác. Những tình huống này được diễn tả bằng
hình vẽ sau

Hình 1. Mơ hình chung của hệ thống hàng đợi
2.2 Các tham số hiệu năng trung bình
Số lượng trung bình của khách hàng trong hệ thống
Nhắc lại rằng phân bố của trạng thái ổn định cho số lượng khách hàng trong hệ thống khi
t→∞. Ví vậy, có thể suy ra số khách hàng trung bình trong hệ thống từ phân bố trạng thái ổn
định của hệ thống như sau:

Kết quả trên khơng áp dụng cho số trung bình khách hàng trong hệ thống tại một khoảng
thời gian ngắn t (arbitrary time t).
1



Tiểu luận mơn học mạng băng rộng

Số lượng trung bình của khách hàng trong hàng đợi
Chú ý rằng số lượng khách hàng trong hàng đợi thì bằng với số lượng khách hàng trong hệ
thống trừ đi 1. Sử dụng cùng các giả thiết ta có:

Chú ý rằng tổng bắt đầu từ i=1, do sự kiện khách hàng đợi chỉ đúng khi có nhiều hơn 0
khách hàng trong hệ thống. Chú ý rằng (i-1)!, do đang tìm số lượng khách hàng trung bình
trong hàng đợi.
Thời gian trung bình trong hệ thống
Thời gian này có thể được phân chia thành hai thành phần : Thời gian đợi và thời gian phục vụ.
Tính tốn các tham số hiệu năng này địi hỏi những giả thiết thêm dựa trên đặc tính của hệ
thống hàng đợi :
Quy tắc phục vụ khách hàng : Giả sử quy tắc “ first-come, first served” là khách hàng được
phục vụ theo thứ tự như khi đến hệ thống. Phân bố trạng thái ổn định pk, k=0,1,…, cũng giống
như phân bố xác suất của số lượng khách hàng trong hệ thống. Thời gian phục vụ dư trung
bình của khách hàng sẽ dùng để phục vụ khi tiến trình đến xảy ra với tốc độ 1/µ, cũng giống
như vậy. Vì vậy được gọi là đặc tính khơng nhớ. Sử dụng các giả thiết cho thời gian trung bình
trong hệ thống của khách hàng :

Thời gian trung bình trong hàng đợi (thời gian đợi để được phục vụ)
Với các giả thiết trên ta có:

Chú ý rằng thời gian trung bình trong hàng đợi bằng với thời gian trung bình hệ thống trừ
đi thời gian phục vụ:

Các cách tiếp cận đã trình bày được sử dụng để phân tích bất kỳ một thống hàng đợi đều
phải có các giả thiết sau: Tiến trình đến là tiến trình poisson, có nghĩa là khoảng thời gian đến
đượcphân bố theo hàm mũ. Tiến trình đến với tốc độ đến thay đổi. Hệ thống có một hoặc nhiều


2


Tiểu luận môn học mạng băng rộng

server. Thời gian phục vụ có dạng phân bố hàm mũ. Tiến trình đến là độc lập với các tiến trình
phục vụ và ngược lại. Có vơ hạn các vị trí đợi hữu hạn trong hệ thống
Tất cả các giả thiết tạo thành lớp đơn giản nhất của hệ thống hàng đợi.
2.3 Ký hiệu Kendall
Được sử dụng để mô tả hệ thống hàng đợi kí hiệu A/B/C/S/R/D
A: Tiên trình ngẫu nhiên của u cầu đến hệ thống đặc trưng bởi phân bố ngẫu nhiên tốc độ
trung bình λ. M: Markop, D: Deterministic; G: General.
B: Tiến trình ngẫu nhiên của thời gian xử lí u cầu tại server đặc trưng bởi phân bố ngẫu
nhiên và tốc độ TB µ. M: Markop, D: Deterministic; G: General
C: Số server (c >=0)
S: Dung lựong hệ thống hàng đợi (S>=0)
R: Số nguồn phát sự kiện với tiến trình Poisson, R không quan trọng
D: Cách thức phục vụ của server. FIFO, LIFO, Round robin, WRR, Priority
2.4. Một số mơ hình hàng đợi cơ bản
Các hàng đợi cơ bản gồm có M/M/1/∞,
Tiến trình tới và tiến trình phục vụ Poisson, hàng đợi vơ hạn, 1 server
Hàng đợi M/M/1/k
Tiến trình tới và tiến trình phục vụ Poisson, hàng đợi có độ dà k, 1 server
Hàng đợi M/M/C/∞
Tiến trình tới và tiến trình phục vụ: Poisson, hàng đợi có kích thước vơ hạn, c server với tốc độ
phụ vụ trung bình như nhau
Hàng đợi M/M/c/0
Tiến trình tới và tiến trình phục vụ: Poisson, hệ thống khơng có hàng đợi, c server với tốc độ
phụ vụ trung bình như nhau

3. Các kiểu lập lịch phổ biến

3.2.1

Kiểu FIFO

3


Tiểu luận môn học mạng băng rộng

Kiểu xếp hàng First-in, first-out (FIFO- vào trước ra trước) là kiểu lập lịch cơ bản nhất.
Trong hàng đợi FIFO, tất cả các gói tin được đối xử như nhau bằng cách đặt chúng vào một
một hàng đợi, sau đó phục vụ chúng theo thứ tự giống như khi chúng được đặt vào hàng đợi.
FIFO cũng được gọi là xếp hàng First-come, first-served (FCFS) tức đến trước phục vụ trước.
Xem hình vẽ bên dưới

Lợi

Hình 2: Xếp hàng First-in, First-out FIFO)
ích và hạn chế của FIFO
Hàng đợi FIFO có những lợi ích sau:
Đối

với

các
bộ
định tuyến dùng phần mềm (Software based
router), hàng đợi FIFO tạo ra tải tính tốn rất

thấp khi so sánh với các kiểu lập lịch hàng đợi
phức tạp khác
Các xử lí của FIFO là rất dễ dự đốn với các gói
tin đên khơng tuần tự và trễ tối đa được xác định bởi độ sâu tối đa của hàng đợi
Hàng đợi FIFO cung cấp cách giải quyết đơn giản đối với tài nguyên mạng mà
không tăng trễ hàng đợi được trải qua ở mỗi chặng.
FIFO cũng đưa ra các hạn chế như sau:
- Hàng đợi FIFO đơn không cho phép các tổ chức các gói tin trong bộ đệm và sau đó
phục vụ ưu tiên một lớp lưu lượng khác với các lớp khác.
Một hàng đợi FIFO ảnh hưởng đến tất cả các luồng như nhau bởi vì trễ hàng đợi
trung bình của tất cả các luồng tăng khi nghẽn tăng. Vì vậy FIFO có thể làm tăng trễ
(delay), jiter, tổn thất cho những ứng dụng thời gian thực đi qua hàng đợi FIFO
- Trong chu kì nghẽn, hàng đợi FIFO giúp ích cho luồng UDP hơn là TCP. Khi trải
qua việc mất gói vì tắc nghẽn, các ứng dụng dựa trên TCP giảm tốc độ truyền dẫn nhưng
các ứng dụng dựa trên UDP khơng nhớ tới việc mất gói và tiếp tục phát các gói ở tốc độ
bình thường. Bởi vì các ứng dụng dựa trên TCP làm chậm tốc độ phát của chúng để tương
thích với sự thay đổi trong mạng, hàng đợi FIFO có thể dẫn đến tăng trễ, jitter, và giảm số
lượng băng thông đầu ra được sử dụng bởi ứng dụng TCP xếp trong hàng đợi
- Một luồng bùng nổ lưu lượng có thể tiêu thụ tồn bộ khơng gian đệm của hàng đợi
FIFO và nó gây ra việc từ chối các các luồng dịch vụ khác cho đến tận khi sự bùng nổ này
chấm dứt. Điều này gây ra tăng trễ, jitter, mât gói của các luồng TCP, UDP khác đi vào
hàng đợi
Ứng dụng và thực hiện FIFO

4


Tiểu luận mơn học mạng băng rộng

Nhìn chung hàng đợi FIFO được sử dụng khi các nguyên tắc lập lịch khác khơng được cấu

hình. Trong một số trường hợp thì các nhà sản xuất thiết bị có thể thực hiện hai hàng đợi nếu
khơng cấu hình bất kì hàng đợi khác. Một hàng đợi có độ ưu tiên cao để lập lịch cho lưu
lượng điều khiển mạng và một hàng đợi FIFO cho các lưu lượng khác.
3.2.2

Xếp hàng ưu tiên (Priority Queuing -PQ)

Xếp hàng ưu tiên là khởi điểm cho một lớp các giải thuật lập lịch trong hàng đợi mà nó
được thiết kế để cung cấp một phưong pháp đơn giản hỗ trợ các lớp dich vụ khác nhau. Thuật
tốn được thiết kế để đưa ra tính ưu tiên nghiêm ngặt đối với những dòng lưu lượng quan
trọng. Trong hàng đợi PQ cổ điển, các gói trước tiên được phân lớp bởi hệ thống và đặt vào các
hàng đợi ưu tiên khác nhau. PQ có thể thực hiện ưu tiên căn cứ vào giao thức, giao diện
truyền, kích thước gói, địa chỉ nguồn hoặc điạ chỉ đích ...Trong thuật tốn, các gói được đặt
vào 1 trong các hàng đợi có mức ưu tiên khác nhau dựa trên các mức độ ưu tiên được gán (Ví
dụ như bốn mức ưu tiên là High, Medium, Normal, và Low) và các gói trong hàng đợi có mức
ưu tiên cao sẽ được xử lý để truyền đi trước. Với mỗi một hàng đợi ưu tiên, thì các gói được
lập lịch theo thứ tự FIFO
PQ được cấu hình dựa vào các số liệu thống kê về tình hình hoạt động của mạng và khơng
tự động thích nghi khi điều kiện của mạng thay đổi

Hình 3 : Hàng đợi PQ
Lợi ích và hạn chế của PQ
PQ có những lợi ích sau:
Đối với các bộ định tuyến dựa trên phần mềm thì PQ cũng tạo ra tải tính tốn thấp khi so
với các ngun tắc xếp hàng phức tạp khác. PQ cho phép tổ chức các gói được với mức độ ưu

5


Tiểu luận môn học mạng băng rộng


tiên khác nhau và phục vụ những lớp lưu lượng có độ ưu tiên cao hơn. Ví dụ bạn có thể thiết
lập mức ưu tiên cao hơn cho lưu lượng các ứng dụng thời gian thực như thoại và video.
PQ có những hạn chế như sau:
- Nếu lưu lượng có độ ưu tiên cao khơng được xử lí hay điều chỉnh ở biên của mạng thì
các lưu lựong có độ ưu tiên thấp hơn có thể bị trễ quá mức trong khi chờ lưu lượng cao hơn
được phục vụ.
- Nếu lưu lượng ưu tiên cao hơn là quá nhiều thì các lưu lượng ưu tiên thấp hơn có thể bị
mất và khơng bao giờ được phục vụ vì khơng gian bộ đệm cấp phát tới các hàng đợi ưu tiên
thấp bị tràn. Nếu điều này xảy ra nó có thể gây ra rớt gói, latency tăng và truyền lại và cuối
cùng dẫn đến hoàn toàn thiếu tài nguyên mạng cho các lưu lựong thấp hơn. PQ nghiêm ngặt có
thể thể tạo nên mơi trường mạng mà tồn bộ mạng chỉ để xử lí dịch vụ có độ ưu tiên cao nhất.
- Nếu một luồng ưu tiên cao được xử lí khơng đúng có thể tăng lên đáng kể trễ và jitter
cho các luồng ưu tiên cao khác trong cùng hàng đợi
- PQ không thể là một giải pháp khắc phục hạn chế của FIFO tại những nơi mà luồng
UDP được thiên vị hơn luồng TCP trong thời điểm nghẽn. Nếu cố gắng dùng PQ để đặt luồng
TCP vào hàng đợi ưu tiên cao hơn luồng UDP, việc quản lí cửa số TCP và cơ chế điều khiển
luồng của TCP sẽ dùng hết băng thông mạng và dẫn đến khơng cịn tài ngun mạng dành cho
các luồng UDP ưu tiên thấp hơn.
Thực thiện và ứng dụng PQ
Một cách điển hình, PQ có thể được họat động trong một trong hai chế độ
- Hàng đợi ưu tiên chặt chẽ
- Hàng đợi ưu tiên điều khiển tốc độ
Hàng đợi ưu tiên nghiêm ngặt (strict PQ) đảm bảo rằng các gói tin trong hàng đợi ưu tiên
cao ln được lập lịch trước các gói tin trong hàng đợi ưu tiên thấp hơn. Tất nhiên thách thức
của viêc này là lưu lượng ưu tiên cao vượt quá có thể gây thiếu băng thông cho lưu lựong thấp
hơn. Dù vậy trong nhiều trừong hợp thì ngừoi ta thực sự cần như thế. Ví dụ luật pháp nhà nước
yêu cầu rằng, để mang lưu lượng VoIP, một nhà cung cấp dịch vụ phải chấp nhận không làm
rớt lưu lượng VoIP để đảm bảo thống nhất chất lượng dịch vụ mà không quan tâm đên việc
nghẽn mạng khác.

PQ điều khiển tốc độ cho phép các gói trong hàng đợi ưu tiên cao được lập lịch trước khi
các gói trong hàng đợi ưu tiên thấp hơn chỉ nếu lưu lượng trong hàng đợi ưu tiên cao phải ở
dưới một ngưỡng nào đó được thiết lập. Ví dụ giả thiết rằng hàng đợi ưu tiên cao được giới hạn
trong 20% băng thông. Miễn là hàng đợi ưu tiên cao dưới 20% băng thông, các gói từ hàng đợi
này được lập lịch trước các gói trên hàng đợi ưu tiên thấp hơn. Dù vậy, nếu hàng đợi ưu tiên
cao tiêu thụ nhiều hơn 20%, các gói từ hàng đợi thấp hơn có thể được lập lịch trước. Khi điều
này xảy ra thì khơng có tiêu chuẩn nên thực tế mỗi nhà sản xuất thiết bị tự xác định các thức
lập lịch của mình như thế nào để các gói ưu tiên thấp hơn được lập lịch trước.
Có hai ứng dụng chính cho PQ ở biên của và trong mạng lõi:
- PQ có thể tăng cường sự ổn định mạng trong các chu kì nghẽn bằng cách cho phép bạn
6


Tiểu luận môn học mạng băng rộng

gán các giao thức định tuyến và các lưu lựong điều khiển mạng đến hàng đợi ưu tiên cao.
- PQ hỗ trợ các lớp dịch vụ trễ thấp ít tổn hao, jitter thấp, thoughtput cao là các ứng dụng
thời gian thực như thoại và video hoặc hỗ trợ các ứng dụng mô phỏng mạch TDM hay lưu
lựong SNA.
Dù vậy để hỗ trợ các dịch vụ loại này cần phải chuẩn hóa hiệu quả lưu lượng ở biên mạng
để ngăn chặn hàng đợi ưu tiên cao vượt quá khả năng được xử lí. Nếu bỏ qua phần này trong
q trình thiết kế, sẽ khơng thể hỗ trợ được những dịch vụ như thế này. Đối với một số dịch vụ
đơn giản có thể định nghĩa được tốt như VoIP dịch vụ mà biết được kích cỡ gói, dung lượng
lưu lượng, cư xử của lưu lượng thì có thể dễ dàng thực hiện provisioning tài ngun hơn là các
dịch vụ như video có quá nhiều tham số. Nó sẽ xuất hiện những tham số khơng biết và cực kì
khó khăn để đánh giá được ngưỡng, tối đa chiều dài hàng đợi và băng thông giới hạn cho hàng
đợi ưu tiên cao.
3.2.3

Lập lịch công bằng (FQ)


Lập lịch FQ được đề xuất bởi John Nagle năm 1987. FQ là nền tảng của lớp mà hàng đợi
được lập lịch mà nó được thiết kế nhằm đảm bảo cho các lưu lượng truy nhập công bằng vào
tài nguyên mạng và ngăn chặn một lưu lượng nào đó chiếm giữ băng thơng. Trong FQ các gói
dữ liệu được phân loại bởi hệ thống và chờ trong hàng đợi dành riêng cho lưu lượng đó. Hàng
đợi sau đó sẽ phục vụ một gói dữ liệu trong khoảng thời gian . Nếu hàng đợi nào mà trống thì
hệ thống bỏ qua, lập lịch FQ cũng được xem như là kiểu xếp hàng (xem hình dưới đây)

Hình 4 . Hàng đợi ngang hàng
Ưu điểm và hạn chế của FQ
Những ưu điểm chính của FQ đó là ngăn chặn sự chiếm dụng băng thơng của các lưu lượng
dữ liệu và làm ảnh hưởng tới luồng dữ liệu khác do được nằm trong các hàng đợi riêng của nó.
7


Tiểu luận môn học mạng băng rộng

Nếu lưu lượng nào cố chiếm dụng băng thông quá thời gian cho phép thì nó sẽ bị chặn lại. Vì
vậy khơng làm ảnh hưởng đến các lưu lượng khác chia sẻ băng thông đầu ra.
FQ cũng có một số hạn chế:
- Nhà cung cấp thực hiện lập lịch FQ bằng phần mềm không phải là phần cứng, điều này
giới hạn ứng dụng của FQ trong các mạng tốc độ thấp.
- Mục đích của FQ là cấp phát cùng một lượng băng thông tới mỗi luồng trong một
khoảng thời gian. FQ không được thiết kế để hỗ trợ số luồng với yêu cầu băng thông khác
nhau.
- FQ cung cấp số lượng băng thông bằng nhau cho tất cả các luồng chỉ nếu tất cả các gói
trong tất cả hàng đợi có cùng kích cỡ. Các luồng chứa phần lớn các gói tin lớn sẽ nhận một
phần băng thông chia sẻ lớn hơn.
- FQ nhạy cảm với thứ tự gói đến. Nếu một gói đến một hàng đợi rỗng ngay sau khi hàng
đợi này được qt qua bởi bộ lập lịch round-robin thì gói này phải chờ trong hàng đợi cho đến

tận khi phải chờ trong hàng đợi đến khi tất cả các hàng đợi khác được phục vụ trước khi nó có
thể truyền.
- FQ khơng cung cấp cơ chế mà các lưu lượng có thể được phục vụ thời gian thực như
VoIP.
- Giả định với FQ bạn có thể dễ dàng phân loại lưu lượng truy nhập và đường truyền.
Trong mạng IP điều này khơng dễ dàng. Bạn có thể phân loại luồng trên địa chỉ của gói nhưng
mỗi trạm khác nhau đưa ra cùng nguồn tài nguyên của mạng như các máy chủ hoặc máy tính
lớn. nếu bạn vẫn cố gắng phân loại lưồng dữ liệu dựa vào kết nối TCP, sau đó bạn truy cập vào
các gói tin và bạn sẽ vẫn phải đối phó với mã hóa, phân mảnh và luồng UDP. Cuối cùng bạn có
thể xem xét phân loại dựa vào địa chỉ nguồn đích, điều này nâng cao khả năng cho các máy
chủ có nhiều băng thơng hơn nhưng vẫn cung cấp cơ chế chia sẻ ngang hàng tài nguyên cho
nhiều trạm.
- Tùy thuộc vào cơ chế cụ thể mà bạn sử dụng phân loại gói dữ liệu có các luồng dữ liệu,
lập lịch FQ thường không thể trên bộ định tuyến lõi bởi vì định tuyến lõi được yêu cầu hỗ trợ
hàng ngàn hoặc hàng chục ngàn các hàng đợi riêng biệt trên mỗi cổng.
- Tùy thuộc vào các cơ chế cụ thể , bạn sử dụng để phân loại các gói dữ liệu vào luồng,
FQ thường khơng có thể được cấu hình trên bộ định tuyến lõi , bởi vì một bộ định tuyến lõi sẽ
được yêu cầu để hỗ trợ hàng ngàn hoặc hàng chục ngàn của hàng đợi riêng biệt trên mỗi cổng .
điều này làm gia tăng độ phức tạp và chi phí quản lý, bất cập khi sử dụng FQ mở rộng cho các
mạng lớn.
Thực hiện lập lịch FQ và ứng dụng
FQ áp dụng điển hình cho phần biên của mạng, ở đó nơi mà các thuê bao kết nối với nhà
cung cấp. Các nhà cung cấp thực hiện FQ phân loại các gói trong 256, 512 hoặc 1024 hàng đợi
sử dụng hàm tính tốn trên địa chỉ nguồn/đích, số cổng nguồn/đích UDP/TCP, và byte IP ToS.
FQ yêu cầu cấu hình tối thiểu và tự tối ưu hóa của n hàng đợi được phân bổ 1/n của băng thông
đầu ra. Số hàng đợi thay đổi nên số băng thông cung cấp cho các hàng đợi cũng thay đổi. Ví
8


Tiểu luận môn học mạng băng rộng


dụ nếu số hàng đợi tăng từ n lên (n+1) , sau đó số lượng băng thông phân bổ cho các hàng đợi
là đầu ra 1/n nay cịn 1/(n+1) của băng thơng đầu ra.
FQ cung cấp sự cách ly tuyệt đối giữa các luồng dữ liệu. các thuê bao bị giới hạn. Các
luồng dữ liệu được đưa và các hàng đợi riêng, nên giảm ảnh hưởng với nhau. Trong phân lớp
của FQ, đầu ra cổng được chia làm các lớp phục vụ khác nhau. Mỗi lớp phục vụ được phân
chia theo tỉ lệ số người sử dụng của băng thơng đầu ra. Sau đó trong khối băng thông được
phân chia lại phân cho các lớp dịch vụ, FQ áp dụng được áp dụng và kết quả là tất cả các luồng
dữ liệu cùng lớp dịch vụ thì được cung cấp chung khi chia sẻ băng thơng cho các lớp phục vụ
như hình dưới đây.

Hình 5. Hàng đợi phân chia theo lớp.
Hình này cho thấy 2 lớp phục vụ được cấu hình là VoIP và được phân 20% băng thông
kênh cổng đầu ra. Và các IP khác được phân 80%. Trong lớp dịch vụ, trong mơ hình phân lớp
FQ, luồng VoIP được chia một lượng là 20 % băng thông, các luồng IP khác là 80% qua đó
luồng VoIP khơng làm ảnh hưởng đến các luồng IP khác và ngược lại.
3.2.4

Hàng đợi cơng bằng có trọng số (WFQ)

WFQ phát triển năm 1989 bởi Lixia Zhang , Alan Demers, Srinvasan và Scott Shenke.
WFQ cơ bản là hàng đợi lập lịch theo lớp được thiết kế để giải quyết các hạn chế về giới hạn
địa chỉ của mơ hình FQ.
- WFQ hỗ trợ dịng dữ liệu với những yêu cầu băng thông khác nhau bởi hàng đợi phân
chia theo trọng số, nó được gán tỉ lệ băng thông khác nhau của cổng đầu ra.
- WFQ cũng hỗ trợ gói dữ liệu có độ dài thay đổi nên với các gói dữ liệu lớn được phân
bổ băng thơng lớn hơn các gói nhỏ hơn, nó cũng hỗ trợ phân chia cơng bằng băng thơng khi mà
gói tin có độ dài đáng kể và tính tốn lập lịch hàng đợi phức tạp. Điều này chính là lý do mà
9



Tiểu luận môn học mạng băng rộng

cách lập lịch hàng đợi này dễ dàng thực hiện với gói có độ dài cố định, mạng cell ATM hơn độ
dài thay đổi, gói tin trong mạng IP.
Năm 1992 A.K.J.Parekh chứng minh WFQ cung cấp mạnh mẽ khả năng ràng buộc, thời
gian trễ, hiêụ suất được đảm bảo.
Thuật toán WFQ
WFQ hỗ trợ phân phối băng thơng ngang bằng với độ dài gói thay đổi bởi bộ xử lý nội suy
xấp xỉ (GPS).
Trong hàng đợi WFQ, cũng giống như FQ, các luồng lưu lượng vào được nhóm vào m hàng
đợi; Tuy nhiên, băng thơng của cổng ra bị phân phối tới m hàng đợi tùy thuộc vào trọng số
thích hợp được xác định bởi u cầu băng thơng của m lớp thay vì chia đều, và trọng số có thể
lên tới 100%:

trong đó m là số lớp lưu lượng trong hàng đợi WFQ và Wi là phần trăm trọng số của lớp i.
Trong phương pháp hàng đợi FQ, mỗi hàng đợi gửi đi trọn vẹn một gói tin khi bộ lập lịch
ghé thăm. Trong phương pháp hàng đợi WFQ, bộ lập lịch gửi đi các gói từ các hàng đợi dựa
trên cơ sở thứ tự đã được tính tốn thời gian hồn tất gói.
Hàng đợi WFQ cố gắng làm gần đúng một mơ hình lý thuyết biết đến như bộ lập lịch vòng
quay robin trọng số theo bit (weighted bit-by-bit).
Hình dưới trình bày lập lich vịng quay robin trọng số theo bít nó gồm 3 hàng đợi: hàng đợi
1 có tỉ lệ là 50% băng thông đầu ra, hàng đợi 2 và 3 mỗi hàng đợi là 25% băng thông. Bộ lập
lịch truyền 2 bít từ hàng đợi 1, 1 bít từ hàng đợi 2 và 1 bít từ hàng đợi 3 sau đó lại quay lại
hàng đợi 1. Kết quả là trong số lập lich được thiết lập. bít cuối cùng của gói dữ liệu 600 byte
được truyền đi trước, sau đó đến bít cuối của gói 350 byte và bít cuối của gói 450 byte được
truyền đi cuối cùng. Điều này làm cho gói 600 byte được truyền song trước sau đó đến gói 350
byte và cuối cùng là gói 450 byte.

10



Tiểu luận mơn học mạng băng rộng

Hình 6 : Lập lịch theo Vịng quay robin theo từng bít với các bít được ghép lại
WFQ cũng lập lịch theo thời gian tính tốn thời gian truyền xong 1 gói tin. Với tốc độ đầu
ra, số hàng đợi, trọng lượng tương đối được gán cho mỗi hàng đợi, chiều dài các gói tin trong
hàng đợi, nó sẽ lập lịch theo sự tính tốn thời gian hồn thành mỗi gói tin. Khi đó bộ lập lịch sẽ
lựa chọn chuyển gói tin có thời gian hồn tất nhỏ nhất trong tất cả các gói tin trong hàng đợi,
Phải hiểu rằng thời gian kết thúc không phải là thời gian kết thúc truyền dẫn. Thay vào đó thời
gian kết thúc được gán cho mỗi gói tin đại diện cho thứ tự nó được truyền ra đầu ra như hình
dưới đây

Hình 7 . Hàng đợi ngang bằng theo trọng số phục vụ tùy theo thời gian hồn tất gói tin
Ưu điểm và hạn chế của WFQ
Hàng đợi ngang hàng theo trọng số có những ưu điểm chính sau:
11


Tiểu luận môn học mạng băng rộng

- WFQ cung cấp có chế bảo vệ cho các lớp dịch vụ bởi đảm bảo mức tối thiểu của cổng
đầu ra của băng thông cho các lớp dịch vụ.
- WFQ đảm bảo sự công bằng chia sẻ băng thông đầu ra theo trọng lượng của các lớp
dịch vụ với thời gian trễ ít.
Tuy nhiên WFQ cũng có một số giới hạn:
- WFQ được nhà cung cấp thực hiện bằng phần mềm, không phải phần cứng nên giới
hạn ứng dụng trong mạng tốc độ thấp.
- Trong cùng lớp dịch vụ các luồng dữ liệu có thể ảnh hưởng tới nhau.
- WFQ thực hiện thuật tốn phức tạp địi hỏi duy trì sự tính tốn và lặp lại các vồng quét

cho mỗi gói tới hàng đợi nên có độ sai lệch.
- Tính tốn phức tạp của WFQ ảnh hưởng đến khi mở rộng hỗ trợ cho số lượng các lớp
dịch vụ lớn với tốc độ cao.
- Cuối cùng mặc dù độ trễ của WFQ có nhỏ hơn các phương pháp lập lịch khác nhưng
vẫn còn rất lớn.
3.2.5
Weighted Round Robin (WRR) hay Class-based Queuing (CBQ)
WRR là nền tảng của lớp lập lịch hàng đợi đựoc thiết kế để khắc phục hạn chế của FQ và
PQ. WRR khắc phục hạn chế của mơ hình FQ bằng cách hỗ trợ luồng khác nhau về yêu cầu
băng thông. Với WRR, mỗi hàng đợi có thể được gán một phần trăm khác nhau của tổng băng
thông. WRR khắc phục hạn chế của strict PQ bằng cách đảm bảo hàng đợi ưu tiên thấp hơn bị
từ chối truy cập vào không gian bộ đệm và băng thông. Với WRR, tối thiểu một gói được loại
bỏ từ mỗi hàng đợi trong lúc mỗi dịch vụ quay.
Giải thuật WRR
Trong WRR, các gói đầu tiên được phân chia vào các lớp dịch vụ káhc nhau (ví dụ thời
gian thực và truyền file) sau đó được gán tới một hàng đợi chuyên dụng cho lớp dịch vụ. Mỗi
một trong số các hàng đợi được phục vụ theo thứ tự round-robin. Tương tự với PQ và FQ, hàng
đợi rỗng được bỏ qua. Hàng đợi WRR cũng được gọi là class-based queuing (CBQ).WRR hỗ
trợ cấp phát các băng thông khác nhau đến các lớp dịch vụ khác nhau bởi cho phép hàng đợi
băng thông cao hơn được gửi nhiều hơn 1 gói mỗi lần hoặc cho phép mỗi hàng đợi gửi chỉ một
gói mỗi lần nhưng hàng đợi băng thông cao hơn sẽ được ghé đến nhiều lần trong 1 vịng.
Trong hình dưới hàng đợi lưu lựong thời gian thực được cấp phát 25% băng thông trong
khi hàng đợi lưu lượng tương tác được cấp phát 25% và hàng đợi truyền file được cấp phát
50%. WRR hỗ trợ việc cấp phát băng thông trọng số này bằng cách ghé đến hàng đợi truyền
file 2 lần.

12


Tiểu luận mơn học mạng băng rộng


Hình 8: WRR
Để điều chỉnh tài nguyên mạng cấp phát tới mỗi lớp dịch vụ, một số tham số có thể được
điều chỉnh để điều khiển mỗi hàng đợi:
Số lượng trễ của mỗi gói trong một hàng đợi đã cho được xác định bởi kết hợp tốc độ của
mà gói được đặt vào hàng đợi, chiều sâu của hàng đợi, độ lớn của lưu lượng sẽ được bỏ đi khỏi
hàng đợi mỗi vòng quay dịch vụ và số lượng lớp dịch vụ được thiết lập
Jitter của mỗi gói trong hàng đợi đã cho được xác định bởi sự biên thiên của trễ trong hàng
đợi, biến thế của trễ trong tất cả các hàng đợi khác và biến thiên của khoảng thời gian giữa các
vòng dịch vụ
Độ mất gói được xác định băng cách kết hợp của tốc độ mà gói được đặt vào trong hàng
đợi, độ sâu hàng đợi, sự cạnh trạnh của profile RED, và số lượng lưu lượng được bỏ tại mỗi
hàng sau mỗi vịng dịch vụ
Lợi ích và hạn chế của hàng đợi WRR
Hàng đợi WRR có thể được thực hiện bằng phần cứng nên có thể áp dụng với các diện ở
trong mạng lõi và biên. WRR cung cấp điều khiển lỏng thông qua phần trăm của băng thông
được cấp phát tới mỗi lớp dịch vụ. WRR đảm bảo tất cả lớp dịch vụ truy cập tới tối thiểu băng
thông đã được cấu hình để tránh thiếu băng thơng. WRR cung cấp một cơ chế hiệu quả để hỗ
trợ cấp phát các lớp dịch vụ khác nhau tới các số hợp lí các luồng lưu lượng tổng hợp cao. Việc
phân lớp lưu lượng bởi lớp dịch vụ cung cấp việc quản lí cơng bằng hơn, bền vững hơn cho các
ứng dụng mạng hơn việc sử dụng ưu tiên. Ví dụ. Nếu bạn gán lưu lượng thơi gian thực ưu tiên
hơn nhiều truyền file, sau đó lưu lựong bùng nổ thời gian thực sẽ bỏ qua băng thông của lưu
lượng truyền file.
Giới hạn chính của WRR là nó cung cấp chính xác phần bằng thông tới mỗi dịch vụ chỉ nếu
tất các gói trong hàng đợi có cùng kích cỡ hoặc khi kích cỡ gói trung bình được biết trước. Ví
dụ giả thiết rằng bạn dùng WRR để phục vụ 4 hàng đợi, mà nó được gán % như sau: hàng 1
40%, hàng hai 30%, hàng 3 20% và hàng 4 là 10%. Giả thiết tất cả các gói là 100byte

13



Tiểu luận mơn học mạng băng rộng

Hình 9 WRR

Hình 9: WRR với độ dài biến đổi
Hình 10: WRR có chiều dài gói khơng bằng nhau
Vào cuối của mỗi vịng dịch vụ, hàng 1 phát 4 gói (400bytes), hàng 2 phát 3 gói (300bytes)
hàng 3 phát 2 gói (200 bytes). Vì vậy tổng số có 1000 bytes. Vì vậy hàng 1, 2,3,4 lần lượt
chiếm 40, 30, 20 và 10 phần trăm băng thơng. WRR cung cấp phân phối băng thơng hồn
chỉnh. Các cư xử này giống như bạn thấy trong mạng độ dài cố định như ATM.
Dù vậy nếu một lớp dịch vụ chứa kích cỡ gói trung bình nhiều hơn lớp dịch vụ khác, lớp dịch
vụ với kích cỡ gói trung bình lớn hơn chiếm nhiều băng thơng hơn. Ví dụ như hàng đợi 1 chứa
kích cỡ 100byte, hàng đợi các gói là 200 bytes, hàng 3 các gói là 300byte và hàng 4 các gói là
400byte. Như vậy sau mỗi vịng dịch vụ hàng 1 phát 4 gói là 400bytes, hàng 2 phát 3 gói là 600
bytes hàng 3 phát 2 gói là 600bytes, và hàng 4 1 gói là 400bytes. Vì vậy hàng một chiềm 20%
băng thơng, hàng hai chiếm 30% băng thông, hàng chiếm 30% băng thông hàng 4 chiếm 20%
băng thơng. Với các gói có chiều dài biến đổi, WRR không hỗ trợ được thiết lập băng thông
cho mỗi hàng đợi
14


Tiểu luận môn học mạng băng rộng

Ưng dụng
WRR khắc phục được giứoi hạn của FQ bởi lập lịch lớp dịch vụ có u cầu băng thơng khác
nhau, WRR cũng khắc phục hạn chế của Strict PQ bằng cách đảm bảo hàng đợi ưu tiên thấp
hơn khơng bị đói băng thơng. Dù vậy WRR khơng hỗ trợ khi mà gói tin có chiều chiều dài thay
đổi là một hạn chế lớn cần khắc phục
3.2.6

DWRR (Deficit Weight Round Robin).
Hàng đợi DWRR được đưa ra bởi M.Shreedhar và G.Varghese vào năm 1995. DWRR là nền
tảng của một lớp nguyên tắc hàng lập lịch hàng đợi được thiết kế ra để giải quyết những hạn
chế của mơ hình WRR và WFQ.
- DWRR giải quyết những hạn chế của WRR bằng cách hỗ trợ chính xác phân bố trọng
lượng cân bằng hơn của băng thông khi phục vụ hàng đợi có chứa những gói có độ dài thay
đổi.
- DWRR giải quyết những hạn chế của mơ hình WFQ bằng cách định nghĩa một ngun
tắc lập lịch có ít những tính tốn phức tạp hơn và có thể cứng hóa. Điều đó cho phép DWRR
cung cấp những phán quyết cho băng thông ở đầu ra của những giao diện tốc độ cao của thiết
bị cả ở lõi hay ở viền mạng.
Trong hàng đợi DWRR, mỗi hàng đợi được cấu hình với một số thơng số sau:
- Trọng lượng (weight): định nghĩa phần trăm của băng thông đầu ra được chỉ định cho
hàng đợi.
- Bộ đếm DeficitCouter: Mỗi hàng đợi có một bộ đếm là DeficitCounter, nó chỉ ra tổng
số byte mà hàng đợi cho phép có thể được phát đi mỗi lần phục vụ hàng đợi đó để đến bộ lập
lịch trình. Bộ đếm này cho phép một hàng đợi có thể lưu giữ những gói có kích thước lớn hơn
giá trị của bộ đếm nên không được phép phát đi ở lần trước mà được phát đi ở lần phục vụ sau.
- Định lượng (Quantum): Định lượng của một dịch vụ tỷ lệ với trọng lượng của hàng đợi,
và được thể hiện bằng số byte. Bộ đếm DeficitCounter của hàng đợi được gia tăng lên bởi giá
trị định lượng sau mỗi lần hàng đợi được bộ lập lịch phục vụ. Nếu định lượng i bằng 2 lần định
lượng j thì hàng đợi i sẽ được nhận 2 lần băng thông so với hàng đợi j khi cả 2 hàng đợi này
cùng hoạt động.
Thuật toán DWRR
- Trong DWRR truyền thống, bộ lập lịch sẽ phục vụ những hàng đợi không rỗng và chỉ
ra số lượng byte của mỗi gói đầu của mỗi hàng đợi. Giá trị của bộ đếm sẽ gia tăng thêm bởi
định lượng. Nếu kích thước của gói đầu tiên của hàng đợi làm lớn hơn giá trị của bộ đếm, thì
bộ lập lịch sẽ chuyển sang viếng thăm hàng đợi tiếp theo có kích thước của gói khơng lớn hơn
giá trị của bộ đếm của nó và phục vụ, sau đó giá trị của bộ đếm của hàng đợi này giảm đi do
gói đi ra đầu ra do bộ lập lịch làm việc xuất ra đầu ra. Bộ lập lịch lại tiếp tục xuất ra gói và làm

giảm giá trị của bộ đếm khi kích thước gói vẫn làm lớn hơn giá trị bộ đếm, thậm chí cho đến
15


Tiểu luận môn học mạng băng rộng

khi khi ns rỗng, giá trị của bộ đếm trở về 0. Khi điều này xảy ra thì bộ lập lịch lại chuyển đến
hàng đợi kế tiếp khơng rỗng. Hình vẽ dưới về hàng đợi DWRR.

Hình 11
Mã giả DWRR.
Mã giả được giới thiệu trong phần này không mô tả hoạt động của một nhà cung cấp cụ thể
nào. Nhưng mỗi nhà cung cấp sẽ thực hiện khác với nhà cung cấp khác, nên có thể khác với
mơ hình mơ tả dưới đây. Xem ví dụ và theo dõi mã giả sẽ làm ta dễ hiểu hơn trong những
quyết định thiết kế cụ thể mà nhà cung cấp router yêu cầu trong thực hiện của họ.
Mảng bộ đếm được khởi đầu bằng 0. Trong ví dụ này, số hàng đợi được đánh số từ 1 đến n.
FOR i = 1 to n

/* duyệt từng hàng đợi một */

DeficitCounter [i] = 0/* khởi tạo giá trị ban đầu bằng 0*/
ENDIF
Hàm Enqueue(i) đặt gói mới đến nhất vào trong hàng đợi và quản lý danh sách hoạt động
ActiveList. ActiveList được duy trì để tránh ghé thăm những hàng đợi rỗng. Danh sách hoạt
động chứa một danh sách các hàng đợi có chứa ít nhất một gói. Bất cứ khi nào một gói được
đưa vào một hàng đợi rỗng, lập tức số thứ tự của hàng đợi đó được thêm vào cuối của danh
sách này bởi một lệnh InsertActiveList(i). Tương tự, bất cứ khi nào hàng đợi trở nên rỗng, số
thứ tự của hàng đợi sẽ bị loại khỏi danh sách bởi lệnh RemoveFromActiveList(i).
Hàm Enqueue(i):
Enqueue(i)

i = the index of the queue that will hold the new packet
IF (ExistsInActiveList(i) = FALSE) THEN /* Nếu i khơng có trong ActiveList */
InsertActiveList(i) /* Thêm I vào cuối ActiveList */
DeficitCounter[i] = 0 /*khởi tạo giá trị ban đầu cho bộ đếm của hàng đợi I bằng 0
DeficitCounter[i] to 0*/
16


Tiểu luận môn học mạng băng rộng

ENDFOR
Enqueue packet to Queue[i] /* Đặt gói vào cuối hàng đợi thứ i */
END Enqueue
Bất cứ khi nào chỉ số đầu tiên của ActiveList là i nào đó, thì hàm Dequeue(i) sẽ lấy từ hàng đợi
đó số lượng byte bằng DeficitCounter[i] + Quantum[i]. Nếu ở phần cuối của vịng dịch vụ đó
Queue[i] vẫn cịn có các gói tin để gửi, thì hàm InsertActiveList(i) di chuyển các chỉ số i xuống
cuối ActiveList. Tuy nhiên, nếu hàng đợi i là trống ở cuối của vòng dịch vụ, thì bộ đếm
DeficitCounter(i) được thiết lập để về 0 và hàm RemoveFromActiveList(i) sẽ loại bỏ các chỉ số
i ra khỏi ActiveList.
Hàm Dequeue:
Dequeue()
While (TRUE) DO
IF (ActiveList is NotEmpty) THEN
i = the index at the head of the ActiveList
DeficitCounter[i] = DeficitCounter[i] + Quantum[i]
WHILE (DeficitCounter[i] > 0 AND NOT Empty(Queue[i])) DO
PacketSize = Size(Head(Queue[i]))
IF (PacketSize <= DeficitCounter[i]) THEN
Transmit packet at head of Queue[i]
DeficitCounter[i] = DeficitCounter[i] - PacketSize

ELSE
Break /*exit this while loop*/
ENDIF
ENDWHILE
IF (Empty(Queue[i])) THEN
DeficitCounter[i] = 0
RemoveFromActiveList(i)
ELSE
InsertActiveList(i)
ENDIF
ENDIF
ENDWHILE
END Dequeue
Sử dụng mã giả để thực hiện các nguyên tắc lập lịch hàng đợi DWRR để triển khai trong một
mạng thì có hạn chế cố hữu như sau:
- Tiếp tục phục vụ nhiều gói tin từ một hàng đợi đó cho đến khi DeficitCounter [i] bé hơn
kích thước của gói tin ở đầu trong hàng đợi [i] nên có thể sinh ra jitter, làm cho khó khăn khi
thực hiện thơng tin thời gian thực.
- Mơ hình khơng hỗ trợ bộ đếm âm (negative DeficitCounter[i]), có nghĩa là nếu
17


Tiểu luận mơn học mạng băng rộng

Queue[i] khơng có đủ điều kiện để truyền tải một gói tin, sau đó là hàng đợi có thể gặp tình
trạng thiếu hụt băng thơng, bởi vì nó khơng được phép truyền tải trong hiện tại gây ra vòng tròn
dịch vụ cho đến khi nó có đủ chỗ.
Ví dụ DWRR
Trong ví dụ này, giả sử rằng lập lịch trình DWRR được kích hoạt trên một cổng đầu ra
cấu hình để hỗ trợ 3 hàng đợi. Hàng đợi 1 được phân bổ 50% băng thông, trong khi hàng đợi

2 và hàng đợi 3 mỗi phân bổ 25% băng thông cổng đầu ra.
- Ban đầu, mảng bộ đếm DeficitCounter được khởi tạo bằng 0. Giả sử rằng con trỏ vòng
(Roun Robin Pointer) trỏ vào hàng đợi 1 mà đang ở phía trên của ActiveList. Trước khi nguyên
tắc lập kế hoạch DWRR bắt đầu phục vụ hàng đợi 1, định lượng Quantum[1] = 1000 được gán
vào bộ đếm DeficitCounter[1], khiến nó có một giá trị của 1000. (Xem Hình 11).

Hình 12 : Ví dụ DWRR- Vịng 1 với Round Robin Pointer = 1
- Bởi vì kích thước gói tin là 600 byte ở phần đầu của hàng đợi 1 nhỏ hơn giá trị của bộ
đếm DeficitCounter[1] = 1000, các gói dữ liệu 600 byte được truyền đi. Điều này làm cho
DeficitCounter [1] được giảm đi 600 byte, kết quả là giá trị mới của bộ đếm là 400. Và do các
gói dữ liệu 300-byte ở phần đầu của hàng đợi 1 là nhỏ hơn so với DeficitCounter [1] = 400, nên
các gói 300 byte cũng được truyền, và kết quả bộ đếm DeficitCounter[1]được giảm đi bởi 300
byte, tạo một giá trị 100 mới. Bây giờ, bởi vì các gói tin ở phần đầu của hàng đợi 1 là 400 byte,
lớn hơn giá trị của bộ đếm DeficitCounter[1] = 100, nên các gói 400 byte khơng thể được
truyền đi. Điều này làm cho con trỏ tròn trỏ đến hàng đợi 2, bây giờ đang ở trên cùng của
ActiveList. (Xem hình dưới).

18


Tiểu luận mơn học mạng băng rộng

Hình 13 : Ví dụ DWRR Round 1 với Round Robin Pointer = 2
- Cũng tương tự, trước khi bắt đầu thực hiện nguyên tắc lập lịch trình DWRR phục vụ
cho hàng đợi 2, định lượng Quantum[2] = 500 được thêm vào cho bộ đếm DeficitCounter[2]
thành một giá trị 500. Vì các gói dữ liệu 400 byte ở phần đầu của hàng đợi 2 kích thước nhỏ
hơn giá trị của DeficitCounter[2] = 500, nên các gói dữ liệu 400 byte được truyền. Điều này
làm cho bộ đếm DeficitCounter[2] được giảm đi 400 byte và cịn lại giá trị mới là 100. Bởi vì
các gói tin 300 byte ở phần đầu của hàng đợi 2 lớn hơn giá trị của DeficitCounter[2] = 100, nên
các gói 300 byte không được truyền. Điều này làm cho con trỏ tròn chỉ sang hàng đợi 3 giờ

đang ở trên cùng của ActiveList. (Xem hình dưới).

19


Tiểu luận mơn học mạng băng rộng

Hình 14: Ví dụ DWRR - Round 1 with Round Robin Pointer = 3
- Trước khi thực hiện nguyên tắc lập lịch DWRR bắt đầu phục vụ cho hàng đợi 3, định
lượng Quantum[3] = 500 được thêm vào bộ đếm DeficitCounter[3], cho nó một giá trị 500. Vì
khi đó gói dữ liệu 600 byte đang ở phần đầu của hàng đợi 2 kích thước lớn hơn giá trị của bộ
đếm DeficitCounter[3] = 500, nên các gói 600 byte khơng thể được truyền đi. Điều này làm
cho con trỏ tròn lại trỏ đến 1 hàng đợi, đó hiện tại lại trở về trên cùng của danh sách ActiveList.
(Xem Hình 14).

Hình 15DWRR vịng 2 với Round robin pointer =1
20



×