馬素剛
(西安郵電大學(xué) 計算機學(xué)院,陜西 西安 710121)
隨著人們對網(wǎng)絡(luò)應(yīng)用的需求不斷提高,除了傳統(tǒng)的WWW、E-mail、FTP等數(shù)據(jù)應(yīng)用外,Internet還必須能夠承載一些非傳統(tǒng)數(shù)據(jù)業(yè)務(wù),如遠程教學(xué)、可視電話、視頻會議等。不同的應(yīng)用,要求網(wǎng)絡(luò)提供的服務(wù)質(zhì)量 (Quality of Service,QoS)也不同。例如文件傳輸服務(wù)要求網(wǎng)絡(luò)提供準確的傳輸,任何一位數(shù)據(jù)都不允許被錯誤遞交,但是對網(wǎng)絡(luò)延遲并不敏感,而視頻會議有非常嚴格的延遲要求,如果在傳輸過程中出現(xiàn)少量錯誤卻可以接受。因此,針對網(wǎng)絡(luò)傳輸中的不同應(yīng)用,應(yīng)該為它們提供相應(yīng)級別的服務(wù)質(zhì)量保證。
即使在整個多層交換網(wǎng)絡(luò)中都有足夠的帶寬,多種網(wǎng)絡(luò)設(shè)計屬性也可能影響網(wǎng)絡(luò)性能,即存在QoS問題[1]。不同的服務(wù)質(zhì)量通常體現(xiàn)在帶寬、延遲、延遲抖動、丟包率等方面[2]。
網(wǎng)絡(luò)帶寬用于衡量網(wǎng)絡(luò)的吞吐能力,如果網(wǎng)絡(luò)上存在多個數(shù)據(jù)流,它們將互相競爭帶寬。網(wǎng)絡(luò)帶寬取決于物理鏈路的速率,但通過QoS技術(shù)可以提高網(wǎng)絡(luò)帶寬的利用效率。也就是說,QoS并不能增加網(wǎng)絡(luò)的帶寬資源,只是根據(jù)業(yè)務(wù)的需求和網(wǎng)絡(luò)管理配置來管理帶寬。
網(wǎng)絡(luò)延遲用于衡量數(shù)據(jù)包在網(wǎng)絡(luò)中傳輸時間的長短,一些實時應(yīng)用(如視頻會議)比較關(guān)心延遲的大小。
抖動用于衡量網(wǎng)絡(luò)延時的穩(wěn)定性。同一個數(shù)據(jù)流的不同數(shù)據(jù)包,在網(wǎng)絡(luò)中經(jīng)歷的延遲可能不同,從而產(chǎn)生抖動。抖動對實時應(yīng)用的影響較大,會造成失真。
網(wǎng)絡(luò)丟包率用于衡量網(wǎng)絡(luò)的可靠性。網(wǎng)絡(luò)發(fā)生擁塞時,由于緩沖隊列被占滿,必然導(dǎo)致部分數(shù)據(jù)包被丟棄。
傳統(tǒng)的IP網(wǎng)絡(luò)沒有使用QoS機制,提供 “盡力而為”(Best-Effort)服務(wù)。所有的報文都被無區(qū)別地同等對待,每個路由器對所有的報文均采用先進先出 (First In First Out,F(xiàn)IFO)的策略進行處理,盡最大努力將報文送到目的地,但對報文傳送的可靠性、穩(wěn)定性等不提供任何保證。采用QoS技術(shù)能夠緩解延遲、抖動、數(shù)據(jù)包丟失等問題,其實現(xiàn)模型主要有 綜 合 服 務(wù) (Integrated Service,IntServ)和 區(qū) 分 服 務(wù)(Differentiated Service,DiffServ)[3]兩種。
IntServ模型通過信令向網(wǎng)絡(luò)申請?zhí)囟ǖ腝oS服務(wù),網(wǎng)絡(luò)在流量參數(shù)描述的范圍內(nèi),預(yù)留資源以承諾滿足該請求。IntServ模型采用基于流的策略,傳輸路徑上的所有網(wǎng)絡(luò)元素(交換機、路由器等)都要顯式地為流提供預(yù)定的服務(wù)。IntServ模型使用RSVP(Resource reSerVation Protocol,資源預(yù)留協(xié)議)作為網(wǎng)絡(luò)中預(yù)留資源的控制協(xié)議。RSVP是一種信號機制,并不用于傳遞業(yè)務(wù)數(shù)據(jù),可以實現(xiàn)基于每條流的資源預(yù)留。
在通過RSVP建立端到端通信的過程中,每個節(jié)點都要保存每個報文流的狀態(tài)信息,在某一時間會占用非常大的系統(tǒng)資源。盡管RSVP的控制粒度很細,但可擴展性很差,因此IntServ模型并沒有在流量匯集的Internet核心網(wǎng)上得以廣泛實施。
與IntServ模型不同,DiffServ模型不需要信令,根據(jù)每個報文指定的QoS來提供特定的服務(wù)。在應(yīng)用程序發(fā)出報文之前,不需要通知網(wǎng)絡(luò)為其預(yù)留資源,網(wǎng)絡(luò)也不需要為每個流維護狀態(tài)。DiffServ模型是一種基于類的QoS技術(shù),它在網(wǎng)絡(luò)邊界將數(shù)據(jù)流按QoS要求進行簡單分類,并根據(jù)業(yè)務(wù)的不同服務(wù)等級約定,有差別地進行流量控制和轉(zhuǎn)發(fā),以解決擁塞問題。區(qū)分服務(wù)還是基于逐跳行為(Per-Hop Behavior,PHB)的服務(wù)質(zhì)量模型,它不是在轉(zhuǎn)發(fā)路徑上實施統(tǒng)一的資源預(yù)留,而是在每一跳上對不同標記的包實施不同的行為。
DiffServ模型的服務(wù)粒度不再是每個流,從而大大地緩解了可擴展性問題。另外,DiffServ模型可以將其大部分實現(xiàn)復(fù)雜度轉(zhuǎn)移到網(wǎng)絡(luò)的邊緣上,而在網(wǎng)絡(luò)核心只需實現(xiàn)最簡單的服務(wù)保證機制,因而降低了其實現(xiàn)復(fù)雜度。
DiffServ模型由多個組件組成,具有較復(fù)雜的體系結(jié)構(gòu),如圖1所示。在輸入端,需要對入站數(shù)據(jù)包進行分類、流量控制以及標記操作,在輸出端,需要確定標記后的數(shù)據(jù)包加入哪個傳輸隊列,以及如何調(diào)度這些隊列。
圖1 DiffServ模型體系結(jié)構(gòu)Fig.1 Architecture of DiffServ model
1)分類。網(wǎng)絡(luò)設(shè)備可以使用第二層幀中CoS(Class of Service,服務(wù)類別)位,也可以使用第三層數(shù)據(jù)包中的IP優(yōu)先級/DSCP(Differentiated Services Code Point,差異化服務(wù)編碼點)位來進行分類。在第二層,使用802.1Q或ISL(Inter-Switch Link,交換機間鏈路)幀中的 3位(CoS位)來分類,可以表示8個不同的服務(wù)級別,即0~7。在第三層,將IP報頭中的ToS(Type of Service,服務(wù)類型)字段的6個最高有效位作為DSCP字段,可以表示的服務(wù)級別范圍為0~63。CoS與DSCP值之間的映射關(guān)系分別如表1、表2所示。
表1 CoS到DSCP的映射Tab.1 The CoS to DSCP mapping
表2 DSCP到CoS的映射Tab.2 The DSCP to CoS mapping
2)流量控制。流量控制用于約束被分類的數(shù)據(jù)流所占用的傳輸帶寬,從而控制通信流通過交換機傳輸?shù)乃俣取?/p>
3)標記。修改入站幀的CoS、IP優(yōu)先級或DSCP值,確保被分類后的報文對應(yīng)的標記值能夠傳遞給網(wǎng)絡(luò)上的下一跳設(shè)備。
4)入隊列。負責(zé)將數(shù)據(jù)流中的報文送往端口的某個輸出隊列中,進入不同輸出隊列的報文將獲得不同等級和性質(zhì)的傳輸服務(wù)策略。
5)隊列調(diào)度。確定以什么樣的方式來處理被送到端口各個輸出隊列中的報文。每一種隊列調(diào)度技術(shù)都用來解決特定的問題,會對網(wǎng)絡(luò)性能產(chǎn)生特定的影響。常見的隊列調(diào)度算法包括 FIFO、PQ (Priority Queue, 優(yōu)先級隊列)、CQ(Custom Queue,自定義隊列)、WFQ(Weighted Fair Queue,加權(quán)公平隊列)、WRR(Weighted Round Robin,加權(quán)輪詢)等[4]。
WRR將每個端口分為多個輸出隊列,在隊列之間進行輪流調(diào)度,保證每個隊列都能得到一定的服務(wù)時間。以Catalyst 3550交換機[5]為例,對一個100 Mb/s的端口使用了4個出站隊列,如果配置隊列1~4的加權(quán)值分別為50、30、10、10,這樣可以保證最低優(yōu)先級隊列也能獲得至少10 Mb/s的帶寬。雖然多個隊列的調(diào)度是輪詢進行,但對每個隊列不是固定地分配服務(wù)時間片。如果某個隊列為空,那么馬上換到下一個隊列調(diào)度,這樣帶寬資源可以得到充分利用。
使用 Catalyst 3550 交換機 1 臺、PC 機 4 臺(S1、S2、S3、PC)搭建如圖2所示網(wǎng)絡(luò)。正確配置PC機的網(wǎng)絡(luò)參數(shù),確保4臺PC處于同一個局域網(wǎng)中。
1)啟用 QoS
S3550(config)#mls qos!----在交換機 S3550 上全局啟用QoS
圖2 網(wǎng)絡(luò)連接示意圖Fig.2 Structure of the network
2)配置訪問控制列表
S3550 (config)#access-list 100 permit ip any any!----配置訪問控制列表(ACL)
3)配置分類映射表
S3550 (config)#class-map match-all ANYIP1!----配置分類映射表ANYIP1
S3550 (config-cmap)#match access-group 100!----匹配編號為100的ACL
S3550 (config)#class-map match-all ANYIP2!----配置分類映射表ANYIP2
S3550 (config-cmap)#match access-group 100
4)配置策略映射表
S3550 (config)#policy-map POLICY1!----配置策略映射表POLICY1
S3550 (config-pmap)#class ANYIP1!----匹配分類映射表ANYIP1
S3550 (config-pmap-c)#set ip dscp 32!----設(shè)置 DSCP值為32
S3550 (config)#policy-map POLICY2!----配置策略映射表POLICY2
S3550 (config-pmap)#class ANYIP2!----匹配分類映射表ANYIP2
S3550 (config-pmap-c)#set ip dscp 40!----設(shè)置 DSCP值為40
5)在端口上應(yīng)用策略
S3550 (config)#interface f0/2!----入口 f0/2
S3550 (config-if)#service-policy input POLICY1!----在端口f0/2上應(yīng)用策略POLICY1
S3550 (config)#interface f0/3!----入口 f0/3
S3550 (config-if)#service-policy input POLICY1!----在端口f0/3上應(yīng)用策略POLICY1
S3550 (config)#interface f0/4!----入口 f0/4
S3550 (config-if)#service-policy input POLICY2!----在端口f0/4上應(yīng)用策略POLICY2
6)在端口上配置CoS映射關(guān)系
S3550 (config)#interface f0/1!----出口 f0/1
S3550 (config-if)#wrr-queue cos-map 1 0 1!----隊列1
S3550 (config-if)#wrr-queue cos-map 2 2 3!----隊列2
S3550 (config-if)#wrr-queue cos-map 3 4!----隊列 3
S3550 (config-if)#wrr-queue cos-map 4 5 6 7!----隊列4
7)配置WRR權(quán)重
S3550 (config)#interface f0/1!----出口 f0/1
S3550 (config-if)#wrr-queue bandwidth 5 5 5 85!----配置4個隊列的WRR權(quán)重[6]
分別把 S1、S2、S3配置為 FTP服務(wù)器[7],在客戶端 PC上用FTP命令同時從S1、S2、S3上下載文件。為了保證從S1、S2、S3下載同樣大小的文件所花費的時間具有可比性,3臺FTP服務(wù)器應(yīng)該采用相同的實現(xiàn)方法。實驗中使用的文件大小約為1.18 GB(準確大小為1269432320 B),4臺PC的配置均為:Intel Pentium CPU G630 2.70GHz (雙核)、2GB 內(nèi)存、500GB硬盤、Windows XP(SP3)系統(tǒng)。記錄連續(xù)5次文件傳輸所用的時間及傳輸速率,如表3所示。
表3 未使用QoS策略Tab.3 Not applying the QoS policy
在Catalyst 3550交換機上,按照上述步驟啟用并配置QoS,從3臺FTP服務(wù)器上同時下載文件,記錄連續(xù)5次傳輸所用的時間與速率,如表4所示。可以看出,由于在端口f0/2、f0/3上應(yīng)用了策略POLICY1,而在端口f0/4上應(yīng)用了策略POLICY2,故從S3上下載同樣大小的文件所用時間最短,速率最大。
表4 在端口f0/4上應(yīng)用策略POLICY2Tab.4 Applying the policy (POLICY2)in the interface f0/4
在Catalyst 3550交換機上,啟用并配置QoS,此時在端口f0/2、f0/4上應(yīng)用策略POLICY1,而在端口f0/3上應(yīng)用策略POLICY2,重新測試下載時間,如表5所示,從S2上下載同樣大小的文件所用時間最短,速率最大。
在Catalyst 3 550交換機上,啟用并配置QoS,此時在端口f0/3、f0/4上應(yīng)用策略POLICY1,而在端口f0/2上應(yīng)用策略POLICY2,重新測試下載時間,如表6所示,從S1上下載同樣大小的文件所用時間最短,速率最大。
表5 在端口f0/3上應(yīng)用策略POLICY2Tab.5 Applying the policy (POLICY2)in the interface f0/3
表6 在端口f0/2上應(yīng)用策略POLICY2Tab.6 Applying the policy (POLICY2)in the interface f0/2
未使用QoS策略時,從3臺FTP服務(wù)器下載文件所用的時間總體上相差不多。在交換機上啟用QoS,并把某個端口(如f0/4)優(yōu)先級設(shè)置為最高時,則從該端口連接的FTP服務(wù)器(S3)上下載文件最快。測試結(jié)果表明,通過合理配置QoS機制,能夠為不同類別的數(shù)據(jù)流提供不同的傳輸優(yōu)先級,從而提供不用級別的服務(wù)質(zhì)量。文中設(shè)計的實驗,能夠幫助初學(xué)者更深刻地理解QoS的工作過程,從而更好地掌握計算機網(wǎng)絡(luò)相關(guān)原理。搭建的網(wǎng)絡(luò)拓撲及配置過程比較簡單,但是對于QoS技術(shù)在網(wǎng)絡(luò)中的部署具有一定的現(xiàn)實指導(dǎo)意義。
[1]劉大偉,張芳,譯.(美)Richard Froom,Balaji Sivasubramanian,Erum Frahim,著.CCNP自學(xué)指南:組建Cisco多層交換網(wǎng)絡(luò)(BCMSN)[M].3版.北京:人民郵電出版社,2006.
[2]張國清.QoS在IOS中的實現(xiàn)與應(yīng)用[M].2版.北京:電子工業(yè)出版社,2012.
[3](美)Michael Flannagan,Richard Froom,Kevin Turek,著.Cisco Catalyst QoS—園區(qū)網(wǎng)中的服務(wù)質(zhì)量 [M].尹敏,張衛(wèi),譯.北京:人民郵電出版社,2004.
[4]梅創(chuàng)社.平面網(wǎng)絡(luò)中QOS多播路由算法研究與設(shè)計[J].電子設(shè)計工程,2012,20(6):71-73.
[5](美)David Hucaby,Steve McQuerry, 著.Cisco現(xiàn)場手冊:Catalyst交換機配置[M].張輝,譯.北京:人民郵電出版社,2004.
[6]蔣崢崢,王丹丹,陳曉紅.基于DiffServ技術(shù)的園區(qū)網(wǎng)QoS控制與實現(xiàn)[J].科技信息,2013(22):16-17.
[7]何波,崔貫勛.計算機網(wǎng)絡(luò)實驗教程[M].北京:清華大學(xué)出版社,2013.