專利名稱:一種基于報文緩存的網(wǎng)絡限速方法及裝置的制作方法
技術領域:
本發(fā)明涉及數(shù)據(jù)網(wǎng)絡通信領域中的網(wǎng)絡限速技術,尤其涉及一種基于報文緩存的網(wǎng)絡限速方法和裝置。
背景技術:
隨著網(wǎng)絡的不斷發(fā)展,網(wǎng)絡在人們生活中的地位不斷提升,用戶對網(wǎng)絡的需求不斷發(fā)生變化,要求傳輸?shù)男畔⒎N類越來越多,要求提供的服務質(zhì)量也越來越高。由于各種新型業(yè)務不斷涌現(xiàn),大量的視頻點播、流媒體、網(wǎng)絡游戲等事實業(yè)務以及P2P類型業(yè)務廣泛應用于寬帶網(wǎng)絡,這些新業(yè)務不僅占用帶寬大,而且具有實時性,對網(wǎng)絡傳輸能力和服務質(zhì)量提出了更高的要求,如何更好的控制網(wǎng)絡帶寬利用率,就成了日益重要的題目。
目前存在的網(wǎng)絡限速技術普遍采用令牌桶算法進行報文的限速。如圖I所示,首先,系統(tǒng)按照規(guī)定的速率往令牌桶中填充相應的令牌。其次,當數(shù)據(jù)報文到達時,先從令牌桶中獲取相應令牌,如果能獲取到足夠的令牌,則發(fā)送數(shù)據(jù)報文,同時從令牌桶中減去數(shù)據(jù)報文長度所對應的令牌數(shù);如果不能獲取到足夠令牌則丟棄該報文。由上述分析可知,現(xiàn)有技術的缺點主要表現(xiàn)為(1)將上述現(xiàn)有方法利用到具有傳輸特性的具體應用進行限速時,超過限速速率的報文將被系統(tǒng)丟棄,會導致發(fā)送失敗的報文以原速率進行試探重傳,所以限速后用戶實際使用的帶寬小于限速帶寬,網(wǎng)絡速度變慢。(2)當報文的流入速率遠大于限速速率時,系統(tǒng)中會有大量的報文進行重傳操作,從而大大降低了帶寬利用率。并且限速策略剛生效時,這種重傳操作,使得報文交互速率很難快速的穩(wěn)定在限速值附近,延長了限速后速率的穩(wěn)定時間。(3)當報文流入的速率比限速速率大很多時,令牌桶的值會在很短的時間內(nèi)被消耗完,在回填令牌之前會有大量報文因為沒有令牌而被丟包,所以令牌桶限速后報文輸出的流量非常不均勻。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種基于報文緩存的網(wǎng)絡限速方法及裝置,針對現(xiàn)有的網(wǎng)絡限速技術中帶寬利用率低且限速后的穩(wěn)定時間延長等缺陷,提出了一種新的網(wǎng)絡限速方法和裝置,將未到達發(fā)送時刻的報文進行緩存,然后通過定時觸發(fā)、數(shù)據(jù)包觸發(fā)緩存報文輸出來實現(xiàn)限速功能。本發(fā)明的技術方案如下一種基于報文緩存的網(wǎng)絡限速方法,其包括如下步驟A、根據(jù)網(wǎng)絡限定速率值V和已發(fā)送的第N-I個報文的長度V1,計算第N個報文的可發(fā)送時刻N為大于I的自然數(shù);TNS表示第N個報文的發(fā)送時刻,其中第一個報文的發(fā)送時刻T1為系統(tǒng)賦予的初始值;B、如果第N個報文的到達時刻Tna大于等于所述的發(fā)送時刻TN,則發(fā)送該報文并返回步驟A ;C、如果第N+M (M為大于等于O的整數(shù))個報文的到達時刻T (N+M)A小于所述可發(fā)送時刻TN,則將該第N+M個報文緩存,并在Tn時刻到達時,發(fā)送第N個報文并返回步驟A。一種基于報文緩存的網(wǎng)絡限速裝置,其包括以下單元計時單元,用于根據(jù)網(wǎng)絡限定速率值V和已發(fā)送的第N-I個報文的長度Lim,計算第N個報文的可發(fā)送時刻為大于I的自然數(shù);TNS表不第N個報文的發(fā)送時刻,其中第一個報文的發(fā)送時刻T1為系統(tǒng)賦予的初始值;報文收發(fā)單元,用于,當?shù)贜個報文的到達時刻Tna大于等于所述的發(fā)送時刻Tn時發(fā)送該報文;報文收發(fā)單元,用于,當?shù)贜+M (M為大于等于O的整數(shù))個報文的到達時刻T (N+M)a小于所述可發(fā)送時刻TN,則將該第N+M個報文緩存,并在Tn時刻到達時,發(fā)送第N個報文。本發(fā)明和現(xiàn)有技術相比,解決了傳統(tǒng)令牌桶限速丟包導致的丟包率高,數(shù)據(jù)包重 傳概率大,限速后速率值穩(wěn)定較慢的缺點,有效的提高了網(wǎng)絡帶寬利用率。同時,系統(tǒng)對于不同定時時間的統(tǒng)計功能,復用相同的物理資源來實現(xiàn),能夠節(jié)省物理資源。
圖I為現(xiàn)有技術中一種令牌桶限速流量示意圖。圖2為本發(fā)明中一種基于報文緩存的網(wǎng)絡限速裝置邏輯流程圖。圖3為本發(fā)明實施例中一種定時觸發(fā)機制示意圖。圖4為本發(fā)明實施例中一種基于緩存的定時觸發(fā)機實例制示意圖。圖5為本發(fā)明一種定時觸發(fā)機制示意圖。圖6為本發(fā)明中一種基于緩存的定時觸發(fā)機制實例示意圖。圖7為本發(fā)明中一種報文緩存觸發(fā)機制示意圖。
具體實施例方式本發(fā)明應用于網(wǎng)絡設備上,本發(fā)明的實現(xiàn)可以基于各種常見硬件架構(gòu),通常這樣網(wǎng)絡設備主要包括CPU、內(nèi)存、網(wǎng)絡接口、非易失性存儲器和業(yè)務硬件,其中業(yè)務硬件包括FPGA、CPLD、ASIC等邏輯器件,甚至可能是各種帶有子系統(tǒng)的單板。本發(fā)明需要使用各個硬件與現(xiàn)有技術并無特別的要求,本發(fā)明不再一一詳述。為了更加清楚和明白地表述本發(fā)明,以下結(jié)合實施例對本發(fā)明技術方案進行詳細說明。請參考圖2所示的本發(fā)明中一種基于報文傳輸?shù)木W(wǎng)絡限速裝置邏輯結(jié)構(gòu)示意圖,所述網(wǎng)絡限速裝置包括計時單元和報文收發(fā)單元。請進一步參照圖3以及圖4,所述的基于報文緩存的網(wǎng)路限速裝置在網(wǎng)絡設備上運行時,其執(zhí)行其對應的方法包括如下步驟步驟I、在同一種應用報文交互比較頻繁時,以第一個報文的到來時刻作為初始值,記為Tla,其發(fā)送時刻為報文發(fā)送的初始值T1,由于系統(tǒng)中第一個報文到達時立即發(fā)送,故可以認為Tla = T1,計時單元根據(jù)網(wǎng)絡限定速率值V和第一個報文的長度L1,計算第2個報文的可發(fā)送時刻T2=UL1Z^系統(tǒng)刷新定時器的時間為U/V,并以報文的可發(fā)送時刻T2為地址存儲緩存地址,并在定時器超時時確定T2的到達;本步驟由所述計時單元執(zhí)行。舉例而言,在一種實施例中當一種具體應用的網(wǎng)絡限速值為IMb/s時,發(fā)送一個128B的小包需要消耗977us,在同一種應用報文交互比較頻繁的時間段內(nèi),以第一個報文到來的時刻作為時間軸的初始值O,由計時單元計算第二個報文的可發(fā)送時間T2=0+128B/(IMb/s) =977us,系統(tǒng)刷新定時器的時間為977us,并在定時器超時時確定可以發(fā)送第二個報文。步驟2、如果第二個報文在T2或T2時刻之后到達報文收發(fā)單元,則報文收發(fā)單元輸出第二個報文,然后返回步驟1,由計時單元計算第三個報文的可發(fā)送時刻T3 ;例如在步驟I中,如圖3所示,如果第二個報文在977us或大于977us時到達報文收發(fā)單元,則報文收發(fā)單元輸出第二個報文,且計時單元計算第三個報文的可發(fā)送時間T3。步驟3、如果第二個報文及其后續(xù)的M (Μ為大于等于O的整數(shù))個報文在T2時刻之前到達報文收發(fā)單元,判斷緩存隊列是否有緩存空間,若有,則緩存報文,若否,則將報文做丟棄處理,并在T2時刻到達時觸發(fā)第二個報文輸出,并計算第三個報文的可發(fā)送時刻T3 ;前述步驟2以及步驟3由報文收發(fā)單元執(zhí)行。例如在步驟I實施例中,如圖4所示,考慮到用戶有可能會在短時間內(nèi)發(fā)送大量報文的情況,因此需要考慮緩存可能溢出的處理。在優(yōu)選的實施方式中,如果第二個及其后續(xù)報文在977us之前到達報文收發(fā)單元,也就是說此時需要緩存報文,在緩存報文之前系統(tǒng)先判斷緩存隊列是否有緩存空間,若有,則緩存報文,若否,則將報文做丟棄處理,977us到達時觸發(fā)輸出第二個報文,計時單元計算第三個報文的可發(fā)送時刻T3,之后以此類推。請參考圖5以及圖6,本發(fā)明將上述網(wǎng)絡限速方法步驟抽象歸納為步驟Α、當?shù)贜-I個報文發(fā)送時,計時單元根據(jù)網(wǎng)絡限定速率值V和已發(fā)送的第N-I個報文的長度Ln_1;計算第N個報文的可發(fā)送時刻Tn=T0m^V1ZX N為大于I的自然數(shù);TNS表示第N個報文的發(fā)送時刻,其中第一個報文的發(fā)送時刻T1為系統(tǒng)賦予的初始值, 在計算出Tn時刷新定時器的定時時間,所述定時時間為并在定時器超時時確定所述Tn時刻到達;本步驟有計時單元執(zhí)行。步驟B、報文收發(fā)單元接收報文并判斷輸出,如果第N個報文的到達時刻Tna大于等于所述的發(fā)送時刻TN,報文收發(fā)單元發(fā)送該報文并返回步驟A。步驟C、報文收發(fā)單元接收報文并判斷輸出,如果第N+M (M為大于等于O的整數(shù))個報文的到達時刻T (N+M)A小于所述可發(fā)送時刻Tn,判斷緩存隊列是否有緩存空間,若有,則緩存報文,若無,則報文做丟棄處理,并在Tn時刻到達時,報文收發(fā)單元發(fā)送第N個報文并返回步驟A ;所述步驟B和步驟C由報文收發(fā)單元完成。在優(yōu)選的實施方式中,報文收發(fā)單元可以根據(jù)第N個報文的可發(fā)送時間來確定緩存地址在內(nèi)存中的存放位置,這樣可以大大提高從緩存中讀取報文的速度。還是基于上述的例子而言,報文收發(fā)單元可以在緩存第二個報文時將其緩存到緩存中的某個地址,然后將該緩存地址的值保存在內(nèi)存中,而內(nèi)存的地址恰好與第二個報文的可發(fā)送時間T2是對應的,在一種簡單的實施方式中,完全可以使用977這一數(shù)值作為內(nèi)存的地址。這樣一來,當定時器超時的時候,也就是需要發(fā)送第二個報文的時候,系統(tǒng)可以快速地通過977來尋找到內(nèi)存中緩存地址,再根據(jù)緩存地址讀出第二個報文然后發(fā)送出去。在優(yōu)選的方式中,上述所指的緩存隊列對應到具有交互性的應用,不同的應用對應于不同的緩存隊列,或者所述緩存隊列對應到不同用戶的應用,每個緩存隊列對應于特定用戶的一個特定應用。在以上定時觸發(fā)實施方式的基礎上,本發(fā)明還提供另一種優(yōu)化實施方式,該實施方式可以與以上定時觸發(fā)的實施方式結(jié)合使用,主要是防止定時器精度不夠造成報文發(fā)送不及時的問題。
請參考圖7,本發(fā)明中當限定速率達到百兆級別時,報文發(fā)送時間則相應到達ns級別,此時對定時器的精度要求很高,考慮系統(tǒng)調(diào)用定時器需要耗費一定的時間,采用定時觸發(fā)可能會產(chǎn)生誤差。本實施方式中系統(tǒng)會自動采用報文緩存觸發(fā)機制。當?shù)贜+Q(Q為大于等于I的自然數(shù))個報文的到達時間T (N+Q)A大于可發(fā)送時刻Tn時,這說明此時定時器由于前述精度與調(diào)用時間的原因沒有及時觸發(fā)第N個報文發(fā)送,此時系統(tǒng)發(fā)現(xiàn)T (N+Q)A大于可發(fā)送時刻Tn,則可以緩存當前的新報文并觸發(fā)緩存隊列中第一個報文(也就是第N個報文)的輸出;當限定速率達到百兆級別時,在同樣的限速策略下報文進入系統(tǒng)的速率可以很好的得到保證,可以有效的執(zhí)行網(wǎng)絡限速技術,減少丟包個數(shù)和報文重傳數(shù)。需要說明的是,本步驟的執(zhí)行是對定時觸發(fā)機制的一個補充,定時觸發(fā)機制一般已經(jīng)可以滿足現(xiàn)有的限速要求,且本步驟的執(zhí)行與系統(tǒng)裝置和定時器的精度配置有關。如果一個系統(tǒng)的定時精度較高,而限速的級別又不是非常高的時候,其完全可以只采取定時觸發(fā)的機制,這是因為如果定時觸發(fā)機制總是能夠及時觸發(fā)緩存中的報文輸出,也就是說T (N+Q)A大于可發(fā)送時刻Tn這個條件絕大部分情況都無法被滿足,那么報文觸發(fā)機制會一直無法生效。本發(fā)明利用對同一種網(wǎng)絡應用超出限時速率的報文先進行緩存,到達發(fā)送時刻時 再進行發(fā)送,降低了現(xiàn)有技術中由于令牌數(shù)目不夠?qū)е聢笪谋粊G棄后報文重傳的概率,能夠有效地提高了帶寬的利用率,并有效的提高限速后速率值的穩(wěn)定性。本發(fā)明系統(tǒng)對于不同的定時時間采用相同的物理資源來實現(xiàn),能夠有效的節(jié)省物理資源。本發(fā)明中,為了避免硬件定時觸發(fā)在高速率級別限速的情況下產(chǎn)生時間精度誤差,采用了報文緩存觸發(fā)機制,能夠有效的減少硬件實現(xiàn)的壓力。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應包含在本發(fā)明保護的范圍之內(nèi)。
權利要求
1.一種基于報文緩存的網(wǎng)絡限速方法,其特征在于,包括步驟 A、根據(jù)網(wǎng)絡限定速率值V和已發(fā)送的第N-I個報文的長度Lim,計算第N個報文的可發(fā)送時刻其中N為大于I的自然數(shù);TNS表示第N個報文的發(fā)送時刻,其中第一個報文的發(fā)送時刻T1為系統(tǒng)賦予的初始值; B、如果第N個報文的到達時刻Tna大于等于所述的可發(fā)送時刻TN,則發(fā)送該報文,返回步驟A處理第N+1個報文; C、如果第N+M(M為大于等于O的整數(shù))個報文的到達時刻T (N+M)A小于所述可發(fā)送時刻TN,則將該第N+M個報文緩存,并在Tn時刻到達時,發(fā)送第N個報文并返回步驟A處理第N+1個報文。
2.根據(jù)權利要求I所述的方法,其特征在于,當?shù)贜+Q(Q為大于等于I的自然數(shù))個報文的到達時間T (N+M)A大于可發(fā)送時刻Tn時,緩存新報文并觸發(fā)緩存隊列中第一個報文輸出。
3.根據(jù)權利要求2所述的方法,其特征在于,所述方法還包括 D、在計算出1時刷新定時器的定時時間,所述定時時間為LnV^并在定時器超時時確定所述Tn時刻到達。
4.根據(jù)權利要求3所述的方法,其特征在于,其中步驟C所述將報文緩存具體包括將該報文的緩存地址保存在內(nèi)存中,其中保存該緩存地址的內(nèi)存地址與所述定時時間對應;所述從緩存中讀取第N個報文包括根據(jù)定時時間對內(nèi)存尋址并從內(nèi)存中獲得緩存地址,然后讀取緩存地址中保存的第N個報文。
5.根據(jù)權利要求4所述的方法,其特征在于,所述緩存隊列對應到具有交互性的應用,其中不同的應用對應于不同的緩存隊列,或者所述緩存隊列對應到不同用戶的特定應用。
6.一種基于報文緩存的網(wǎng)絡限速裝置,其特征在于,包括 計時單元,用于根據(jù)網(wǎng)絡限定速率值V和已發(fā)送的第N-I個報文的長度L1^1,計算第N個報文的可發(fā)送時刻N為大于I的自然數(shù);TNS表不第N個報文的發(fā)送時亥IJ,其中第一個報文的發(fā)送時刻T1為系統(tǒng)賦予的初始值; 報文收發(fā)單元,用于在第N個報文的到達時刻Tna大于等于所述的發(fā)送時刻Tn時發(fā)送該報文,返回計時單元處理第N+1個報文; 報文收發(fā)單元,進一步用于在第N+M (M為大于等于O的整數(shù))個報文的到達時刻T (N+M)a小于所述可發(fā)送時刻Tn時,將該第N+M個報文緩存,并在Tn時刻到達時發(fā)送第N個報文,返回計時單元處理第N+1個報文。
7.根據(jù)權利要求6所述的裝置,其特征在于,所述報文收發(fā)單元進一步用于在第N+Q(Q為大于等于I的自然數(shù))個報文的到達時間T (N+M)A大于可發(fā)送時刻Tn時,緩存新報文并觸發(fā)緩存隊列中第一個報文輸出。
8.根據(jù)權利要求7所述的裝置,其特征在于,所述計時單元進一步用于在計算出Tn時刷新定時器的定時時間,所述定時時間為Lh/V,并在定時器超時時確定所述Tn時刻到達。
9.根據(jù)權利要求8所述的裝置,其特征在于,報文收發(fā)單元進一步用于在將報文緩存到緩存中的時候,將該報文的緩存地址保存在內(nèi)存中,其中保存該緩存地址的內(nèi)存地址與所述定時時間對應;從緩存中讀取第N個報文時根據(jù)定時時間對內(nèi)存尋址并從內(nèi)存中獲得緩存地址,然后讀取緩存地址中保存的第N個報文。
10.根據(jù)權利要求9所述的裝置,其特征在于,所述緩存隊列對應到具有交互性的應 用,不同的應用對應于不同的緩存隊列,或者所述緩存隊列對應到不同用戶的特定應用。
全文摘要
本發(fā)明公開了一種基于報文緩存的網(wǎng)絡限速方法及裝置。通過將未到達發(fā)送時刻的報文進行緩存,然后通過定時觸發(fā)和報文觸發(fā)緩存報文,實現(xiàn)網(wǎng)絡限速功能。通過本發(fā)明,解決了傳統(tǒng)令牌桶限速丟包導致的丟包率高,數(shù)據(jù)包重傳概率大,限速后速率值穩(wěn)定較慢的缺點,有效的提高了網(wǎng)絡帶寬利用率。
文檔編號H04L12/861GK102882809SQ20121041927
公開日2013年1月16日 申請日期2012年10月26日 優(yōu)先權日2012年10月26日
發(fā)明者劉彥靜 申請人:杭州迪普科技有限公司