摘要:區(qū)分服務(wù)Diffserv在QOS網(wǎng)絡(luò)體系結(jié)構(gòu)越來越受到廣泛的應(yīng)用,它具有很強(qiáng)的擴(kuò)展性。本文給出了一種高性能路由器中支持Diffserv的實現(xiàn)方案。重點介紹了數(shù)據(jù)包分類機(jī)構(gòu)和流量控制機(jī)構(gòu)的實現(xiàn)。該實現(xiàn)方案在國家863項目“可擴(kuò)展到T比特的高性能IPv4/v6路由器基礎(chǔ)平臺及實驗系統(tǒng)”上測試已通過,并取得了較好的結(jié)果。
1.引言
隨著IP 網(wǎng)絡(luò)上新業(yè)務(wù)的不斷出現(xiàn),對IP 網(wǎng)絡(luò)的服務(wù)質(zhì)量(Quality of Service ,QoS) 提出了更高的要求。然而,傳統(tǒng)的盡力而為的服務(wù)并不提供關(guān)于數(shù)據(jù)分組何時或是否被傳送 給接收方的服務(wù)保證。1994 年,IETF 成立了Intserv (集成服務(wù)) 工作組,擴(kuò)展Internet 服務(wù)模型,以更好地滿足新出現(xiàn)的各種語音/視頻應(yīng)用程序的需要。Intserv 的目的是以流 為單位提供服務(wù),因此每個網(wǎng)關(guān)內(nèi)保持每個流的狀態(tài),處理每個數(shù)據(jù)包時需要參考數(shù)據(jù)包報 頭的內(nèi)容和流的狀態(tài)。隨著網(wǎng)絡(luò)規(guī)模的不斷擴(kuò)大,引起流的數(shù)量變得龐大、網(wǎng)關(guān)處狀態(tài)查詢 時間增大、性能降低,以及網(wǎng)關(guān)的流狀態(tài)管理變得困難等一系列問題。也就是說,Intserv 對于用戶來說是易懂易使用的服務(wù),但缺點是缺乏擴(kuò)展性。
為了克服這個缺點,1998 年,IETF 成立了Diffserv(區(qū)分服務(wù))工作組。Diffserv 是聯(lián)系Intserv 的保證QoS 要求和目前Internet 所提供的盡力而為服務(wù)的橋梁,通過將通 信分成幾類并為之提供相關(guān)的服務(wù)優(yōu)先級來區(qū)分通信。本文的以下內(nèi)容是這樣組織的:首先 簡要介紹了Diffserv 體系結(jié)構(gòu)的原理,給出了Diffserv 體系結(jié)構(gòu)中路由器的模型;然后討 論了路由器中Diffserv 的實現(xiàn);最后對全文進(jìn)行了總結(jié)。
2.Diffserv 體系結(jié)構(gòu)原理
Diffserv 體系模型的核心思想是:在網(wǎng)絡(luò)邊界將數(shù)據(jù)流按QoS 要求進(jìn)行簡單分類,不 同的類在內(nèi)部節(jié)點的每次轉(zhuǎn)發(fā)中實現(xiàn)不同的轉(zhuǎn)發(fā)特性。Diffserv 體系使得ISP 能夠提供給 每個用戶不同等級和質(zhì)量的服務(wù)。用戶(或網(wǎng)絡(luò)邊界節(jié)點)通過設(shè)置每個數(shù)據(jù)包的DS 字段 (IPv4 首標(biāo)中的服務(wù)類型(ToS)字段或Ipv6 首標(biāo)中的通信類(Traffic Class 字段)的值 要求特定的服務(wù)等級。其中,被設(shè)置的DS 字段被稱為區(qū)分服務(wù)碼點(DSCP)。在每個支持Diffserv 的網(wǎng)絡(luò)節(jié)點中,這個DS 值將數(shù)據(jù)報映射到一類轉(zhuǎn)發(fā)行為PHB(Per-Hop Behavior) 中去,從而在轉(zhuǎn)發(fā)中區(qū)別對待。用戶和ISP 之間有一個協(xié)定,此協(xié)定規(guī)定了該用戶在每個服 務(wù)等級上所能發(fā)送的最大數(shù)據(jù)率。超過此最大速率的數(shù)據(jù)包或被丟棄,或無法享受到它所要 求的服務(wù)。Diffserv 網(wǎng)絡(luò)最大的特征是其可擴(kuò)容性。此體系將許多復(fù)雜的控制移到了網(wǎng)絡(luò) 邊界,使內(nèi)部節(jié)點能對疊加之后的數(shù)據(jù)流進(jìn)行處理,而不必對每個數(shù)據(jù)流分別處理,從而大 大減小了網(wǎng)絡(luò)內(nèi)部應(yīng)該記錄的狀態(tài),簡化了網(wǎng)絡(luò)內(nèi)部節(jié)點的操作。
在Diffserv 體系中定義了三種服務(wù)質(zhì)量,分別為盡力而為服務(wù)(BE)、獎賞服務(wù)(EF) 和保證服務(wù)(AF),其中獎賞服務(wù)是指將網(wǎng)絡(luò)帶寬中的一小部分帶寬分配給獎賞服務(wù)用戶使 用,主要用于實時服務(wù);而保證服務(wù)是提供比盡力而為服務(wù)盡可能好的服務(wù)質(zhì)量,其與盡力 而為服務(wù)的區(qū)別在于當(dāng)網(wǎng)絡(luò)擁塞時先丟棄盡力而為分組。
3. Diffserv 在路由器中的實現(xiàn)
3.1 Diffserv 路由器的模型
路由器由控制平面和數(shù)據(jù)平面組成,如圖一所示。其中數(shù)據(jù)平面包括流量調(diào)節(jié)機(jī)構(gòu)、轉(zhuǎn)發(fā)、流量控制機(jī)構(gòu)、和數(shù)據(jù)包分類機(jī)構(gòu)。
1) 流量調(diào)節(jié)機(jī)構(gòu):設(shè)置在每個路由器的輸入端口。輸入數(shù)據(jù)包按流分類,分別檢查是否滿 足被指定的流的特性。如果滿足,就讓它通過。如果不滿足,就按照流量調(diào)節(jié)的框架處 理。作為處理的例子有丟棄、延遲、標(biāo)志等。
2) 轉(zhuǎn)發(fā):參照每個數(shù)據(jù)包的報頭內(nèi)的發(fā)送目的地和路由器內(nèi)的路由選擇表,選擇網(wǎng)關(guān)的輸 出端口,并向端口傳送。
3) 流量控制機(jī)構(gòu):將從網(wǎng)關(guān)內(nèi)的多個輸入端口向特定的輸出端口傳送的數(shù)據(jù)包按流分類, 使得每個流都滿足被指定的特性,執(zhí)行流量控制(隊列管理裝置和調(diào)度)。
4) 數(shù)據(jù)包分類機(jī)構(gòu):流量調(diào)節(jié)機(jī)構(gòu)和流量控制機(jī)構(gòu)的內(nèi)部設(shè)置有數(shù)據(jù)包分類機(jī)構(gòu),它將抽 出作為流量調(diào)節(jié)和流量控制對象的數(shù)據(jù)包。參照數(shù)據(jù)包的多個報頭,執(zhí)行數(shù)據(jù)包分類的 分類機(jī)構(gòu)稱做MF(Multi Field)分類機(jī)構(gòu);只參照數(shù)據(jù)包的DS 字節(jié)執(zhí)行分類的機(jī)構(gòu)稱 作BA(Behavior. Aggregate)分類機(jī)構(gòu)。
在本路由器上實現(xiàn)對DiffServ 的支持采用一般的實現(xiàn)方法:首先根據(jù)包的DSCP 域確定 包的優(yōu)先級,并打上相應(yīng)的優(yōu)先級標(biāo)簽,8 個優(yōu)先級根據(jù)DiffServ 定義的十多個PHB 劃分; 然后對不同優(yōu)先級的包進(jìn)行流量調(diào)節(jié),最后根據(jù)優(yōu)先級對包進(jìn)行緩存和調(diào)度輸出。
3.2 數(shù)據(jù)包分類機(jī)構(gòu)的實現(xiàn)
本路由器中,數(shù)據(jù)包分類機(jī)構(gòu)由優(yōu)先級查表模塊來實現(xiàn)。Diffserv 優(yōu)先級表的結(jié)構(gòu)如 下表所示:
來源:維庫開發(fā)網(wǎng)