計畫名稱: 支援QoS 路由器的封包排程與服務分流之設計與實作 Design and Implementation of Packet Scheduler and Service Classifier
for QoS Router
計畫編號:NSC88-2219-E-002-008
主持人:孫雅麗 台灣大學資訊管學系 副教授 E-mail: [email protected] Fax:02-3621327
中文摘要:(關鍵詞:傳輸服務品質保 證、排程方法、多媒體服務) 要在網路上提供好的多媒體應用的 服務,我們需要一個能保證傳輸品質的 網路架構;而一個網路的傳輸品質好壞 取決於網路對end-to-end delay 、頻寬以 及 delay jitter 等傳輸效能的保證。 欲支援網路傳輸品質控制服務,其 中最重要的是每個網路節點,如子網路 或IP路由器所使用的排程方法,必須能 保障封包在傳輸路徑上傳輸的品質。在 本計畫,我們設計了一個 frame-based 的 weighted-fair queueing algorithm。跟 以往 WFQ 和 WF2Q 中,利用 virtual finishing time 來作為排程依據的方式 不同,我們是以queueing jitter 作為排程 的 依 據 。 我 們 希 望 能 將 同 一 flow 的 packets 盡量平均的分散在時間軸上,如 此才能讓 worst-case fair index 和網路 封包間的 delay jitter 最小。這對在網路 上傳輸即時的多媒體的資料十分的重 要。我們也證明所提出的方法在達到這 個目的的同時,也能兼顧 bounded-delay 和 fairness 的要求。 為了讓不同的分類及排程方法可以 得到檢驗與比較,我們建置了一個易於 實作且可提供正確效能檢測的路由器雛 形,在這個雛形中,我們主要實作可提 供priority queueing及WFQ兩種排程方 法的封包排程器模組,此外一個以”資料 流”及”網際網路協定標頭欄位的服務類 別”做為分類依據的簡易分類器也包含 在雛形中,最後我們並做了一系列的實 驗用以驗證路由器雛形的效能。
英文摘要:(Keyword: QoS, Scheduling, Frame-based Queueing, Delay Jitter, packet scheduler, packet classifier)
As the Internet continues to grow in terms of the amount of traffic and the number of users, there are currently a lot of interests in providing multimedia communication services. Many of these new applications rely on the ability of the networks to provide QoS guarantees typically in the form of bounded end-to-end delay, bandwidth and delay jitter. In this paper, we propose a new scheduling algorithm called Maximum Jitter First (MJF) algorithm. It is a frame-based weighted-fair queueing algorithm. Different from WFQ and WF2Q, the algorithm uses delay jitter to describe the timestamps of the packets and to assign service order between flows within a frame. Slots assigned to a flow are spaced out within the frame so to minimize the Worse-case Fair Index and to achieve minimal delay jitter for packets of a flow. It as well possesses the bounded-delay and fairness properties. Furthermore, in MJF, the service order is calculated only upon call arrival and departure. It therefore has O(1) computational cost.
In order to allow various classifier and scheduling policies to be examined and evaluated, a QoS router is prototyped. Currently, two scheduling algorithms: priority queueing and WFQ and a simple classifier based on “per-flow queueing” and the “Type of Service” field, have been implemented. We also conducted a number of experiments to evaluate the
performance of the prototype in QoS provisioning.
Par t I: 封包排程
1.研究動機與目的
在網路的流量與使用者日益增多 的今天,許多人開始對如何在網路上提 供如網路電話、視訊會議及 WebTV… 等的多媒體服務產生興趣。這些新形態 的網路服務,都必須要在能確保證網路 服務品質(QoS)的狀況下,才能正常的運 作。而所謂的網路服務品質,包含了 bounded end-to-end delay, bandwidth 及 delay jitter 等。 在設計 QoS network 時,最重要 的關鍵就是在 switches 或 routers 中 使用合適的排程方法。在過去,已經有 許多人提出了各種不同的的排程方法。 根據其結構,我們可以將這些方法分成 timestamp-based 及 frame-based 兩 類。在timestamp-based 的方法中,大家 最關心的就是其系統所需的處理時間, 當有N個 backlogged 的 flows 正等待 被處理的狀況下,此種方法所需的處理 時間為O(logN)。在高速網路的架構下, 當有大量的flows時,處理時間將變成一 個很重要的問題。 Frame-based 的排程方法,主要是 將 時 間 軸 分 成 一 段 一 段 的 frame 來 處 理。在每個frame內,資料封包(packets) 是跟據一個特定的順序來傳送。這種排 程方法最主要的優點就是它的處理時間 只需要O(1)的時間就能完成,且相較於 timestamp-based 的方法來說,在實作上 也比較容易。但卻有較差的 fairness 及 delay bound 的問題。而除了 fairness 和 delay bound 的問題外,worst-case fair index 和 delay jitter 也是個非常重要的考量。尤其對於
多媒體資料的傳送來說,delay jitter往往 成為影響服務品質的重要因數。因此我 們希望能有一個方法,其處理的時間只 有O(1),而且其 worst-case fair index 和 delay jitter 越低越好, 同時 又兼 顧 到 fairness 和 delay bound 的要求。
2.
相關研究
由於我們的目的是要設計一個處 理時間只有O(1)的方法,因此如WFQ、 SCFQ[1]及WF2Q[2]… 等,用 timestamp-based 的方法並不詳加介紹。我們主要 的研究方向是採用 frame-based 方式的 排程。在過去已經有不少人提出了相關 的排程方式,以下我們將介紹幾種較常 見到的方法。(1) HRR (Hierarchical Round Robin) HRR 的 主 要 特 點 是 其 frame table 是階層式的。越高的階層分配到的 頻寬越多。舉例來說,若第一層的 frame table 有10個 slots ,而其中一個 slot 再 分 給 同 樣 擁 有 10 個 slots 的 第 二 層 frame table使用,則第一層的 slots 所分 配的到頻寬就會是第二層 slots 的 10 倍。
(2) WRR(Weighted Round Robin) [3] 在 傳 統 的 Round Robin 的 方 法 中,每個 flow 在每個frame中,只會輪 到一次。而 WRR 的方式則是根據每個 flow 的 weight 來調整其在 frame 中 出現的次數。
(3) DRR(Deficit Round Robin) [4]
在之前提到的 Round Robin 方法 中,都只能在packet size 都一樣的狀況 下才能運作。若packet size 大小不同, 將會導致 fairness 上的問題。DRR 則 解決了這個問題。在這個方法中用到了 配額(Credit)的觀念,在輪到屬於某個
flow 的 slot 時,是給予此flow一個定 量(Quantum)的配額,再去判斷是否送出 packet,而不是直接送出packet。如此一 來就可處理大小不同的 packet ,且又 能達到 fairness 的要求。
(4) QLWFQ (Queue Length Based Weighted Fair Queueing) [5]
相 較 於 之 前 提 到 的 各 種 Round Robin 方法,QLWFQ 則是沒有固定的 frame table。此方法的 frame table 是根 據 packet 到達的先後順序再加上每個 flow 的 weight 來排。Frame table 不是 固定死的,如此一來對於 flow 的處理 就較有彈性。
3. Fr ame-based WFQ 之
架構設計
在 我 們 的 方 法 中 , 我 們 有 一 個 frame table 記錄著所有 flow 的處理順 序,而與舊有的 Round Robin 方法不同 的是,我們並不是一開始就固定整個系 統的處理順序,而是在有新的 flow 加 入,或是舊的 flow 離開時都會根據每 個 flow 的要求來排定整個 frame table 的內容。且在傳送 packets 時,我們採 用 DRR 的做法,給予此 flow 一個定 量(Quantum)的配額,再去判斷是否送出 packet 及要送出多少個 packets,因此 也可以在 packet size 不同的網路架構 上運作。 而由於 frame table 的大小是固定 的,在排完所有的 slots 後,有可能會 有沒辦法剛好滿足每個 flow 的要求的 狀況,因此我們會在每個 frame 結束時 更新每個flow的配額,如此一來就可以 達到 fairness 上的要求。
4.
Fr ame table 中 Slot 的排程方
式之研究與設計
根據之前提到的架構,我們共提出 了三個不同的排程方法。第一種是利用 EDF (Earliest Deadline First)[6]的方式來 作排程,我們根據每個 flow 的 weight 來設定其increment ,進而算出 virtual start time 和 virtual finish time ,再根據 這些數值來排定先後順序。第二種方式 是利用 RM (Rate monotonic) [6]的方式 來作排程,這種方式是依據 increment 的大小再配合 virtual start time 來作排 程,increment 越小的越先處理,因此 weight 較高的 flow 將會優先被考慮。 最後,我們提出了一個叫做Maximum Jitter First (MJF) 的 frame- based weighted -fair 的排程方法。與舊有用 virtual finish time來作為決定先後順序 的方法不同,在這個方法中我們是採用 delay jitter 來作為判斷先後的依據。由 於是採用 frame-based 的方法,因此我 們 方 法 的 主 要 核 心 就 是 如 何 去 安 排 frame table 中的每個 slot。我們主要的 目的是希望能盡量降低 Worst-case Fair Index 和 delay jitter 同時也能兼顧到 delay bound 和 fairness 的問題。 由於這些排程的動作都是在 flow 建立或離開時才做,因此在packet 傳送 時,系統的處理時間仍然是O(1)。 5.
結論
本 論 文 提 出 了 一 個 frame-based 的 queueing algorithm。根據這個方法, 處理每個packet所需的時間是固定的, 不會因為 flow 的個數而增加。而在 frame table 大小固定為 M 時,排定 frame table 的前置處理所需花的時間也 可限制在 O(M2 ) 之內。我們可以處理 各種不同 flow weight 的組合,且在 packet 大小不同的網路架構下也能正 常運作。 在我們的架構中,我們將 delayjitter 作為我們主要的考量,但我們盡量 降 低 delay jitter 的 同 時 , 也 能 保 證 end-to-end delay 和 fairness。此外,根 據這種架構,我們提出了三種不同的排 程方法,這些方法都可適用於即時的多 媒體資料傳輸。
參考文獻
[1] S. Golestani, “A self-clocked fair queueing scheme for broadband applications,” in Proc. IEEE INFOCOM ’94, pp. 636-646, April 1994. Wroclawski, J., “The Use of RSVP with IETF Integrated Services”, RFC 2210, September 1997.
[2] J. C. R. Bennett and H. Zhang, “WF²Q: Worst-case fair weighted fair queueing,” in Proc. IEEE INFOCOM ’96, pp. 120-128.
[3] M. Katevenis, S. Sidiropoulos, and C. Courcoubetis, “Weighted round-robin cell multiplexing in a general-purpose ATM switch chip,” IEEE Journal on Selected Areas in Communications, vol. 9, pp. 1265-79, October 1991
[4] M. SHreedhar and G. Varghese, “Efficient fair queueing using deficit round robin,” int Proc. SIGCOMM’95, pp. 231-242, Sep. 1995. [5] Yoshihiro Ohba, “QLWFQ: A queue length
based weighted fair queueing algorithm in ATM Networks,” in Proc. IEEE INFOCOM ’97, pp 566 -575 vol.2
[6] C. L. Liu and J. W. Layland, "Scheduling algorithm for multiprogramming in a hard real0time environment," Journal of ACM, 20(1): 46-61,January 1973
[7] J. Lehoczky, L. Sha, and Y. Ding, "The rate monotonic scheduling algorithm: : Exact characterization and average case behavior," In Proc. of the Real-Time Systems ymposium. [8] D. Ferrari and D. Verma, “A scheme for
real-time channel establishment in wide-area networks,” IEEE Journal on Selected Areas in Communications, vol. 8, pp. 368-379, April 1990.
[9] J. L. Lexford, A. G. Greenberg, and F. G. Bonomi, “Hardware-efficient fair queueing architectures for high-speed networks,” in Proc. IEEE INFOCOM ’96, pp. 638-646.
[10] S. Golestani, “A framing strategy for congestion management,” IEEE Journal on Selected Areas in Communications, vol. 9, pp. 1064-1077, September 1991.
Par t II: QoS 路由器實作
1. 簡介
為 了 提 供 傳 輸 的 服 務 品 質 (quality of service, QoS),擔任封包遞送的路由器 (router)必須提供封包傳輸控制的機制, 為資料流(flow)保留足夠的資源,並記錄 資料流使用資源的狀況。而要達到上述 目標,必須在路由器加入三個重要元 件 : 一 是 傳 輸 允 諾 控 制 (admission control) , 二 是 封 包 分 類 器 (packet classifier) , 三 是 封 包 排 程 器 (packet scheduler)。 我們的研究目的在於建立一個提供 傳 輸 服 務 控 制 的 路 由 器 的 雛 型 (prototype),主要依照Priority Queueing 及Weighted Fair Queueing(WFQ) 這兩 種排程理論,實作封包排程器這個元 件,並在此路由器雛型上進行一系列實 驗以驗證排程理論的效能。2.
封包排程器2.1 Pr ior ity Queueing
Priority Queuein-based packet scheduling的做法是當封包要自網路卡 送 出 去 之 前 必 須 先 經 過 封 包 分 類 器 (packet classifier)的過濾,讓封包安置到 適當的貯列(queue)之中,而封包排程器 (packet scheduler)在選擇下一個被傳送 的封包時,選擇的順序由優先權(priority) 最高的貯列開始找起,如果具有高優先 權的貯列沒有封包待傳的話,就再探訪 優先權次高的貯列,當找到一個貯列之 中有封包待傳時,就從該貯列挑出最早 進入貯列的個封包,將該封包自網路卡 傳送出去。 我們可以發現這種排程方式可以讓 擁有較高優先傳送權的封包先讓路由器 遞送出去,減少了封包傳輸的延遲並降 低封包因緩衝區(buffer)滿溢(overflow) 被丟棄(drop)的機會,因而可提供不同程
度的服務品質,不過這種排程方法所展 現 出 的 服 務 品 質 差 異 只 能 看 出 “ 質 化 ”(quality) 的 不 同 , 無 法 做 到 “ 量 化”(quantity)的區別。
2.2 WFQ
WFQ (Weighted Fair Queueing) [3] 又稱為PGPS (Packet-version Generalized Processor Sharing),是一種近似於FFQ (Fluid Fair Queueing, 又 稱 為 GPS, Generalized Processor Sharing) [4] 的封 包排程方式。 FFQ 的 設 計 是 讓 不 同 的 資 料 流 (flow) 可以享有不同的服務率 (service rate),假設在FFQ排程器中共有N個貯 列,每個貯列各自對應到不同的服務率 φ1, φ2, φ3,..., φN,則在任何時間τ,每一個 非空 (non-empty)貯列i的服務率都恰好 為
C
B j j i∑
∈ (τ)φ
φ
,其中B(τ)是所有非空 貯列的集合,而C則是輸出端的傳輸速 率 (link speed)。故在FFQ排程下,每個 非空貯列都可以完美的依照其分配到的 服務率而得到應有的封包傳輸服務。不 過事實上FFQ是不可能做到的,主要原 因在於它有兩項假設,一是排程器可以 同時對所有貯列提供傳輸服務,另一則 是資料流量 (traffic) 是可以無限切割 的。 WFQ是最為近似於FFQ的排程方法 之一,其運作原理是當每個封包在進入 封包排程器時,封包同樣會依照標頭所 攜帶的資訊安置到不同的貯列,每個貯 列都會對應到不同的服務率,而當封包 在放進貯列前會先計算出該封包在FFQ 排程中所對應的傳送結束時間,此時間 點 又 稱 為 虛 擬 結 束 時 間 (virtual finish time),當排程器在時間τ要傳送下一個封 包時,會比較各個非空貯列中第一個封 包的虛擬結束時間,取出虛擬結束時間 最早者加以傳送。3. 系統架構
在 系 統 架 構 方 面 , 我 們 選 擇 以 FreeBSD 3.2 Release此作業系統為系統 發展的平台,並將ALTQ 1.2安裝進作業 系統的核心 (kernel) 中,以作為實作封 包分類器及封包排程器的基礎架構。 ALTQ[1] 的 全 名 為 “Alternate Queueing”,是一個實作封包排程的基礎 架 構 (framework) , 它 讓 我 們 可 以 在 UNIX的作業系統環境下把自己的封包 分類器及封包排程器加入作業系統的核 心之中,使得以個人電腦實作出來的路 由器雛型可以提供基本的傳輸服務品 質。 ALTQ的設計原理如圖一所示: 圖一、 ALTQ基本設計原理示意圖 這個架構位於網路卡運作的輸 出 (output) 端 , 其 中 if_snd 是 代 表 貯 列 (queue)的資料結構,enqueue及dequeue 的各代表將封包放進貯列及拿出貯列的 動作,分別由if_output及if_start兩個函數 執行,在不指定特定排程器的情況下, 這 兩 個 函 數 會 呼 叫 IF_ENQUEUE 及 IF_DEQUEUE兩個作業系統核心內既 有的巨集(macro),使用的排程方法是 FIFO (first-in-first-out)。但若路由器的管 理者指定其他的排程方式,則ALTQ會 依據排程方式所對應的封包分類器及封 包排程器,呼叫對應的函數(如圖一中的altq_enqueue 及 altq_dequeue) 來 取 代 IF_ENQUEUE及IF_DEQUEUE。
4. 實驗概述
為驗證排程器的效能,我們設計了 一系列實驗,實驗環境如圖二所示。 圖二、實驗環境示意圖 根據不同的排程方法,我們的實驗 主要分為兩大部份。在priority queueing 方面,我們用IP封包標頭的「服務類別」 (Type of Service) 的欄位做為封包分類 器(packet classifier)區分封包的依據來 搭配封包排程器;而WFQ的封包分類器 則使用per-flow queueing的分類方法,亦 即每個資料流 (flow) 會有自己所屬的 貯列。 從實驗結果可以驗證幾個結論:(a) priority queueing的確可以對不同服務類 別的封包提供不同的傳輸服務品質,不 過很難將傳輸服務品質予以量化。 (b) WFQ的特性是近似於FFQ的排程方式, 因此每一個資料流都可以公平地(fairly) 依照其分配到的服務率得到對應比率的 頻寬,使傳輸服務品質能夠精準的量 化。 (c) WFQ具有work- conserving的特 性,亦即封包排程器內若有任何一個貯 列有封包待傳,則封包排程器必須盡力 將封包傳送出去,因此WFQ在多餘頻寬 未被使用時,可調配給其他有需要的資 料 流 使 用 藉 此 提 高 排 程 器 的 使 用 率 (utilization)。 (d) WFQ具有隔離性(flow isolation),亦即每個資料流的流量變化 不會影響其他資料流應享的頻 。5. 結論
本研究以ALTQ為系統架構,實作 Priority Queueing與WFQ這兩種理論的 排程器,同時我們也設計數個實驗驗證 這兩種排程理論,由實驗結果發現這兩 種排程方法的確可以對不同類別的封包 給予不同的傳送待遇,藉此讓封包得到 不同的傳輸服務品質。 目 前 我 們 正 在 進 行 和 RSVP 的 整 合 。 因 此 如 IETF(Internet Engineering Task Force) 所 定 義 的 整 合 服 務 (Integrated Service),每一個資料流可以 藉 由 RSVP(Resource Reservation Protocol)和路由器溝通 [2],一方面做資 源保留,另一方面進行資料流的建立及 資源保留狀態的維持,以便於路由器的 封包排程達到資源保留的效果,讓每個 資料流得到應享的傳輸服務品質。而另 一 個 IETF 所 定 義 的 差 異 化 服 務 (Differentiated Service)[5],雖然較具擴 充性(scalability),但仍需借助路由器的 封包排程,才有可能精確提供不同等級 的服務水準。6. 參考文獻
[1] Kenjiro Cho, "A Framework for Alternate Queueing: Towards Traffic Management by PC-UNIX-Based Routers", Proceedings of USENIX 1998 Annual Technical Conference, New Orleans LA, June 1998 [2] Wroclawski, J., "The Use of RSVP with IETF
Integrated Services", RFC 2210, Sep. 1997 [3] Parekh, A., Gallager, R., “A generalized
processor sharing approach to flow
control – the single node case”, IEEE/ACM
Transactions on Networking, Vol. 1, No.3, pp.344-357, June 1993
[4] Demers, A., Keshav, S., and Shenker, S., “Analysis and simulation of a fair queueing
algorithm”, Journal of Internetworking
Research and Experience, pp.3-26, Oct. 1990
[5] Blake, S., Black, D., Carlson, M., Davies, E., Wang, Z., Weiss, W., "An Architecture for Differentiated Services", RFC 2475, Dec. 1998 PC-based Router Sender 1 Traffic Collector Hub Receiver Sender 2 100 Mbps 100 Mbps 10 Mbps 10 Mbps 10 Mbps