基于令牌桶的流量監(jiān)管方法及裝置的制造方法
【技術領域】
[0001 ] 本發(fā)明涉及通訊技術領域,尤其涉及一種基于令牌桶的流量監(jiān)管方法及裝置。
【背景技術】
[0002]目前,分組交換設備通常采用流量監(jiān)管(Policing)對業(yè)務流的速率進行限制,以實現(xiàn)對每個業(yè)務流的帶寬控制。圖1是現(xiàn)有技術中典型的流量監(jiān)管的應用示意圖,如圖1所示,F(xiàn)TP (File Transfer Protocol,文件傳輸協(xié)議)客戶端PCllOl通過分組交換設備A102和分組交換設備B103從FTP服務器PC2104進行FTP下載的應用,分組交換設備A102配置了基于令牌桶的流量限速功能,如果分組交換設備A102中的流量監(jiān)管功能所能夠配置的承諾突發(fā)長度CBS或超額突發(fā)長度EBS不是足夠大(即令牌桶桶深的可設置范圍的最大值過小),則不能保證客戶的平均下載速率。
[0003]現(xiàn)有技術中基于令牌桶的流量監(jiān)管方法通常包括以下兩種:(一)流量限速算法由硬件微引擎實現(xiàn);(二)流量限速算法由軟件算法模塊實現(xiàn)。然而,當流量限速算法由硬件微引擎實現(xiàn)時,由于限速參數(shù)區(qū)中CBS/EBS的位寬固定,從而限定了最大值(即限定了令牌桶桶深的可設置范圍的最大值),當CBS/EBS取最大值仍然無法滿足限速需求時,就會出現(xiàn)不能保證客戶的平均下載速率的情況。而當流量限速算法由軟件算法模塊實現(xiàn)時,限速參數(shù)區(qū)中CBS/EBS的位寬可變,當CBS/EBS取最大值仍然無法滿足需求時,可以通過擴展限速參數(shù)區(qū)中CBS/EBS的位寬已達到滿足限速需求的目的,但是該方法是以犧牲較大存儲空間為代價的,當存儲空間不夠時,則難以擴展限速參數(shù)區(qū)中CBS/EBS的位寬(即難以擴展令牌桶桶深)。而常用的按比例控制令牌發(fā)放速度和令牌領取速度的擴展CBS/EBS方法,雖然可以解決上述方法(一)和方法(二)的不足之處,但是該方法的限速精度較低。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的主要目的是提供一種具有相同發(fā)明構思的基于令牌桶的流量監(jiān)管方法和裝置,旨在提聞限速精度。
[0005]為了達到上述目的,本發(fā)明提出一種基于令牌桶的流量監(jiān)管方法,該方法包括以下步驟:
[0006]獲取當前接收報文的長度值和限速參數(shù)索引;
[0007]將獲取到的當前接收報文的長度值加上前一個接收報文的長度值的尾數(shù),得到新的報文長度值;
[0008]根據(jù)所述新的報文長度值,按照預置計算規(guī)則,獲得新的報文尾數(shù)以及當前需要限速的實際報文長度值;
[0009]根據(jù)所述當前需要限速的實際報文長度值及所述限速參數(shù)索引,獲得限速結果;
[0010]根據(jù)所述限速結果及預置限速條件,對所述當前接收報文進行限速處理,并將所述新的報文尾數(shù)或所述上一次接收報文的長度值的尾數(shù)作為當前接收報文的長度值的尾數(shù)。
[0011]優(yōu)選地,所述根據(jù)所述限速結果及預置限速條件,對所述當前接收報文進行限速處理,并將所述新的報文尾數(shù)或所述上一次接收報文的長度值的尾數(shù)作為當前接收報文的長度值的尾數(shù)的步驟具體為:
[0012]當所述限速結果滿足預置限速條件時,將所述當前接收報文進行轉(zhuǎn)發(fā)處理,并將所述新的報文尾數(shù)作為當前接收報文的長度值的尾數(shù);
[0013]當所述限速結果不滿足預置限速條件時,將所述當前接收報文進行丟棄處理,并將所述前一個接收報文的長度值的尾數(shù)作為當前接收報文的長度值的尾數(shù)。
[0014]優(yōu)選地,所述將獲取到的當前接收報文的長度值加上前一個接收報文的長度值的尾數(shù),得到新的報文長度值的步驟之前還包括:
[0015]獲取前一個接收報文的長度值的尾數(shù)。
[0016]優(yōu)選地,所述根據(jù)所述新的報文長度值,按照預置計算規(guī)則,獲得新的報文尾數(shù)以及當前需要限速的實際報文長度值的步驟之前還包括:
[0017]獲取令牌桶桶深參數(shù),所述令牌桶桶深參數(shù)包括尾數(shù)掩碼值和報文長度移位值。
[0018]優(yōu)選地,所述根據(jù)所述新的報文長度值,按照預置計算規(guī)則,獲得新的報文尾數(shù)以及當前需要限速的實際報文長度值的步驟具體為:
[0019]將所述新的報文長度值和所述尾數(shù)掩碼值做與運算,獲得新的報文尾數(shù);按照所述報文長度移位值,對所述新的報文長度值做右移運算,獲得當前需要限速的實際報文長度值。
[0020]本發(fā)明還提出一種基于令牌桶的流量監(jiān)管裝置,該裝置包括接收模塊、采集模塊、計算模塊、限速模塊、決策模塊及發(fā)送模塊;其中,
[0021]所述接收模塊,用于接收以太網(wǎng)報文;
[0022]所述采集模塊,用于獲取當前接收報文的長度值和限速參數(shù)索引;
[0023]所述計算模塊,將獲取到的當前接收報文的長度值加上前一個接收報文的長度值的尾數(shù),得到新的報文長度值;以及根據(jù)所述新的報文長度值,按照預置計算規(guī)則,獲得新的報文尾數(shù)以及當前需要限速的實際報文長度值;
[0024]限速模塊,用于根據(jù)所述當前需要限速的實際報文長度值及所述限速參數(shù)索引,獲得限速結果;
[0025]所述決策模塊,用于根據(jù)所述限速結果及預置限速條件,將所述新的報文尾數(shù)或所述前一個接收報文的長度值的尾數(shù)作為當前接收報文的長度值的尾數(shù);
[0026]所述發(fā)送模塊,用于根據(jù)所述限速結果及預置限速條件,對所述當前接收報文進行轉(zhuǎn)發(fā)或丟棄處理。
[0027]優(yōu)選地,所述決策模塊具體用于:
[0028]當所述限速結果滿足預置限速條件時,將所述新的報文尾數(shù)作為當前接收報文的長度值的尾數(shù);
[0029]當所述限速結果不滿足預置限速條件時,將所述前一個接收報文的長度值的尾數(shù)作為當前接收報文的長度值的尾數(shù)。
[0030]優(yōu)選地,所述發(fā)送模塊具體用于:
[0031]當所述限速結果滿足預置限速條件時,將所述當前接收報文進行轉(zhuǎn)發(fā)處理;
[0032]當所述限速結果不滿足預置限速條件時,將所述當前接收報文進行丟棄處理。
[0033]優(yōu)選地,所述采集模塊還用于:
[0034]獲取前一個接收報文的長度值的尾數(shù);以及獲取令牌桶桶深參數(shù),所述令牌桶桶深參數(shù)包括尾數(shù)掩碼值和報文長度移位值。
[0035]優(yōu)選地,所述計算模塊具體用于:
[0036]將獲取到的當前接收報文的長度值加上前一個接收報文的長度值的尾數(shù),得到新的報文長度值;以及將所述新的報文長度值和所述尾數(shù)掩碼值做與運算,獲得新的報文尾數(shù);并按照所述報文長度移位值,對所述新的報文長度值做右移運算,獲得當前需要限速的實際報文長度值。
[0037]本發(fā)明提出的基于令牌桶的流量監(jiān)管方法,首先獲取當前接收報文的長度值和限速參數(shù)索引,并將獲取到的當前接收報文的長度值加上前一個接收報文的長度值的尾數(shù),得到新的報文長度值;然后根據(jù)得到的新的報文長度值,按照預置計算規(guī)則,獲得新的報文尾數(shù)以及當前需要限速的實際報文長度值;接著,根據(jù)當前需要限速的實際報文長度值及之前獲取的限速參數(shù)索引,獲得限速結果;最后,根據(jù)限速結果及預置限速條件,對當前接收報文進行限速處理,并將新的報文尾數(shù)或上一次接收報文的長度值的尾數(shù)作為當前接收報文的長度值的尾數(shù)。本發(fā)明提高了限速精度。
【附圖說明】
[0038]圖1是現(xiàn)有技術中典型的流量監(jiān)管的應用示意圖;
[0039]圖2是本發(fā)明基于令牌桶的流量監(jiān)管方法一實施例的流程示意圖;
[0040]圖3是本發(fā)明基于令牌桶的流量監(jiān)管方法另一實施例的流程示意圖;
[0041]圖4是本發(fā)明基于令牌桶的流量監(jiān)管裝置一實施例的模塊結構原理圖。
[0042]本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結合實施例,參照附圖做進一步說明。
【具體實施方式】
[0043]以下結合說明書附圖及具體實施例進一步說明本發(fā)明的技術方案。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0044]本發(fā)明提出一種基于令牌桶的流量監(jiān)管方法。
[0045]參照圖2,