本發(fā)明涉及通信技術(shù)領(lǐng)域的流量監(jiān)管技術(shù),尤其涉及一種包每秒(pps,packagepersecond)流量監(jiān)管方法及裝置。
背景技術(shù):
隨著網(wǎng)絡(luò)應(yīng)用的不斷發(fā)展,新型業(yè)務(wù)的不斷推出,例如交互式網(wǎng)絡(luò)電視(iptv)、網(wǎng)絡(luò)電話(voip,voiceoverinternetprotocol)、視頻會議等非傳統(tǒng)數(shù)據(jù)通信業(yè)務(wù),對網(wǎng)絡(luò)的服務(wù)質(zhì)量(qos,qualityofservice)提出了更高的時延、丟包率和抖動控制要求;隨著通信網(wǎng)絡(luò)的用戶越來越多,對于網(wǎng)絡(luò)資源的競爭也越來越激烈,為滿足用戶對于不同應(yīng)用的差異化qos的需求,通常采用流量監(jiān)管技術(shù)控制用戶業(yè)務(wù)的流量;流量監(jiān)管通常使用承諾訪問速率(car,committedaccessrate)來限制進入或流出網(wǎng)絡(luò)的業(yè)務(wù)連接的流量與突發(fā)數(shù)據(jù),流量監(jiān)管至少有如下兩個方面的需求:(1)對允許用戶訪問的總字節(jié)數(shù)進行限定,例如,限定用戶的最大下載速度為10mbps/s;(2)對允許用戶訪問的總的數(shù)據(jù)包個數(shù)進行限定,比如限定用戶每秒發(fā)送的數(shù)據(jù)包在100個以內(nèi)。
為了實現(xiàn)流量監(jiān)管的上述兩種不同需求,現(xiàn)有通信網(wǎng)絡(luò)分別設(shè)置兩套流量監(jiān)管裝置:比特每秒(bps,bitspersecond)流量監(jiān)管裝置,即每秒允許通過多少個比特,bps流量監(jiān)管裝置對應(yīng)于上述的需求(1);pps流量監(jiān)管裝置,即每秒允許通過多少個數(shù)據(jù)包,pps流量監(jiān)管裝置對應(yīng)于上述的需求(2)。
參見圖1示出的bps流量監(jiān)管裝置的工作原理示意圖,圖1示出的bps流量監(jiān)管裝置包括:令牌發(fā)生器101、令牌桶102、令牌判別模塊103及令牌更新模塊104;其中,令牌發(fā)生器101用于按照預(yù)定的速率向令牌桶里面添加令牌,舉個例子來說,假設(shè)網(wǎng)絡(luò)允許用戶發(fā)送的數(shù)據(jù)流量為5mbps,且32個令牌代表 1bit,則令牌發(fā)生器101就以每秒種5m*32個令牌的速度,在比秒更小的時間單元里,勻速的向令牌桶添加令牌;令牌桶102,里面包含2個參數(shù),一個是剩余令牌,指示還可以發(fā)送多少字節(jié)的數(shù)據(jù)包,另一個是令牌桶的深度,令牌發(fā)生器101產(chǎn)生的令牌會在令牌桶102中累計,當(dāng)累計大于令牌桶的深度時,令牌會溢出,防止在沒有數(shù)據(jù)包的時間里令牌大量累積,然后下一時刻來了大量的數(shù)據(jù)包,由于令牌已經(jīng)積累很多,這時候?qū)?shù)據(jù)包全部發(fā)出去,將對網(wǎng)絡(luò)進行巨大沖擊,所以令牌不能無限累積,而是累積到一定值時,添加的令牌被視為無效令牌;令牌判別模塊103,當(dāng)數(shù)據(jù)包到達時,判斷令牌桶102里的剩余令牌是否足夠數(shù)據(jù)包通過,如果令牌足夠,則數(shù)據(jù)包通過,否則數(shù)據(jù)包丟棄;令牌更新模塊104,當(dāng)數(shù)據(jù)包通過后,要將令牌桶102里的令牌減去與數(shù)據(jù)包對應(yīng)的令牌數(shù);基于該bps流量監(jiān)管裝置,實現(xiàn)對允許用戶訪問的總字節(jié)數(shù)(用戶流量)進行限定,大于流量監(jiān)管裝置預(yù)設(shè)的允許用戶發(fā)送的數(shù)據(jù)流量的數(shù)據(jù)包,將會被丟棄。
參見圖2示出的pps流量監(jiān)管裝置的工作原理示意圖,pps流量監(jiān)管技術(shù)的一種實現(xiàn)方式是在每秒鐘開始的時候,將允許通過的數(shù)據(jù)包數(shù)目配置為設(shè)定值,每來一個數(shù)據(jù)包,pps流量監(jiān)管裝置201將允許通過的數(shù)據(jù)包數(shù)目減1,直到允許通過的數(shù)據(jù)包數(shù)目為0,即判定1秒鐘內(nèi)已經(jīng)通過的數(shù)據(jù)包個數(shù)大于設(shè)定值,如此,在這1秒的剩余時間內(nèi)到來的數(shù)據(jù)包,將被pps流量監(jiān)管裝置201全部丟棄;這就存在如下問題:a)如果每秒的開始時間來了大量數(shù)據(jù)包,這樣前面的數(shù)據(jù)包大量通過,造成通訊設(shè)備的流量比較大;b)每秒鐘開始的數(shù)據(jù)包,能通過的概率遠遠大于后面來的數(shù)據(jù)包,而通訊設(shè)備,一般希望同一種類型的數(shù)據(jù)包,丟包率比較均衡。
現(xiàn)有的pps流量監(jiān)管技術(shù),容易造成通訊設(shè)備的流量突發(fā),無法保證業(yè)務(wù)的丟包率,影響業(yè)務(wù)服務(wù)質(zhì)量。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明實施例期望提供一種包每秒流量監(jiān)管方法及裝置,能降 低業(yè)務(wù)流量突發(fā),提高業(yè)務(wù)服務(wù)質(zhì)量。
為達到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的:
本發(fā)明實施例提供一種包每秒流量監(jiān)管方法,包括:
根據(jù)獲取到的每轉(zhuǎn)發(fā)一個預(yù)設(shè)長度的數(shù)據(jù)包所需要消耗的令牌數(shù)及目標(biāo)業(yè)務(wù)的約定流量速率確定令牌添加速率,及根據(jù)所述令牌添加速率勻速的向令牌存儲模塊中添加令牌;
響應(yīng)于所述目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包的轉(zhuǎn)發(fā)請求,確定所述令牌存儲模塊中的剩余令牌數(shù)滿足預(yù)置條件時,將所述目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包轉(zhuǎn)發(fā),及從所述令牌存儲模塊中刪除轉(zhuǎn)發(fā)所述目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包所需要消耗的令牌數(shù)。
本發(fā)明實施例還提供一種包每秒流量監(jiān)管裝置,包括:
添加模塊,用于根據(jù)獲取到的每轉(zhuǎn)發(fā)一個預(yù)設(shè)長度的數(shù)據(jù)包所需要消耗的令牌數(shù)及目標(biāo)業(yè)務(wù)的約定流量速率確定令牌添加速率,及根據(jù)所述令牌添加速率勻速的向令牌存儲模塊中添加令牌;
響應(yīng)模塊,用于響應(yīng)于所述目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包的轉(zhuǎn)發(fā)請求,確定所述令牌存儲模塊中的剩余令牌數(shù)滿足預(yù)置條件時,將所述目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包轉(zhuǎn)發(fā),及從所述令牌存儲模塊中刪除轉(zhuǎn)發(fā)所述目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包所需要消耗的令牌數(shù)。
與現(xiàn)有的pps流量監(jiān)管技術(shù)在每秒開始的時候使用設(shè)定值配置這一秒允許通過的數(shù)據(jù)包數(shù),每來一個數(shù)據(jù)包將允許通過的數(shù)據(jù)包個數(shù)減1相比,本發(fā)明實施例中,將每秒允許通過的數(shù)據(jù)包數(shù)轉(zhuǎn)化成令牌添加速率,根據(jù)令牌添加速率按時間均勻的向令牌存儲模塊中添加令牌,每來一個數(shù)據(jù)包就從令牌存儲模塊中刪除轉(zhuǎn)發(fā)數(shù)據(jù)包所需要消耗的令牌數(shù),由于令牌是基于令牌添加速率按時間均勻的向令牌存儲模塊中添加的,這樣就能夠避免在每秒開始時間的流量突發(fā),保證同一種類型的數(shù)據(jù)包的丟包率比較均衡,如此,能降低業(yè)務(wù)流量突發(fā),提高業(yè)務(wù)服務(wù)質(zhì)量。
附圖說明
圖1為現(xiàn)有技術(shù)中bps流量監(jiān)管裝置的工作原理示意圖;
圖2為現(xiàn)有技術(shù)中pps流量監(jiān)管裝置的工作原理示意圖;
圖3為本發(fā)明實施例中包每秒流量監(jiān)管方法的一個可選的流程示意圖;
圖4為本發(fā)明實施例中包每秒流量監(jiān)管方法的另一個可選的流程示意圖;
圖5為本發(fā)明實施例中包每秒流量監(jiān)管裝置的一個可選的結(jié)構(gòu)示意圖;
圖6為本發(fā)明實施例中包每秒流量監(jiān)管裝置的另一個可選的結(jié)構(gòu)示意圖;
圖7為本發(fā)明實施例中包每秒流量監(jiān)管裝置的又一個可選的結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合附圖及實施例,對本發(fā)明的技術(shù)方案進行清楚、完整地描述。
下面首先對實施本發(fā)明實施例的裝置(在以下各具體實施例中即為流量監(jiān)管裝置)進行說明,流量監(jiān)管裝置可以采用各種方式來實施,例如在網(wǎng)絡(luò)處理器、路由器等網(wǎng)絡(luò)設(shè)備中實施流量監(jiān)管裝置的全部組件(比如,流量監(jiān)管裝置可以集成于上述的網(wǎng)絡(luò)設(shè)備中),或者,在上述的網(wǎng)絡(luò)設(shè)備側(cè)以耦合的方式實施流量監(jiān)管裝置中的組件。
基于上述記載的流量監(jiān)管裝置,提出以下各具體實施例。
實施例一
本實施例記載一種包每秒流量監(jiān)管方法,可以應(yīng)用于如下場景中:希望在實現(xiàn)pps流量監(jiān)管功能的同時,能降低業(yè)務(wù)流量突發(fā),提高業(yè)務(wù)服務(wù)質(zhì)量;本實施例針對此情況的處理進行說明。
參見圖3,本實施例記載的包每秒流量監(jiān)管方法包括以下步驟:
步驟301、根據(jù)獲取到的每轉(zhuǎn)發(fā)一個預(yù)設(shè)長度的數(shù)據(jù)包所需要消耗的令牌數(shù)及目標(biāo)業(yè)務(wù)的約定流量速率確定令牌添加速率。
在本實施例中,流量監(jiān)管裝置在執(zhí)行步驟301之前,預(yù)先獲取每轉(zhuǎn)發(fā)一個預(yù)設(shè)長度的數(shù)據(jù)包所需要消耗的令牌數(shù);預(yù)設(shè)長度是一個固定值;可選的,獲取每轉(zhuǎn)發(fā)一個預(yù)設(shè)長度的數(shù)據(jù)包所需要消耗的令牌數(shù)的實現(xiàn)方式可以包括以下 任意一種方式:
方式1、流量監(jiān)管裝置獲取每轉(zhuǎn)發(fā)一個比特的數(shù)據(jù)所需要消耗的令牌數(shù),基于預(yù)設(shè)長度及獲取的每轉(zhuǎn)發(fā)一個比特的數(shù)據(jù)所需要消耗的令牌數(shù),確定每轉(zhuǎn)發(fā)一個預(yù)設(shè)長度的數(shù)據(jù)包所需要消耗的令牌數(shù);舉個例子來說,流量監(jiān)管裝置計算預(yù)設(shè)長度與每轉(zhuǎn)發(fā)一個比特的數(shù)據(jù)所需要消耗的令牌數(shù)的乘積,將乘積值確定為每轉(zhuǎn)發(fā)一個預(yù)設(shè)長度的數(shù)據(jù)包所需要消耗的令牌數(shù);例如,假設(shè)每轉(zhuǎn)發(fā)一個比特的數(shù)據(jù)所需要消耗的令牌數(shù)為32個,數(shù)據(jù)包的預(yù)設(shè)長度為64比特,則每轉(zhuǎn)發(fā)一個預(yù)設(shè)長度的數(shù)據(jù)包所需要消耗的令牌數(shù)為2048個(即32*64)。
方式2、預(yù)先在流量監(jiān)管裝置中配置每轉(zhuǎn)發(fā)一個預(yù)設(shè)長度的數(shù)據(jù)包所需要消耗的令牌數(shù)。
流量監(jiān)管裝置基于獲取到每轉(zhuǎn)發(fā)一個預(yù)設(shè)長度的數(shù)據(jù)包所需要消耗的令牌數(shù),計算每轉(zhuǎn)發(fā)一個預(yù)設(shè)長度的數(shù)據(jù)包所需要消耗的令牌數(shù)與目標(biāo)業(yè)務(wù)的約定流量速率的乘積,將乘積值確定為令牌添加速率;例如,假設(shè)每轉(zhuǎn)發(fā)一個預(yù)設(shè)長度的數(shù)據(jù)包所需要消耗的令牌數(shù)為2048個,目標(biāo)業(yè)務(wù)的約定流量速率(pps監(jiān)管需求)為100pps,則令牌添加速率等于204800(即2048*100),令牌添加速率的單位可以為令牌每秒;目標(biāo)業(yè)務(wù)的約定流量速率可以為目標(biāo)業(yè)務(wù)的承諾信息速率(cir,committedinformationrate)或者超出信息速率(eir,excessinformationrate)等;目標(biāo)業(yè)務(wù)的約定流量速率可以預(yù)先在流量監(jiān)管裝置中配置。
步驟302、根據(jù)令牌添加速率勻速的向令牌存儲模塊中添加令牌。
例如,假設(shè)令牌添加速率等于204800(令牌每秒),則流量監(jiān)管裝置每秒鐘將204800個令牌放入到令牌存儲模塊中;需要注意的是,流量監(jiān)管裝置每秒鐘需要往令牌存儲模塊里添加的令牌數(shù)并不是一次性加完的,而是按時間分次的、勻速的向令牌存儲模塊中添加令牌,例如流量監(jiān)管裝置每次往令牌存儲模塊里添加的令牌數(shù)為102400個,則流量監(jiān)管裝置每秒鐘需要往令牌存儲模塊里添加兩次令牌,及流量監(jiān)管裝置往令牌存儲模塊里添加令牌的時間間隔是0.5s(102400/204800=0.5);可選的,令牌存儲模塊可以為令牌桶。
流量監(jiān)管裝置往令牌存儲模塊里添加的令牌會在令牌存儲模塊里累積,即令牌存儲模塊中的剩余令牌數(shù),當(dāng)流量監(jiān)管裝置確定令牌存儲模塊中的剩余令牌數(shù)超出令牌存儲模塊的深度時,令牌會溢出,流量監(jiān)管裝置將超出的令牌視為無效令牌,防止如下情況的發(fā)生,即在沒有數(shù)據(jù)包需要轉(zhuǎn)發(fā)的時間里令牌大量累積,然后接下來的時刻接收到大量的數(shù)據(jù)包需要轉(zhuǎn)發(fā),此時由于令牌已經(jīng)積累很多,這時候?qū)?shù)據(jù)包全部發(fā)出去,將對設(shè)備及網(wǎng)絡(luò)造成巨大沖擊,因此,令牌存儲模塊中的令牌不能無限累積,而是累積到一定值(例如令牌存儲模塊的深度)時,繼續(xù)添加的令牌被視為無效令牌。
步驟303、響應(yīng)于目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包的轉(zhuǎn)發(fā)請求,確定令牌存儲模塊中的剩余令牌數(shù)滿足預(yù)置條件時,將目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包轉(zhuǎn)發(fā)。
流量監(jiān)管裝置接收到目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包的轉(zhuǎn)發(fā)請求時,或流量監(jiān)管裝置針對到達指定設(shè)備端口的歸屬目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包,根據(jù)目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包的特征信息,判斷令牌存儲模塊中的剩余令牌數(shù)是否滿足預(yù)置條件,若是則將目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包轉(zhuǎn)發(fā),若判定令牌存儲模塊中的剩余令牌數(shù)不滿足預(yù)置條件,則說明目標(biāo)業(yè)務(wù)的當(dāng)前流量速率超過了目標(biāo)業(yè)務(wù)的約定流量速率(pps監(jiān)管需求),此時,流量監(jiān)管裝置將目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包視為超限,將目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包丟棄或者緩存;這里,流量監(jiān)管裝置可以將超限的數(shù)據(jù)包進行緩存,等到判定令牌存儲模塊中的剩余令牌數(shù)滿足預(yù)置條件時將該因超限而緩存的數(shù)據(jù)包轉(zhuǎn)發(fā);流量監(jiān)管裝置還可以從令牌存儲模塊中預(yù)借令牌將該超限的數(shù)據(jù)包轉(zhuǎn)發(fā);數(shù)據(jù)包的特征信息可以包括數(shù)據(jù)包的長度、qos屬性、業(yè)務(wù)歸屬信息等數(shù)據(jù);可選的,目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包的長度可以等于預(yù)設(shè)長度;可選的,目標(biāo)業(yè)務(wù)的每一個數(shù)據(jù)包的長度均等于預(yù)設(shè)長度。
步驟304、從令牌存儲模塊中刪除轉(zhuǎn)發(fā)目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包所需要消耗的令牌數(shù)。
與現(xiàn)有的pps流量監(jiān)管技術(shù)在每秒開始的時候基于設(shè)定值配置這一秒允許業(yè)務(wù)通過的數(shù)據(jù)包個數(shù),每來一個數(shù)據(jù)包將允許通過的數(shù)據(jù)包個數(shù)減1相比,本實施例中,流量監(jiān)管裝置將每秒允許通過的數(shù)據(jù)包數(shù)轉(zhuǎn)化成令牌添加速率, 根據(jù)令牌添加速率按時間均勻的向令牌存儲模塊中添加令牌,每來一個數(shù)據(jù)包就從令牌存儲模塊中刪除轉(zhuǎn)發(fā)數(shù)據(jù)包所需要消耗的令牌數(shù),由于令牌是基于令牌添加速率按時間均勻的向令牌存儲模塊中添加的,這樣就能夠避免在每秒開始時間的流量突發(fā),保證同一種類型的數(shù)據(jù)包的丟包率比較均衡,如此,能降低業(yè)務(wù)流量突發(fā),提高業(yè)務(wù)服務(wù)質(zhì)量。
實施例二
本實施例基于實施例一,本實施例中上述預(yù)設(shè)條件包括:令牌存儲模塊中的剩余令牌數(shù)是否大于轉(zhuǎn)發(fā)目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包所需要消耗的令牌數(shù)。
參見圖4,本實施例記載的包每秒流量監(jiān)管方法包括以下步驟:
步驟401、流量監(jiān)管裝置根據(jù)獲取到的每轉(zhuǎn)發(fā)一個預(yù)設(shè)長度的數(shù)據(jù)包所需要消耗的令牌數(shù)及目標(biāo)業(yè)務(wù)的約定流量速率確定令牌添加速率。
步驟402、根據(jù)令牌添加速率勻速的向令牌存儲模塊中添加令牌。
步驟403、接收到目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包時,基于獲取的每轉(zhuǎn)發(fā)一個預(yù)設(shè)長度的數(shù)據(jù)包所需要消耗的令牌數(shù),及目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包的長度,確定轉(zhuǎn)發(fā)目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包所需要消耗的令牌數(shù)。
可選的,流量監(jiān)管裝置在接收到目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包時,首先根據(jù)目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包的特征信息確定當(dāng)前數(shù)據(jù)包的長度。
步驟404、判斷令牌存儲模塊中的剩余令牌數(shù)是否大于轉(zhuǎn)發(fā)目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包所需要消耗的令牌數(shù),若是,則轉(zhuǎn)到步驟406,否則轉(zhuǎn)到步驟405。
步驟405、將目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包丟棄或者緩存;然后,處理結(jié)束。
步驟406、將目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包轉(zhuǎn)發(fā)。
步驟407、從令牌存儲模塊中刪除轉(zhuǎn)發(fā)目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包所需要消耗的令牌數(shù)。
本實施例中,基于令牌存儲模塊中的剩余令牌數(shù)與轉(zhuǎn)發(fā)目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包所需要消耗的令牌數(shù)的不同關(guān)系,對如何實現(xiàn)pps流量監(jiān)管功能的過程進行了詳細說明。
實施例三
基于上述實施例一、實施例二,本實施例記載一種包每秒流量監(jiān)管裝置,針對如下場景提出解決的技術(shù)方案:現(xiàn)有的流量監(jiān)管技術(shù)分別設(shè)置兩套流量監(jiān)管裝置,實現(xiàn)流量監(jiān)管需要占用較多的邏輯資源,同時也增加了芯片在流量監(jiān)管方面的設(shè)計復(fù)雜性。
本實施例記載的包每秒流量監(jiān)管裝置實際上是對現(xiàn)有bps流量監(jiān)管裝置進行了復(fù)用和改進,該改進的bps流量監(jiān)管裝置可以用于實施上述實施例中技術(shù)方案;本實施例針對此情況的處理進行說明。
參見圖5,本實施例記載的包每秒流量監(jiān)管裝置的一個可選的結(jié)構(gòu)示意圖,該包每秒流量監(jiān)管裝置包括:令牌發(fā)生器501、令牌桶502、令牌判別模塊503和令牌更新模塊504;需要說明的是,該包每秒流量監(jiān)管裝置通過令牌發(fā)生器501、令牌桶502、令牌判別模塊503和令牌更新模塊504的相互配合和協(xié)作,可以實現(xiàn)bps流量監(jiān)管需求;在本實施例為了實現(xiàn)pps流量監(jiān)管功能,對該些模塊(令牌發(fā)生器501、令牌桶502、令牌判別模塊503和令牌更新模塊504)的功能進行了增強,具體為,
1)、令牌發(fā)生器501向令牌桶502里面添加令牌的速率與數(shù)據(jù)包個數(shù)進行了關(guān)聯(lián),假設(shè)每轉(zhuǎn)發(fā)一個預(yù)設(shè)長度的數(shù)據(jù)包所需要消耗的令牌數(shù)為10000個,pps監(jiān)管需求(例如目標(biāo)業(yè)務(wù)的約定流量速率)為100pps,則令牌發(fā)生器501需要按照每秒鐘100*10000個令牌的速度,勻速的向令牌桶502添加令牌。
2)、令牌桶502,用于存儲令牌發(fā)生器501添加的令牌;令牌桶502具有至少如下2個參數(shù):剩余令牌數(shù)、桶深(令牌桶的深度),其中,剩余令牌數(shù)用于評估(計算)調(diào)度器還可以發(fā)送多少個數(shù)據(jù)包;桶深,如果令牌桶的剩余令牌數(shù)大于桶深,則令牌丟棄,這里的桶深,代表允許突發(fā)數(shù)據(jù)包的個數(shù),假設(shè)允許最大50個數(shù)據(jù)包的突發(fā),則令牌桶桶深設(shè)置為50*10000。
3)、令牌判別模塊503,用于當(dāng)數(shù)據(jù)包到達時,判斷令牌桶502里的剩余令牌數(shù)是否大于等于轉(zhuǎn)發(fā)一個數(shù)據(jù)包所需要消耗的令牌數(shù)(10000),如果剩余 令牌數(shù)大于等于10000,則轉(zhuǎn)發(fā)該數(shù)據(jù)包,否則將該數(shù)據(jù)包丟棄。
4)、令牌更新模塊504,用于當(dāng)數(shù)據(jù)包通過后,要將令牌桶502里的令牌減去與數(shù)據(jù)包對應(yīng)的令牌數(shù),表示已轉(zhuǎn)發(fā)一個數(shù)據(jù)包,例如將令牌桶502里面的令牌數(shù)減去10000。
本發(fā)明采用以下技術(shù)方案:第一步:利用漏桶(令牌桶)來進行bps監(jiān)管;第二步:如果漏桶需要用來做pps監(jiān)管,則每一個包經(jīng)過漏桶,都是按固定長度進行令牌的判斷以及扣除。
與現(xiàn)有技術(shù)相比,本實施例避免單獨設(shè)計一個pps監(jiān)管模塊,只需要對現(xiàn)有bps流量監(jiān)管裝置進行改進,使得改進的bps流量監(jiān)管模塊既可以支持bps流量監(jiān)管需求,也可以支持pps流量監(jiān)管需求,實現(xiàn)了對bps流量監(jiān)管模塊的高效復(fù)用,減少了模塊設(shè)計面積和復(fù)雜度,能夠節(jié)約實現(xiàn)流量監(jiān)管的邏輯資源,降低了芯片在流量監(jiān)管方面的設(shè)計復(fù)雜性;同時,在實現(xiàn)pps流量監(jiān)管功能的同時,能降低業(yè)務(wù)流量突發(fā),提高業(yè)務(wù)服務(wù)質(zhì)量。
實施例四
與前述實施例一對應(yīng),本實施例針對前述的流量監(jiān)管裝置進行說明,流量監(jiān)管裝置可以用于執(zhí)行本發(fā)明實施例的流量監(jiān)管方法,流量監(jiān)管裝置可以是為實施本發(fā)明實施例而專門設(shè)置的設(shè)備,也可以內(nèi)置于網(wǎng)絡(luò)設(shè)備內(nèi)部,網(wǎng)絡(luò)設(shè)備可以包括網(wǎng)絡(luò)處理器、路由器,參見圖6,本實施例記載的流量監(jiān)管裝置包括:
添加模塊601,用于根據(jù)獲取到的每轉(zhuǎn)發(fā)一個預(yù)設(shè)長度的數(shù)據(jù)包所需要消耗的令牌數(shù)及目標(biāo)業(yè)務(wù)的約定流量速率確定令牌添加速率,及根據(jù)令牌添加速率勻速的向令牌存儲模塊中添加令牌;
響應(yīng)模塊602,用于響應(yīng)于目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包的轉(zhuǎn)發(fā)請求,確定令牌存儲模塊中的剩余令牌數(shù)滿足預(yù)置條件時,將目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包轉(zhuǎn)發(fā),及從令牌存儲模塊中刪除轉(zhuǎn)發(fā)目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包所需要消耗的令牌數(shù)。
與現(xiàn)有的pps流量監(jiān)管技術(shù)在每秒開始的時候基于設(shè)定值配置這一秒允許業(yè)務(wù)通過的數(shù)據(jù)包個數(shù),每來一個數(shù)據(jù)包將允許通過的數(shù)據(jù)包個數(shù)減1相比, 本實施例中,流量監(jiān)管裝置將每秒允許通過的數(shù)據(jù)包數(shù)轉(zhuǎn)化成令牌添加速率,根據(jù)令牌添加速率按時間均勻的向令牌存儲模塊中添加令牌,每來一個數(shù)據(jù)包就從令牌存儲模塊中刪除轉(zhuǎn)發(fā)數(shù)據(jù)包所需要消耗的令牌數(shù),由于令牌是基于令牌添加速率按時間均勻的向令牌存儲模塊中添加的,這樣就能夠避免在每秒開始時間的流量突發(fā),保證同一種類型的數(shù)據(jù)包的丟包率比較均衡,如此,能降低業(yè)務(wù)流量突發(fā),提高業(yè)務(wù)服務(wù)質(zhì)量。
可選的,響應(yīng)模塊602,具體用于確定令牌存儲模塊中的剩余令牌數(shù)大于等于轉(zhuǎn)發(fā)目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包所需要消耗的令牌數(shù)時,將目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包轉(zhuǎn)發(fā)。
可選的,響應(yīng)模塊602,還用于確定令牌存儲模塊中的剩余令牌數(shù)小于轉(zhuǎn)發(fā)目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包所需要消耗的令牌數(shù)時,將目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包丟棄或者緩存。
可選的,響應(yīng)模塊602,還用于確定令牌存儲模塊中的剩余令牌數(shù)超出令牌存儲模塊的深度時,將超出的令牌視為無效。
可選的,響應(yīng)模塊602,還用于:基于獲取的每轉(zhuǎn)發(fā)一個預(yù)設(shè)長度的數(shù)據(jù)包所需要消耗的令牌數(shù),及目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包的長度,確定轉(zhuǎn)發(fā)目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包所需要消耗的令牌數(shù)。
實施例五
本實施例基于實施例四,參見圖7,本實施例記載的流量監(jiān)管裝置也包括圖6中的添加模塊601、響應(yīng)模塊602,并且該些功能模塊也具有實施例四所記載的相應(yīng)作用,在此基礎(chǔ)上,本實施例記載的流量監(jiān)管裝置還包括:
獲取模塊603,用于獲取每轉(zhuǎn)發(fā)一個比特的數(shù)據(jù)所需要消耗的令牌數(shù),基于預(yù)設(shè)長度及獲取的每轉(zhuǎn)發(fā)一個比特的數(shù)據(jù)所需要消耗的令牌數(shù),確定每轉(zhuǎn)發(fā)一個預(yù)設(shè)長度的數(shù)據(jù)包所需要消耗的令牌數(shù)。
在實際應(yīng)用中,上述添加模塊601、響應(yīng)模塊602、獲取模塊603,均可由位于網(wǎng)絡(luò)設(shè)備的中央處理器(cpu)、微處理器(mpu)、數(shù)字信號處理器(dsp)、 或現(xiàn)場可編程門陣列(fpga)等實現(xiàn)。
實施例六
本實施例記載一種計算機可讀介質(zhì),可以為rom(例如,只讀存儲器、flash存儲器、轉(zhuǎn)移裝置等)、磁存儲介質(zhì)(例如,磁帶、磁盤驅(qū)動器等)、光學(xué)存儲介質(zhì)(例如,cd-rom、dvd-rom、紙卡、紙帶等)以及其他熟知類型的程序存儲器;計算機可讀介質(zhì)中存儲有計算機可執(zhí)行指令,當(dāng)執(zhí)行指令時,引起至少一個處理器執(zhí)行包括以下的操作:
根據(jù)獲取到的每轉(zhuǎn)發(fā)一個預(yù)設(shè)長度的數(shù)據(jù)包所需要消耗的令牌數(shù)及目標(biāo)業(yè)務(wù)的約定流量速率確定令牌添加速率,及根據(jù)令牌添加速率勻速的向令牌存儲模塊中添加令牌;
響應(yīng)于目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包的轉(zhuǎn)發(fā)請求,確定令牌存儲模塊中的剩余令牌數(shù)滿足預(yù)置條件時,將目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包轉(zhuǎn)發(fā),及從令牌存儲模塊中刪除轉(zhuǎn)發(fā)目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包所需要消耗的令牌數(shù)。
可選的,根據(jù)獲取到的每轉(zhuǎn)發(fā)一個預(yù)設(shè)長度的數(shù)據(jù)包所需要消耗的令牌數(shù)及目標(biāo)業(yè)務(wù)的約定流量速率確定令牌添加速率之前,方法還包括:
獲取每轉(zhuǎn)發(fā)一個比特的數(shù)據(jù)所需要消耗的令牌數(shù);
基于預(yù)設(shè)長度及獲取的每轉(zhuǎn)發(fā)一個比特的數(shù)據(jù)所需要消耗的令牌數(shù),確定每轉(zhuǎn)發(fā)一個預(yù)設(shè)長度的數(shù)據(jù)包所需要消耗的令牌數(shù)。
可選的,確定令牌存儲模塊中的剩余令牌數(shù)滿足預(yù)置條件時,將目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包轉(zhuǎn)發(fā),包括:
確定令牌存儲模塊中的剩余令牌數(shù)大于等于轉(zhuǎn)發(fā)目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包所需要消耗的令牌數(shù)時,將目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包轉(zhuǎn)發(fā)。
可選的,方法還包括:確定令牌存儲模塊中的剩余令牌數(shù)小于轉(zhuǎn)發(fā)目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包所需要消耗的令牌數(shù)時,將目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包丟棄或者緩存。
可選的,方法還包括:確定令牌存儲模塊中的剩余令牌數(shù)超出令牌存儲模 塊的深度時,將超出的令牌視為無效。
可選的,從令牌存儲模塊中刪除轉(zhuǎn)發(fā)目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包所需要消耗的令牌數(shù)之前,方法還包括:基于獲取的每轉(zhuǎn)發(fā)一個預(yù)設(shè)長度的數(shù)據(jù)包所需要消耗的令牌數(shù),及目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包的長度,確定轉(zhuǎn)發(fā)目標(biāo)業(yè)務(wù)的當(dāng)前數(shù)據(jù)包所需要消耗的令牌數(shù)。
綜上,本發(fā)明實施例中,流量監(jiān)管裝置將每秒允許通過的數(shù)據(jù)包數(shù)轉(zhuǎn)化成令牌添加速率,根據(jù)令牌添加速率按時間均勻的向令牌存儲模塊中添加令牌,每來一個數(shù)據(jù)包就從令牌存儲模塊中刪除轉(zhuǎn)發(fā)數(shù)據(jù)包所需要消耗的令牌數(shù),由于令牌是基于令牌添加速率按時間均勻的向令牌存儲模塊中添加的,這樣就能夠避免在每秒開始時間的流量突發(fā),保證同一種類型的數(shù)據(jù)包的丟包率比較均衡,如此,能降低業(yè)務(wù)流量突發(fā),提高業(yè)務(wù)服務(wù)質(zhì)量。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用硬件實施例、軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器和光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。