2.2 Cỏc cơ chế xếp lịch cho gúi tin
2.2.3 Xếp hàng cụng bằng (FQ) và Xếp hàng cụng bằng cú trọng số (WFQ)
dựa trờn tớnh toỏn số thứ tự.
WFQ là một nguyờn lý xấp xỉ GPS, vỡ nú cố gắng mụ phỏng kiểu xếp lịch GPS mà khụng phải dựng cỏc giả thiết về kớch thƣớc gúi nhỏ phi thực tế. WFQ dựa trờn tớnh toỏn số thứ tự mụ phỏng một server GPS phục vụ 1 byte trong mỗi lần. WFQ làm việc tốt với cỏc gúi cú kớch thƣớc thay đổi, vỡ nú khụng cần biết trƣớc kớch thƣớc gúi trung bỡnh của một luồng. Xếp hàng cụng bằng (Fair Queuing –FQ) là một kỹ thuật WFQ trong đú xem xột tất cả cỏc luồng nhƣ nhau, cú cựng trọng số.
FQ mụ phỏng GPS bằng cỏch tớnh toỏn số thứ tự cho mỗi gúi đến. Số thứ tự đƣợc gỏn là một thẻ dịch vụ, nú định nghĩa thứ tự tƣơng đối mà cỏc gúi đƣợc phục vụ. Thứ tự phục vụ cuả cỏc gúi sử dụng cỏch tớnh số thứ tự gần giống với thứ tự phục vụ của một lịch trỡnh GPS.
Để hiểu trực quan về cỏch mụ phỏng GPS, hóy xem xột một biến gọi là số vũng, chỉ số vũng phục vụ mà một bộ xếp lịch round-robin từng byte đó hoàn thành trong một thời gian cho trƣớc. Việc tớnh toỏn số thứ tự dựa trờn số vũng.
Để minh họa cỏch mụ phỏng GPS bởi FQ, xem xột 3 luồng A, B, và C, với kớch thƣớc gúi là 128, 64 và 32 byte. Cỏc gúi đến lần lƣợt tới một server FQ bận rộn theo thứ thự A1, A2, A3, B1, C1.
Một luồng đƣợc gọi là tớch cực nếu cú bất cứ một gúi nào của luồng ở trong trạng thỏi chờ phục vụ, và cỏc trƣờng hợp khỏc gọi là khụng tớch cực.
Trong vớ dụ này, giả sử gúi A1 đến trong một luồng khụng tớch cực trong hệ thống FQ. Giả sử đƣợc phục vụ bởi bộ xếp lịch round-robin từng byte, một gúi 128 byte đƣợc gửi đi khi bộ xếp lịch hoàn thành 128 vũng kể từ khi gúi đến. Nếu số thứ tự vũng khi A1 đến là 100 thỡ toàn bộ gúi đƣợc phỏt đi khi số vũng trở thành 100+128=228. Do đú, số thứ tự của một gúi cho một luồng khụng tớch cực đƣợc tớnh bằng cỏch cộng số vũng và kớch thƣớc gúi theo byte. Về bản chất thỡ số thứ tự của một gúi chớnh là số thứ tự vũng mà byte cuối cựng của gúi đú đƣợc gửi đi. Bởi vỡ, trong thực tế, một bộ xếp lịch phỏt 1 gúi chứ khụng phải 1 byte một lỳc, nú phục vụ toàn bộ gúi đến khi nào số vũng trở thành bằng số thứ tự.
Khi gúi A2 đến, luồng đó tớch cực với gúi A1 trong hàng, chờ phục vụ, với một số thứ tự là 228. Số thứ tự của gúi A2 là 228+128=356, vỡ nú cần phải phỏt sau A1. Do đú, số thứ tự của một gúi đến trong một luồng tớch cực là số thứ tự cao nhất của gúi trong hàng đợi, cộng thờm kớch thƣớc gúi tớnh theo byte.
Tƣơng tự, gúi A3 cú số thứ tự 356+128=484. Do gúi B1 và C1 đến trong luồng khụng hoạt động nờn cỏc số thứ tự của chỳng là 164 (100+64) và 132 (100+32).
Số thứ tự (SN) gỏn cho một gúi đƣợc tớnh dựa trờn viờc nú đến trong một luồng tớch cực hay một luồng khụng tớch cực nhƣ sau:
Gúi đến trong luồng khụng hoạt động:
SN = kớch thƣớc gúi tớnh theo byte + số vũng tại thời điểm gúi tới (số vũng là số thứ tự của gúi cuối cựng đƣợc phục vụ.)
Gúi đến trong luồng tớch cực:
SN = kớch thƣớc gúi tớnh theo byte + số thứ tự cao nhất của gúi đó cú trong hàng đợi luồng.
Hỡnh 2-11: một vớ dụ minh hoạ sự mụ phỏng bộ xếp lịch GPS round-robin theo từng byte cho FQ.
100 200 300 400 500 484 356 228 164 132 Sú vũng / số hàng đợi A1 (128) A3 (128) A2 (128) Hàng đợi B B1(64) C1 (32) Hàng đợi A A1 A3 A2 Hàng đợi A 484 356 228 Hàng đợi C Hàng đợi B B1 C1 Hàng đợi C A3 A2 A1 B1 B1 A3 A2 A1 C1 C1 Bộ lập lịch hàng đợi cõn bằng (FQ) Số vũng 100
Hỡnh 2-11 minh hoạ bộ xếp lịch GPS mụ phỏng, với cỏc gúi trong cỏc hàng đợi của chỳng, cựng với cỏc số thứ tự đó đƣợc tớnh toỏn. Một bộ xếp lịch sẽ hoàn thành xếp lịch cho toàn bộ gúi A1 ở vũng thứ 228. Số thứ tự chỉ ra thứ tự tƣơng đối theo đú cỏc gúi đƣợc phục vụ bởi bộ xếp lịch. Bộ xếp lịch phục vụ cỏc gúi theo thứ tự sau: C1, B1, A1, A3.
Hỡnh 2-12 Minh họa cho cỏch làm của bộ xếp lịch FQ; gúi D1 đến sau gúi A1 đƣợc xếp lịch. D1 (32) 260 D1 Hàng đợi D 100 200 300 400 500 484 356 228 Sú vũng / số hàng đợi A3 (128) A2 (128) Hàng đợi B Hàng đợi A A3 A2 D1 ... A3 A2 ... D1 Bộ lập lịch hàng đợi cõn bằng (FQ) Số vũng 100 A3 A2 Hàng đợi A 484 356
Số vũng chỉ đƣợc dựng để tớnh toỏn số thứ tự khi gúi đến thuộc một luồng mới. Nếu khụng, số thứ tự tớnh dựa trờn số thứ tự cao nhất của một gúi trong luồng đú đang chờ phục vụ. Nếu gúi A4 đến trong bất cứ thời điểm nào trƣớc khi A3 đƣợc phục vụ, nú sẽ cú số thứ tự là 484+128 = 612.
Chỳ ý rằng số vũng đƣợc cập nhật mỗi khi một gúi đƣợc xếp lịch phỏt để bằng với số thứ tự của gúi đang đƣợc phỏt. Do đú gúi D1 cú 32 byte, thuộc một luồng mới, đến khi A1 đang đƣợc phỏt, số vũng là 228 và số thứ tự của D1 là 260 (228+32). Vè D1 cú số thứ tự thấp hơn A2 và A3 nờn nú đƣợc xếp lịch phỏt trƣớc A2 và A3. Hỡnh 2-12 chỉ ra sự thay đổi trong thứ tự xếp lịch này.
Thụng thƣờng, một số luồng đƣợc coi là quan trọng hơn cỏc luồng khỏc. Những luồng nhƣ vậy cần ƣu đói hơn cỏc luồng khỏc. Cú thể mở rộng khỏi nhiệm FQ để gỏn trọng số trờn mỗi luồng do đú mỗi luồng đƣợc phục vụ theo tỉ lệ với trọng số. Hệ thống xếp hàng cụng bằng nhƣ vậy đƣợc gọi là WFQ dựa trờn luồng và đƣợc thảo luận trong phần tới [7].