李博倫,王海棟,錢高冉,唐 翔,高秀敏
(杭州電子科技大學(xué) 電子信息學(xué)院,浙江 杭州 310018)
網(wǎng)絡(luò)流量監(jiān)管CAR技術(shù)研究
李博倫,王海棟,錢高冉,唐翔,高秀敏
(杭州電子科技大學(xué) 電子信息學(xué)院,浙江杭州310018)
網(wǎng)絡(luò)流量監(jiān)管技術(shù)中,網(wǎng)絡(luò)流量監(jiān)管/承諾信息速率(Committed Access Rate,CAR)技術(shù)被普遍應(yīng)用。目前有3種類型的CAR:全局CAR、流行為CAR、接口CAR。CAR的作用是對(duì)流量設(shè)備進(jìn)行監(jiān)管,一旦進(jìn)入設(shè)備的流量超出閾值,就對(duì)其進(jìn)行必要的動(dòng)作,來(lái)保證網(wǎng)絡(luò)資源的正常處理。在如今的通信領(lǐng)域CAR技術(shù)作用很大。令牌桶算法是設(shè)備上實(shí)現(xiàn)CAR技術(shù)的基礎(chǔ)。文章著重研究單速率三色算法和雙速率三色算法,根據(jù)這兩種方法各自的優(yōu)點(diǎn),結(jié)合兩種方法的實(shí)現(xiàn)給出了新的實(shí)現(xiàn)方式。
CAR技術(shù);令牌桶算法;流量監(jiān)控技術(shù)
如今互聯(lián)網(wǎng)飛速發(fā)展,越來(lái)越多的事務(wù)需要互聯(lián)網(wǎng)來(lái)配合完成,各種各樣的用戶都需要將自己的終端或者局域網(wǎng)接入互聯(lián)網(wǎng)進(jìn)行各種應(yīng)用。
隨著用戶需求的不斷提高,用戶逐漸側(cè)注重于網(wǎng)絡(luò)的穩(wěn)定性和傳輸有效性。簡(jiǎn)單的在網(wǎng)絡(luò)上傳送報(bào)文信息已經(jīng)不能滿足用戶的需求。用戶更希望網(wǎng)絡(luò)有更好的服務(wù)能力。
作為流量監(jiān)管技術(shù)中比較優(yōu)秀且被普遍使用的技術(shù),網(wǎng)絡(luò)流量監(jiān)管/承諾信息速率(Committed Access Rate,CAR)有著自己的處理流程。流入設(shè)備的流量首先被CAR進(jìn)行實(shí)時(shí)監(jiān)視,這些被監(jiān)視的流量將去匹配先前配置好的匹配規(guī)則,并且由不同的規(guī)則將流進(jìn)行分類,對(duì)于那些不能匹配上任何一條規(guī)則的報(bào)文直接發(fā)送,不做任何處理,對(duì)于那些根據(jù)規(guī)則分為不同類的流量,將被放入令牌桶進(jìn)行處理。在保持網(wǎng)絡(luò)資源的穩(wěn)定性方面CAR技術(shù)起到了很大的作用。
由于應(yīng)用場(chǎng)景的不同,CAR不止一類,本文將CAR分為3類:全局CAR,流行CAR和接口CAR。
1.1全局CAR
全局指的是應(yīng)用范圍,在全局應(yīng)用的CAR能被設(shè)備上的所有的接口引用,從而對(duì)進(jìn)出設(shè)備的流量進(jìn)行管控。全局CAR又根據(jù)功能不同分為兩種:分層CAR、聚合 CAR。
(1)聚合CAR??梢詫?duì)某個(gè)業(yè)務(wù)或某個(gè)業(yè)務(wù)組(由一些單個(gè)業(yè)務(wù)組成)單獨(dú)應(yīng)用的CAR技術(shù)。應(yīng)用了聚合CAR技術(shù)后,這個(gè)業(yè)務(wù)的流量(或者業(yè)務(wù)組中各個(gè)業(yè)務(wù)的總流量)將被限制在該聚合CAR規(guī)定的流量范圍之內(nèi)。
(2)分層CAR??梢詫?duì)多個(gè)數(shù)據(jù)流的總和應(yīng)用分層CAR。分層CAR的配置并不影響聚合CAR的配置,對(duì)每個(gè)單獨(dú)流量配置聚合CAR后,可以在對(duì)多個(gè)流的總和配置分層CAR,從而對(duì)流量總和進(jìn)行節(jié)制。
分層CAR與聚合CAR可以單獨(dú)使用,在實(shí)際應(yīng)用中也可以將兩者結(jié)合起來(lái)使用,一般有兩種模式如下:
(1)“或”模式:在這種模式下,對(duì)于多條數(shù)據(jù)流,數(shù)據(jù)流正常通過(guò)的前提是單條流符合聚合CAR的限制或者多條流的總和符合分層CAR的限制。
(2)“與”模式:在這種模式下,對(duì)于多條數(shù)據(jù)流,必須保證各個(gè)數(shù)據(jù)流滿足對(duì)應(yīng)的聚合CAR并且多條數(shù)據(jù)流總和滿足分層數(shù)據(jù)流才能正常通過(guò)。
1.2流行為CAR
對(duì)特定的流量應(yīng)用的CAR技術(shù)叫作流行為CAR,此種CAR技術(shù)的實(shí)現(xiàn)需要涉及服務(wù)質(zhì)量(Quality of Service,QoS)策略。下面將介紹QoS策略的3要素。
(1)類:使用者可以通過(guò)命令定義一系列的規(guī)則來(lái)對(duì)報(bào)文進(jìn)行分類,從而將監(jiān)控到的流量歸為不同的類型,并且每個(gè)類型都有對(duì)應(yīng)的類名做標(biāo)示,規(guī)則可以由使用者來(lái)定。
(2)流行為:流行為的核心就是要對(duì)指定的報(bào)文或流量采取的動(dòng)作。一個(gè)標(biāo)準(zhǔn)的流行為由名稱和具體的處理動(dòng)作組成,這里的處理動(dòng)作包括丟棄、轉(zhuǎn)發(fā)等,可以由多個(gè)組成。
(3)策略:策略的作用是為分類后報(bào)文的類指定流行為,就是報(bào)文分類的規(guī)則和流行為的集合,執(zhí)行策略的過(guò)程就是對(duì)指定報(bào)文采取措施的過(guò)程。
1.3接口CAR
在設(shè)備的接口下應(yīng)用的CAR統(tǒng)稱為接口CAR。實(shí)際應(yīng)用全局CAR,流行為CAR時(shí)都是依賴于接口的。
2.1令牌桶算法
令牌桶是網(wǎng)絡(luò)中虛擬的流量存儲(chǔ)池,令牌則是以一定速率填充虛擬流量存儲(chǔ)池的虛擬信息包。令牌桶算法有兩種不同的算法:?jiǎn)嗡俾嗜?、雙速率三色。這兩種算法都有著兩種工作模式:色盲模式、非色盲模式。業(yè)內(nèi)實(shí)際應(yīng)用中,比較常用的模式是色盲模式。
實(shí)際應(yīng)用中選擇配置令牌桶的數(shù)量為兩個(gè)(分別稱為C桶和E/P桶),這樣可以更加靈活地進(jìn)行策略上的控制。
本文中對(duì)令牌桶對(duì)流量進(jìn)行評(píng)估時(shí)涉及4類參數(shù)采用縮寫(xiě)的形式,介紹如下:(1)CIR:令牌進(jìn)入C桶的速率值。(2)CBS:C桶容量,每次突發(fā)C桶允許的最大流量值。(3)PIR:向E/P桶中投放令牌的速率,即峰值信息速率。(4)EBS/PBS:E/P桶容量,即峰值突發(fā)尺寸。
2.1.1單速率三色算法(srTCM)
單速率三色算法,可以根據(jù)制定的規(guī)格去度量數(shù)據(jù)流,然后由度量的結(jié)果對(duì)數(shù)據(jù)流進(jìn)行分類,最后對(duì)分類后的數(shù)據(jù)流進(jìn)行標(biāo)記著色。單速率三色標(biāo)記算法采用:CIR,CBS,EBS對(duì)數(shù)據(jù)流進(jìn)行評(píng)估。實(shí)際應(yīng)用中采用兩個(gè)桶構(gòu)成的結(jié)構(gòu):C桶和E桶。C桶令牌數(shù)表示為Tc,E桶令牌數(shù)表示為Te,C桶E桶總?cè)萘糠謩e為CBS,EBS。開(kāi)始時(shí),C桶E桶裝滿令牌,即Tc的值為CBS,Te的值為EBS。向令牌桶中添加令牌的速率為CIR,添加令牌的順序通常先向C桶添加令牌,等C桶滿后,再向E桶中添加令牌。
色盲模式,如果長(zhǎng)度為B的報(bào)文進(jìn)入設(shè)備。此時(shí)C桶的令牌數(shù)大于報(bào)文長(zhǎng)度B即Tc>B,報(bào)文可以獲得足夠的令牌著為綠色,Tc的值減少B,如圖1所示。
圖1 標(biāo)記綠色報(bào)文
若C桶的令牌數(shù)小于報(bào)文的長(zhǎng)度但是E桶的令牌數(shù)大于報(bào)文的長(zhǎng)度即Tc<B <Te,報(bào)文著為黃色,Tc,Te的值均減少B,如圖2所示。
圖2 標(biāo)記黃色報(bào)文
若E桶中的令牌數(shù)小于報(bào)文的長(zhǎng)度即B >Te,報(bào)文著為紅色,這種情況下Tc,Te的值均保持不變,如圖3所示。
圖3 標(biāo)記紅色報(bào)文
在非色盲模式下,報(bào)文如果已被標(biāo)記為綠色或B<Tc,則報(bào)文被標(biāo)記為綠色,Tc減少B;若報(bào)文已被標(biāo)記為黃色或Tc<B <Te,則標(biāo)記為黃色,且Te減少B;若報(bào)文已被標(biāo)記為紅色或B>Te,則標(biāo)記為紅色,Tc和Te都不變 。
對(duì)于單速率三色標(biāo)記令牌桶的構(gòu)成上有兩種方式,如圖4所示。
圖4 srTCM令牌桶構(gòu)成
第一種方式:C桶和E桶是兩個(gè)獨(dú)立的令牌桶。這種方式下當(dāng)確保突發(fā)流量不會(huì)有的情況下,EBS的值可以等于0。
第二種方式:C桶作為E桶的一部分(圖B),由一個(gè)桶實(shí)現(xiàn)。這種方式下E桶的容量等于最終桶的容量,因此無(wú)論是否有突發(fā)流量,EBS不等于0,必須大于或等于CBS。這是一種完全按照令牌桶的定義來(lái)實(shí)現(xiàn)的實(shí)現(xiàn)方式,由于CBS和EBS都是令牌桶的參數(shù),所以放入一個(gè)相同的桶實(shí)現(xiàn),通過(guò)突發(fā)計(jì)數(shù)器來(lái)進(jìn)行區(qū)分。
2.1.2雙速率三色算法(trTCM)
雙速率三色算法,依據(jù):CIR,CBS,PIR,PBS進(jìn)行評(píng)估。在2.1.1單速率三色算法中已經(jīng)介紹了前兩個(gè)參數(shù)的含義,PIR的值要大于等于CIR的設(shè)置值,需要注意的是PIR這個(gè)參數(shù)在交互機(jī)中才有意義,路由器沒(méi)有PIR這個(gè)參數(shù)。
如圖5所示C桶和P桶兩個(gè)桶組成trTCM中常用令牌桶結(jié)構(gòu)。對(duì)于單速率三色算法來(lái)說(shuō),注入令牌的速率只有一個(gè),而雙速率三色標(biāo)記算法向C桶和P桶這兩個(gè)令牌桶填充令牌的速率是不同的,分別為CIR,PIR;CBS,PBS為兩個(gè)桶的容量。Tc,Tp表示兩桶中的令牌數(shù)目,開(kāi)始時(shí),C桶E桶裝滿令牌,即Tc的值為CBS,Tp的值為PBS。
當(dāng)模式處于色盲的情況下,報(bào)文速率PIR時(shí),那些超出Tp的部分報(bào)文得不到令牌,被標(biāo)為紅色,一些報(bào)文長(zhǎng)度小于Tp,報(bào)文可以從P桶中取得令牌,這樣的報(bào)文被標(biāo)為黃色,從C桶中獲取令牌的報(bào)文被標(biāo)記為綠色;當(dāng)報(bào)文速率介于CIR 和PIR之間時(shí),沒(méi)有得不到令牌的報(bào)文,只是被標(biāo)記的顏色不同,從P桶中獲取令牌,被標(biāo)記為黃色,從C桶中獲取令牌被標(biāo)記為綠色;當(dāng)報(bào)文速率比CIR小時(shí),報(bào)文全部由C桶獲取令牌,這種情況下,全部被標(biāo)記為綠色報(bào)文。
當(dāng)模式處于非色盲的情況下,那些超過(guò)Tp部分無(wú)法得到令牌的報(bào)文或者已經(jīng)有紅色標(biāo)記的報(bào)文,標(biāo)記為紅色;超過(guò)Tc未超過(guò)Tp部分報(bào)文或者已經(jīng)有黃色標(biāo)記的報(bào)文,標(biāo)記為黃色;未超過(guò)Tc部分報(bào)文或者已經(jīng)有綠色標(biāo)記的報(bào)文,標(biāo)記為綠色。
2.1.3srTCM算法與trTCM算法的比較
以上著重研究了srTCM算法和trTCM算法。兩者都是常用的令牌桶算法,各有優(yōu)缺點(diǎn)?,F(xiàn)將兩種算法作了比較,如表1所示。
表1 srTCM算法與trTCM 算法的比較
2.2CAR技術(shù)中改進(jìn)的令牌桶算法
由2.1.1的介紹知,令牌桶的兩種常用算法中單速率三色標(biāo)記算法(srTCM)的突出優(yōu)點(diǎn)就是能很好應(yīng)對(duì)報(bào)文尺寸突發(fā),缺點(diǎn)是對(duì)于速率突發(fā)的處理的能力較弱。而雙速率三色算法(trTCM)卻有著能很好應(yīng)對(duì)速率突發(fā)的優(yōu)點(diǎn),所以綜合兩種算法的優(yōu)缺點(diǎn),可以對(duì)單速率三色算法進(jìn)行一些有效改進(jìn)。
在令牌桶結(jié)構(gòu)中,使用srTCM中的A結(jié)構(gòu),改進(jìn)點(diǎn)為放入C桶的令牌速率不等于放入P桶的令牌速率,分別為CIR、PIR。這樣就克服了不能很好應(yīng)對(duì)速率突發(fā)的缺點(diǎn)。
根據(jù)RFC協(xié)議,向令牌桶中投放令牌的速率時(shí)恒定的,為CIR或者PIR。相當(dāng)于添加一個(gè)令牌間隔為1/CIR或者1/ PIR時(shí)間。實(shí)際應(yīng)用的情況下,有兩種常見(jiàn)投放令牌的方式:周期性添加和一次性添加。
周期性添加,令牌桶容量除以添加速率就等于添加令牌的周期,每個(gè)周期向令牌桶注入CBS個(gè)令牌;相比周期性添加,一次性添加無(wú)規(guī)定的添加周期,一旦發(fā)現(xiàn)令牌桶中令牌書(shū)為0就進(jìn)行一次添加活動(dòng),并且注入令牌桶的令牌數(shù)量是CIR*(兩次添加的時(shí)間差)。
在實(shí)際應(yīng)用中,周期添加令牌有一些缺點(diǎn),當(dāng)報(bào)文發(fā)送的周期與令牌添加的周期不相同時(shí),使得報(bào)文在此期間沒(méi)有令牌而無(wú)法轉(zhuǎn)發(fā),此期間丟包率會(huì)很高;一次性添加的方式相當(dāng)于使用了一種“借債”的機(jī)制,在桶內(nèi)沒(méi)有令牌的情況下,報(bào)文進(jìn)入令牌桶,和周期性添加不同的是,這時(shí)會(huì)一次性向令牌桶注入令牌,從而將丟包率控制在比較低的范圍內(nèi)。對(duì)于突發(fā)流量的情況,一次性添加方式更擅長(zhǎng)處理。
2.3流量分類和標(biāo)記
對(duì)于流量而言,對(duì)其進(jìn)行分類時(shí),使用不同規(guī)格的分類標(biāo)準(zhǔn)最終劃分出的類型是不同的。通常情況下會(huì)根據(jù)服務(wù)類型和報(bào)文的優(yōu)先級(jí)來(lái)作為標(biāo)準(zhǔn)。
報(bào)文中很多信息可以使用:網(wǎng)絡(luò)協(xié)議(Internet Protocol,IP)的服務(wù)型字段、物理接口、源IP地址、目的IP地址、端口號(hào)等。這些信息都可以作為流量分類的標(biāo)準(zhǔn)。比如使用服務(wù)型字段的前3位(IP優(yōu)先級(jí))可以區(qū)分8類報(bào)文,使用前6位(區(qū)分服務(wù)編碼點(diǎn))能區(qū)分64類報(bào)文。當(dāng)確定某網(wǎng)段報(bào)文時(shí),可以使用一個(gè)五元組(源地址、源端口號(hào)、協(xié)議號(hào)、目的地址、目的端口號(hào))。
流量分類結(jié)束后就會(huì)給不同類的流量打上不同的標(biāo)記。流量分類的操作一般在網(wǎng)絡(luò)的邊界進(jìn)行,從而使得網(wǎng)絡(luò)內(nèi)部的處理者清楚報(bào)文的類別,然后依據(jù)預(yù)先的規(guī)則對(duì)不同類的報(bào)文進(jìn)行相應(yīng)的處理。理論上,報(bào)文的任何信息段都可以作為流分類的標(biāo)準(zhǔn),但實(shí)際應(yīng)用中在對(duì)流量標(biāo)記時(shí),對(duì)于多協(xié)議標(biāo)簽轉(zhuǎn)換(Muti-Protocol Label Switching,MPLS)報(bào)文只標(biāo)記EXP(自然常數(shù)e為底的指數(shù)函數(shù))域、對(duì)于IP報(bào)文只標(biāo)記服務(wù)類型(Type of Service,ToS)域。
CAR(流量監(jiān)控技術(shù))的實(shí)質(zhì)是按照一定的規(guī)格監(jiān)督進(jìn)入設(shè)備的流量,對(duì)不符合規(guī)格的流量進(jìn)行處理,將進(jìn)入設(shè)備的流量限制在該規(guī)格之下。
在設(shè)備中應(yīng)用時(shí),流量監(jiān)控處理的具體執(zhí)行過(guò)程如圖6所示。首先報(bào)文進(jìn)入設(shè)備,由于提前配置了匹配規(guī)則,這些報(bào)文將被分為不同的類,如果一些報(bào)文不滿足匹配規(guī)則將不被處理;對(duì)于滿足匹配規(guī)則被分為不同類的報(bào)文,將被送入令牌桶。能獲取足夠令牌的報(bào)文和不能獲取令牌的報(bào)文分別標(biāo)記不同的顏色。對(duì)不同顏色報(bào)文采取不同的監(jiān)管措施也就是對(duì)報(bào)文應(yīng)用的動(dòng)作,實(shí)際中常用的監(jiān)管動(dòng)作有:改變優(yōu)先級(jí)、轉(zhuǎn)發(fā)、丟棄。默認(rèn)一般情況下,被著為綠色的報(bào)文將被成功轉(zhuǎn)發(fā),而將丟棄被著為紅色的報(bào)文。
圖6 流量監(jiān)控處理流程
實(shí)際應(yīng)用中,令牌桶容量、令牌注入速率都不是固定不變的,其值都可以由使用者自己指定。
CAR技術(shù)作為一種是網(wǎng)絡(luò)流量監(jiān)控常用技術(shù),其在保證網(wǎng)絡(luò)服務(wù)質(zhì)量中處于極其重要的地位。本文介紹了CAR的3種類型:全局CAR、流行為CAR、接口CAR。令牌桶算法對(duì)于CAR技術(shù)的實(shí)現(xiàn)很重要,本文對(duì)srTCM算法和trTCM 算法進(jìn)行了研究和比較,提出了改進(jìn)后的令牌桶算法將其應(yīng)用在CAR技術(shù)中。CAR技術(shù)中需要通過(guò)流量分類標(biāo)準(zhǔn)來(lái)對(duì)流量進(jìn)行合理分類,對(duì)需要監(jiān)控的流量進(jìn)行處理,從而達(dá)到保證網(wǎng)絡(luò)質(zhì)量的目的。
[1]王蘭芳.CAR技術(shù)在Comware平臺(tái)上的實(shí)現(xiàn)[J].科研,2012(5):25-27.
[2]李曉利,郭宇春. QoS技術(shù)中令牌桶算法實(shí)現(xiàn)方式比較[J].中興通訊技術(shù),2007(3):65-69.
[3]邢海飛,郭裕順.QoS 二次流量監(jiān)管實(shí)現(xiàn)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2010(4):34-36.
Research on CAR technology of network flow monitoring
Li Bolun, Wang Haidong, Qian Gaoran, Tang Xiang, Gao Xiumin
(Hangzhou Electronic Information University, Hangzhou 310018, China)
CAR technology is widely used in network traffic monitoring technology. Currently there are three types of CAR: Global CAR,popular for CAR, interface CAR. The role of CAR is to monitor the flow of equipment, once the flow into the device beyond the threshold, it is necessary to carry out the action, to ensure the normal processing of network resources. In today's communication field CAR technology is very large. Token bucket algorithm is the basis for the implementation of CAR technology on the device. In this paper, we focus on the single rate three color algorithm and two rate three color algorithm, according to the advantages of these two methods, combined with the realization of the two methods to give a new way.
CAR technology; token bucket algorithm; flux monitoring technology
項(xiàng)目名稱:國(guó)家重大科學(xué)儀器設(shè)備專項(xiàng)子任務(wù);項(xiàng)目編號(hào):2012YQ17000408。項(xiàng)目名稱:國(guó)家自然科學(xué)基金面上項(xiàng)目;項(xiàng)目編號(hào):61378035。項(xiàng)目名稱:浙江省重大科技專項(xiàng);項(xiàng)目編號(hào):2012C12017-5)。項(xiàng)目名稱:浙江省151人才計(jì)劃資助;項(xiàng)目編號(hào):12-2-008。
李博倫(1991— ),男,河北石家莊,碩士。