專利名稱:一種基于網絡處理器的流量整形實現方法及其裝置的制作方法
技術領域:
本發(fā)明涉及數據通訊領域中寬帶通訊技術,特別是涉及一種基于網絡處理 器的流量整形實現方法及其裝置。
背景技術:
隨著Internet的普及和商用化,運營商日益希望對不同的業(yè)務類型進行劃 分和對用戶的服務等級級別進行更有力的控制,提供具有個性化的寬帶數據服 務。實現這些差別服務(Quality of Service, QOS)的關鍵技術之一是流量整形。 流量整形可以對用戶不規(guī)則或不符合預定流量特性的流量進行整形,使用戶的 流量更加平滑,以利于網絡上下游之間的帶寬匹配。相對于其它帶寬控制方式, 流量整形需要將用戶超過預定帶寬的流量暫時緩存下來,占用較大的隊列和內 存資源。在沒有專甩的TM芯片的情況,實現流量整形難度較大。發(fā)明內容本發(fā)明所要解決的技術問題在于提供一種基于網絡處理器的流量整形實 現方法及其裝置,用于解決現有技術中在沒有專用的TM芯片的情況,實現流 量整形難度較大的問題。為了實現上述目的,本發(fā)明提供了一種基于網絡處理器的流量整形實現方法,其特征在于,包括隊列管理步驟,用于進行報文的入隊、出隊和隊列擁塞處理; 隊列調度步驟,用于根據報文調度策略進行基于端口和業(yè)務的隊列調度; 業(yè)務流量整形步驟,用于完成不同業(yè)務報文的流量計算,根據報文流量確定是否延緩業(yè)務的隊列調度;端口流量整形步驟,用于將出業(yè)務隊列的報文入端口隊列,進行基于端口的隊列調度,完成端口的流量計算,根據端口流量延緩端口的隊列調度或發(fā)送出端口隊列的報文。所述的基于網絡處理器的流量整形實現方法,其中,所述業(yè)務流量整形步 驟中,進一步包括獲取業(yè)務當前允許發(fā)送的報文長度,并比較該業(yè)務當前允許發(fā)送的報文長 度與入業(yè)務隊列的報文長度的步驟若該業(yè)務當前允許發(fā)送的報文長度大于入業(yè)務隊列的報文長度,則轉入所 述隊列調度步驟,進行端口的隊列調度;若該業(yè)務當前允許發(fā)送的報文長度小于或等于入業(yè)務隊列的報文長度,則 設置業(yè)務延緩調度標志,延緩端口的隊列調度。所述的基于網絡處理器的流量整形實現方法,其中,所述隊列調度歩驟中, 進一步包括獲取一個端口,并判斷該端口是否有報文且未設置業(yè)務延緩調度標志的步驟若該端口有報文且未設置業(yè)務延緩調度標志,則調度該端口下的業(yè)務隊 列,并進一步判斷該業(yè)務隊列是否有報文且未設置業(yè)務延緩調度標志,若是, 則將該報文調出該業(yè)務隊列;否則調度該端口下的下一個業(yè)務隊列;若該端口無報文或設置業(yè)務延緩調度標志,則調度下一個端口 。 所述的基于網絡處理器的流量整形實現方法,其中,所述端口流量整形步驟中,進一步包括將調出所述業(yè)務隊列的報文入端口隊列,獲取該端口當前允許發(fā)送的報文 長度,并進一步比較該端口當前允許發(fā)送的報文長度與入端口隊列的報文長度 的步驟若該端口當前允許發(fā)送的報文長度大于入端口隊列的報文長度,則進一步 判斷該端口的隊列長度是否大于配置的隊列長度閾值,若大于,則設置端口延 緩調度標志,延緩該端口的隊列調度,否則調度下一個端口隊列;若該端口當前允許發(fā)送的報文長度小于或等于入端口隊列的報文長度,則 在該報文出端口隊列后發(fā)送。所述的基于網絡處理器的流量整形實現方法,其中,所述隊列調度歩驟中, 進一步包括判斷該端口下的所有業(yè)務隊列是否都已調度的步驟,若是,則獲取下一個 端口;否則繼續(xù)進行隊列調度。所述的基于網絡處理器的流量整形實現方法,其中,進一步包括 根據業(yè)務的承諾信息速率獲取該業(yè)務當前允許發(fā)送的報文長度的歩驟;和/或根據該端口配置的承諾信息速率獲取該端口當前允許發(fā)送的報文長度的 步驟。為了實現上述目的,本發(fā)明提供了一種基于網絡處理器的流量整形實現裝 置,其特征在于,包括隊列管理模塊,用于進行報文的入隊、出隊和隊列擁塞處理;隊列調度模塊,連接所述隊列管理模塊,用于根據所述隊列管理模塊的報 文調度策略進行基于端口和業(yè)務的隊列調度;業(yè)務流量整形模塊,連接所述隊列管理模塊、所述隊列調度模塊,用于完 成不同業(yè)務報文的流量計算,根據報文流量確定是否通知所述隊列調度模塊延 緩業(yè)務的隊列調度;端口流量整形模塊,連接所述隊列管理模塊、所述隊列調度模塊,用于將 出業(yè)務隊列的報文入端口隊列,進行基于端口的隊列調度,完成端口的流量計 算,根據端口流量通知所述隊列調度模塊延緩端口的隊列調度或發(fā)送出端口隊 列的報文。所述的基于網絡處理器的流量整形實現裝置,其中,所述業(yè)務流量整形模 塊獲取業(yè)務當前允許發(fā)送的報文長度,并比較該業(yè)務當前允許發(fā)送的報文長度 與入業(yè)務隊列的報文長度若該業(yè)務當前允許發(fā)送的報文長度大于入業(yè)務隊列的報文長度,則通知所 述隊列調度模塊進行端口的隊列調度;或若該業(yè)務當前允許發(fā)送的報文長度小于或等于入業(yè)務隊列的報文長度,則 設置業(yè)務延緩調度標志,通知所述隊列調度模塊延緩端口的隊列調度。所述的基于網絡處理器的流量整形實現裝置,其中,所述隊列調度模塊獲 取一個端口 ,并判斷該端口是否有報文且未設置業(yè)務延緩調度標志若該端口有報文且未設置業(yè)務延緩調度標志,則調度該端口下的業(yè)務隊 列,并進一步判斷該業(yè)務隊列是否有報文且未設置業(yè)務延緩調度標志,若是, 則通知所述隊列管理模塊將該報文調出該業(yè)務隊列,所述端口流量整形模塊再 將該報文入端口隊列,否則調度該端口下的下一個業(yè)務隊列;務延緩調度標志,則調度下一個端口 。所述的基于網絡處理器的流量整形實現裝置,其中,所述端口流量整形模 塊在將該報文入端口隊列后,獲取該端口當前允許發(fā)送的報文長度,并比較該 端口當前允許發(fā)送的報文長度與入端口隊列的報文長度若該端口當前允許發(fā)送的報文長度大于入端口隊列的報文長度,則進一步 判斷該端口的隊列長度是否大于配置的隊列長度閾值,若大于,則設置端口延 緩調度標志,延緩該端口的隊列調度,否則調度下一個端口隊列;若該端口當前允許發(fā)送的報文長度小于或等于入端口隊列的報文長度,則 在該報文出端口隊列后發(fā)送。本發(fā)明的有益技術效果與現有技術相比,本發(fā)明提供了一種不借助TM芯片,采用網絡處理器實 現端口和業(yè)務二級流量整形的實現方法,其通過隊列管理模塊、隊列調度模塊、 業(yè)務流量整形模塊和端口流量整形模塊等四個模塊的協調和配合,共同實現基 于端口和業(yè)務二級流量整形;本發(fā)明僅僅提出了實現流量整形的架構,并沒有 規(guī)定具體的算法和實現細節(jié),可根據不同的業(yè)務需要采用不同的算法。以下結合附圖和具體實施例對本發(fā)明進行詳細描述,但不作為對本發(fā)明的 限定。
圖1是本發(fā)明網絡處理器流量整形的裝置架構示意圖; 圖2是本發(fā)明網絡處理器流量整形處理方法的流程圖。
具體實施方式
下面結合附圖和具體實施方式
對本發(fā)明的技術方案作進一步更詳細的描述。如圖1所示,是本發(fā)明網絡處理器流量整形的裝置架構示意圖。該裝置 100包括隊列管理模塊IO、隊列調度模塊20、業(yè)務流量整形模塊30和端口 流量整形模塊40。隊列管理模塊10,用于根據數據報文的不同業(yè)務分類進行報文的入隊、 出隊和隊列擁塞處理。具體地,首先隊列管理模塊IO根據不同的業(yè)務分類策略將數據報文入不同的隊列;收到隊列調度模塊20的出隊消息后,隊列管理模塊IO將報文出隊, 并將出隊的報文傳遞到端口流量整形模塊40,通知端口流量整形模塊40處理 出隊的報文;當發(fā)生隊列擁塞時,可以有選擇的采用尾部丟棄(TaiI Drop, TD), 或早期隨機丟棄算法(Random Early Detection, RED)或加權早期隨機檢測算 法(Weighted Random Early Detection, WRED)進行擁塞控制。隊列調度模塊20,連接隊列管理模塊IO,用于根據調度策略進行基于端 口和業(yè)務的隊列調度。具體地,隊列調度模塊20根據用戶的配置采用PQ (Priority Queuing,優(yōu) 先隊列)、WFQ (Weighted Fair Queuing,加權公平隊列)或LLQ (Low Latency Queuing,低延遲隊列)等調度算法進行隊列調度,并根據業(yè)務流量整形模塊 30或端口流量整形模塊40傳遞的信息延緩特定業(yè)務和端口的隊列調度。業(yè)務流量整形模塊30,連接隊列管理模塊IO、隊列調度模塊20,用于完 成不同業(yè)務報文的流量計算,確定是否延緩業(yè)務隊列調度。當業(yè)務的流量大于 預先配置的業(yè)務流量整形帶寬時,延緩業(yè)務報文的發(fā)送,通知隊列調度模塊 20延緩該業(yè)務隊列的調度。進一步地,業(yè)務流量整形模塊30接收隊列管理模塊10的入隊消息后,將 入隊消息和是否延緩業(yè)務隊列調度消息通知隊列調度模塊20;進一步地,業(yè)務流量整形模塊30根據業(yè)務的承諾信息速率(Committed Information Rate, CIR)計算當前允許發(fā)送的報文長度。并將當前允許發(fā)送的 報文長度與接收到的報文長度進行比較,如果當前允許發(fā)送的報文長度大于接 收的報文長度,通知隊列調度模塊20進行端口的隊列調度,否則設置業(yè)務延 緩發(fā)送標志,發(fā)送延緩業(yè)務隊列調度消息,通知隊列調度模塊20延緩端口的 隊列調度。業(yè)務流量整形模塊30可采用的流量計算和控制算法很多,如SRTCM和 TRTCM。本發(fā)明的裝置100框架,并不限定特定的算法。端口流量整形模塊40,連接隊列管理模塊10、隊列調度模塊20,負責將 報文進入不同的端口隊列,進行基于端口的隊列調度;并進行端口的流量計算, 決定報文是否延緩調度。進一步地,端口流量整形模塊40接收隊列管理模塊10出業(yè)務隊列的報文,根據端口配置的承諾信息速率CIR計算端口當前允許發(fā)送的報文長度。進一步地,將端口當前允許發(fā)送的報文長度與接收到的報文長度進行比 較,如果當前允許發(fā)送的報文長度大于接收的報文長度,調度該端口下的報文出隊,并計算隊列相關參數;如果端口隊列長度大于配置的隊列長度閥值,設 置端口延緩調度標志,通知隊列調度模塊20延緩該端口的調度,如果小于或 等于配置的隊列長度閥值,將出隊的報文發(fā)送出去。如圖2所示,是本發(fā)明網絡處理器流量整形處理方法的流程圖。結合圖1, 該流程描述了網絡處理器流量整形處理方法的具體實施流程和各模塊之間消息交互,具體如下步驟S201,對數據報文進行業(yè)務分類;步驟S202,隊列管理模塊IO根據不同的業(yè)務類型,把接收的數據包加入 不同的優(yōu)先級隊列(即將數據報文送入業(yè)務隊列),并通知業(yè)務流量整形模塊 30,轉入步驟S204;步驟S203,隊列管理模塊10將報文出業(yè)務隊列,進入步驟S213;步驟S204,業(yè)務流量整形模塊30根據配置計算不同業(yè)務當前允許發(fā)送的 報文長度,進入歩驟S205;該步驟中,業(yè)務流量盤形模塊30根據不同業(yè)務的承諾信息速率 (Committed Information Rate, CIR)計算不同業(yè)務當前允許發(fā)送的報文長度;歩驟S205,業(yè)務流量整形模塊30將當前允許發(fā)送的報文長度與接收到的 入隊的報文長度進行比較,判斷當前允許發(fā)送的報文長度是否大于入隊的報文 長度;若是,通知隊列調度模塊20,并轉入步驟S207;否則進入步驟S206;歩驟S206,業(yè)務流量整形模塊30設置業(yè)務隊列延緩調度標志,通知隊列 調度模塊20;步驟S207,隊列調度模塊20進行基于端口的隊列調度,獲取一個端口, 并進入步驟S208;歩驟S208,隊列調度模塊20判斷端口是否有報文,且是否沒有設置延緩 調度標志(即允許調度);如果端口有報文且沒有設置延緩調度標志,則進入 步驟S209;如果端口沒有報文需要調度或設置延緩調度標志(延緩調度), 則轉入步驟S207,調度下一個端口;步驟S209,隊列調度模塊20進行業(yè)務隊列調度,調度該端口的下一個業(yè)務隊列,獲取該端口下的一個業(yè)務,進入步驟S210;步驟S210,隊列調度模塊20判斷業(yè)務隊列是否報文,且是否沒有設置延 緩調度標志,如果業(yè)務隊列有報文且沒有設置延緩調度標志,則通知隊列管理模塊10將報文出隊,進入步驟S211;如果業(yè)務隊列沒有報文或設置延緩調度標志,則轉入步驟S209;步驟S211,進入步驟S203,調度業(yè)務隊列,繼續(xù)步驟S212;步驟S212,隊列調度模塊20判斷該端口下的所有業(yè)務是否都已調度?若 是,轉入步驟S207;否則轉入步驟S209;步驟S213,端口流量整形模塊40將從隊列調度模塊20調度出來的報文 入端口隊列;步驟S214,端口流量整形模塊40根據配置計算端口當前允許發(fā)送的報文 長度;該步驟中,端口流量整形模塊40根據端口配置的承諾信息速率CIR計算 端口當前允許發(fā)送的報文長度。步驟S215,端口流量整形模塊40判斷當前允許發(fā)送的報文長度是否大于 入隊的報文長度;若是,則轉入步驟S217;否則進入步驟S216;步驟S216,端口流量整形模塊40調度該端口下的報文出隊,將報文出隊, 進入步驟S217;步驟S217,端口流量整形模塊40判斷端口的隊列長度是否大于配置的隊 列長度閾值?若是,則進入步驟S218;否則轉入步驟S219;步驟S218,端口流量整形模塊40設置端口延緩調度標志,通知隊列調度 模塊20延緩該端口的調度;步驟S219,端口流量整形模塊40將出隊的報文發(fā)送出去,調度下一個端 口隊列,并轉入步驟S214。本發(fā)明提供了一種采用網絡處理器進行端口和業(yè)務流量整形的實現方法 和架構,其通過隊列管理模塊、端口流量整形模塊、業(yè)務流量整形模塊和隊列 調度模塊等四個模塊的協調和配合,共同實現基于端口和業(yè)務二級流量整形。當然,本發(fā)明還可有其他多種實施例,在不背離本發(fā)明精神及其實質的情 況下,熟悉本領域的技術人員當可根據本發(fā)明作出各種相應的改變和變形,但 這些相應的改變和變形都應屬于本發(fā)明所附的權利要求的保護范圍。
權利要求
1、一種基于網絡處理器的流量整形實現方法,其特征在于,包括隊列管理步驟,用于進行報文的入隊、出隊和隊列擁塞處理;隊列調度步驟,用于根據報文調度策略進行基于端口和業(yè)務的隊列調度;業(yè)務流量整形步驟,用于完成不同業(yè)務報文的流量計算,根據報文流量確定是否延緩業(yè)務的隊列調度;端口流量整形步驟,用于將出業(yè)務隊列的報文入端口隊列,進行基于端口的隊列調度,完成端口的流量計算,根據端口流量延緩端口的隊列調度或發(fā)送出端口隊列的報文。
2、 根據權利要求1所述的基于網絡處理器的流量整形實現方法,其特征 在于,所述業(yè)務流量整形步驟中,進一歩包括獲取業(yè)務當前允許發(fā)送的報文長度,并比較該業(yè)務當前允許發(fā)送的報文長 度與入業(yè)務隊列的報文長度的步驟若該業(yè)務當前允許發(fā)送的報文長度大于入業(yè)務隊列的報文長度,則轉入所 述隊列調度步驟,進行端口的隊列調度;若該業(yè)務當前允許發(fā)送的報文長度小于或等于入業(yè)務隊列的報文長度,則 設置業(yè)務延緩調度標志,延緩端口的隊列調度。
3、 根據權利要求2所述的基于網絡處理器的流量整形實現方法,其特征 在于,所述隊列調度歩驟中,進一步包括獲取一個端口,并判斷該端口是否有報文且未設置業(yè)務延緩調度標志的步驟若該端口有報文且未設置業(yè)務延緩調度標志,則調度該端口下的業(yè)務隊 列,并進一歩判斷該業(yè)務隊列是否有報文且未設置業(yè)務延緩調度標志,若是, 則將該報文調出該業(yè)務隊列;否則調度該端口下的下一個業(yè)務隊列;若該端口無報文或設置業(yè)務延緩調度標志,則調度下一個端口 。
4、 根據權利要求3所述的基于網絡處理器的流量整形實現方法,其特征 在于,所述端口流量整形步驟中,進一步包括將調出所述業(yè)務隊列的報文入端口隊列,獲取該端口當前允許發(fā)送的報文 長度,并進一步比較該端口當前允許發(fā)送的報文長度與入端口隊列的報文長度的步驟若該端口當前允許發(fā)送的報文長度大于入端口隊列的報文長度,則進一步 判斷該端口的隊列長度是否大于配置的隊列長度閾值,若大于,則設置端口延 緩調度標志,延緩該端口的隊列調度,否則調度下一個端口隊列;若該端口當前允許發(fā)送的報文長度小于或等于入端口隊列的報文長度,則 在該報文出端口隊列后發(fā)送。
5、 根據權利要求4所述的基于網絡處理器的流量整形實現方法,其特征 在于,所述隊列調度步驟中,進-步包括判斷該端口下的所有業(yè)務隊列是否都已調度的步驟,若是,則獲取下一個 端口;否則繼續(xù)進行隊列調度。
6、 根據權利要求4或5所述的基于網絡處理器的流量整形實現方法,其 特征在于,進一步包括根據業(yè)務的承諾信息速率獲取該業(yè)務當前允許發(fā)送的報文長度的歩驟;和/或根據該端口配置的承諾信息速率獲取該端口當前允許發(fā)送的報文長度的 步驟。
7、 -一種基于網絡處理器的流量整形實現裝置,其特征在于,包括 隊列管理模塊,用于進行報文的入隊、出隊和隊列擁塞處理; 隊列調度模塊,連接所述隊列管理模塊,用于根據所述隊列管理模塊的報文調度策略進行基于端口和業(yè)務的隊列調度;業(yè)務流量整形模塊,連接所述隊列管理模塊、所述隊列調度模塊,用于完 成不同業(yè)務報文的流量計算,根據報文流量確定是否通知所述隊列調度模塊延 緩業(yè)務的隊列調度;端口流量整形模塊,連接所述隊列管理模塊、所述隊列調度模塊,用于將 出業(yè)務隊列的報文入端口隊列,進行基于端口的隊列調度,完成端口的流量計 算,根據端口流量通知所述隊列調度模塊延緩端口的隊列調度或發(fā)送出端口隊 列的報文。
8、 根據權利要求7所述的基于網絡處理器的流量整形實現裝置,其特征 在于,所述業(yè)務流量整形模塊獲取業(yè)務當前允許發(fā)送的報文長度,并比較該業(yè) 務當前允許發(fā)送的報文長度與入業(yè)務隊列的報文長度若該業(yè)務當前允許發(fā)送的報文長度大于入業(yè)務隊列的報文長度,則通知所 述隊列調度模塊進行端口的隊列調度;或若該業(yè)務當前允許發(fā)送的報文長度小于或等于入業(yè)務隊列的報文長度,則 設置業(yè)務延緩調度標志,通知所述隊列調度模塊延緩端口的隊列調度。
9、 根據權利要求8所述的基于網絡處理器的流量整形實現裝置,其特征 在于,所述隊列調度模塊獲取一個端口,并判斷該端口是否有報文且未設置業(yè) 務延緩調度標志若該端口有報文且未設置業(yè)務延緩調度標志,則調度該端口下的業(yè)務隊 列,并進一步判斷該業(yè)務隊列是否有報文且未設置業(yè)務延緩調度標志,若是, 則通知所述隊列管理模塊將該報文調出該業(yè)務隊列,所述端口流量整形模塊再 將該報文入端口隊列,否則調度該端口下的下一個業(yè)務隊列;若該端口無報文或設置業(yè)務延緩調度標志,則調度下一個端口。
10、 根據權利要求9所述的基于網絡處理器的流量整形實現裝置,其特征 在于,所述端口流量整形模塊在將該報文入端口隊列后,獲取該端口當前允許 發(fā)送的報文長度,并比較該端口當前允許發(fā)送的報文長度與入端口隊列的報文 長度若該端口當前允許發(fā)送的報文長度大于入端口隊列的報文長度,則進一步 判斷該端口的隊列長度是否大于配置的隊列長度閾值,若大于,則設置端口延 緩調度標志,延緩該端口的隊列調度,否則調度下一個端口隊列;若該端口當前允許發(fā)送的報文長度小于或等于入端口隊列的報文長度,則 在該報文出端口隊列后發(fā)送。
全文摘要
本發(fā)明公開了一種基于網絡處理器的流量整形實現方法及其裝置,其中該方法包括隊列管理步驟,用于進行報文的入隊、出隊和隊列擁塞處理;隊列調度步驟,用于根據報文調度策略進行基于端口和業(yè)務的隊列調度;業(yè)務流量整形步驟,用于完成不同業(yè)務報文的流量計算,根據報文流量確定是否延緩業(yè)務的隊列調度;端口流量整形步驟,用于將出業(yè)務隊列的報文入端口隊列,進行基于端口的隊列調度,完成端口的流量計算,根據端口流量延緩端口的隊列調度或發(fā)送出端口隊列的報文。本發(fā)明在沒有專用TM芯片情況下實現了基于端口和業(yè)務二級流量整形。
文檔編號H04L12/56GK101257453SQ200810101829
公開日2008年9月3日 申請日期2008年3月12日 優(yōu)先權日2008年3月12日
發(fā)明者牛廣平 申請人:中興通訊股份有限公司