專利名稱:流量控制的方法與裝置的制作方法
技術領域:
本發明涉及通訊技術領域,尤其涉及一種流量控制的方法與裝置。
背景技術:
隨著因特網的發展,IP業務不斷快速增長。提高信息在IP網絡上傳輸的質量是IP網發展中的一個關鍵所在。IP Q0S技術的開發,目的就是為用戶業務提供端到端的服務質量保證。目前存在多種IP QoS服務模型,其中應用最廣的是區分服務模型(DiffServ)。DiffServ模型通過數據包分類、擁塞管理、擁擠避免、速率限制和流量整形技術來實現服務質量控制。在其速率限制和流量整形中, 主要使用了令牌桶算法來評估流量速率是否超過規定值。令牌桶是一種控制數據流量的理想工具,其原理是按照設定的速度向桶中放置令牌。令牌桶的容量預先設定,當桶中令牌的數量超出令牌桶的容量時,桶中的令牌不再增力口。在令牌桶中充滿令牌時,桶中所有的令牌代表允許通過的數據流量。輸入數據通過令牌桶處理后,若令牌桶中還有足夠的令牌可用于發送數據,則將輸入數據發送,同時根據輸入數據的大小減去與輸入數據大小相等的令牌;當令牌桶中的令牌少到不能繼續發送輸入數據時,則停止發送輸入數據;只有等到桶中生成新的令牌后,再繼續發送輸入數據。因此,允許發送的輸入數據流量小于等于令牌生成的速度,從而實現限制流量的目的。在實際網絡應用中,不僅用令牌桶來實現限速,還用令牌桶來標記輸入報文的優先級,提供不同的QOS服務。采用雙速率三色算法標記輸入報文,使用C桶和令牌桶P桶共同標記輸入報文,P桶的容量大于C桶,首先定義4個流量參數,承諾訪問速率(CIR),即向C桶填充令牌的速率、承諾突發尺寸(CBS)即C桶的容量、峰值信息速率(PIR),即向P桶填充令牌的速率,和峰值突發尺寸(PBS),即P桶的容量,輸入報文在通過令牌桶C桶和令牌桶P桶時,如果到達的輸入報文速率大于PIR,即P桶中的令牌無法滿足輸入報文,則輸入報文標記為紅色;如果到達的輸入報文速率小于PIR,但大于CIR,即P桶中的令牌滿足輸入報文,但C桶中的令牌不滿足輸入報文,則輸入報文標記為黃色;如果到達的輸入報文速率小于CIR,即C桶中的令牌滿足輸入報文,則輸入報文標記為綠色。當前網絡中,對標記為綠色的報文,給予較高的優先級,確保傳輸;對標記為黃色的報文,僅在網絡不擁塞的時候才傳輸,否則丟棄;對標記為紅色的報文,一般是直接丟棄。由于實際網絡大部分時間是擁塞狀態,被標記為黃色的報文大多會被丟棄。但標記為黃色的報文,是用來統計用戶帶寬的參數之一,若經常丟棄,使用戶損失帶寬。同時,頻繁的丟棄黃色、紅色的報文,會引起TCP的大量重傳,造成帶寬的更大浪費,嚴重降低了網絡帶寬利用率。
發明內容
為實現上述目的,本發明實施例公開了一種流量控制的方法與裝置,以實現在利用令牌桶控制流量時,提高帶寬利用率,改善QOS特性。
在第一方面,本發明實施例提供了一種流量控制的方法,其特征在于,所述方法包括接收待發送報文;識別所述待發送報文之前的報文的發送優先級;根據所述之前報文的發送優先級,判斷第一令牌桶中的令牌數量是否滿足預先設定的閾值要求;其中,當所述之前的報文的發送優先級不是第一優先級,則所述判斷第一令牌桶中的令牌數量是否滿足預先設定的閾值要求包括判斷所述第一令牌桶中的令牌數量是否大于第一閾值;當所述之前的報文的發送優先級為第一優先級,則所述判斷第一令牌桶中的令牌數量是否滿足預先設定的閾值要求包括判斷所述第一令牌桶中的令牌數量是否大于第二閾值,所述第一閾值大于所述第二閾值;如果第一令牌桶中的令牌數量滿足預先設定的閾值要求,則判斷第二令牌桶中的令牌數量是否大于等于預設的第三閾值;如果所述第二令牌桶中的令牌數量大于等于預設的第三閾值,則給予所述待發送報文第一發送優先級,并且根據所述第一令牌桶和第二令牌桶中的剩余令牌總數發送所述待發送報文。在第二方面,本發明實施例提供了一種流量控制的裝置,其特征在于,所述裝置包括接收單元,用于接收待發送報文;識別單元,用于識別所述待發送報文之前的報文的發送優先級;第一判斷單元,用于根據所述之前報文的發送優先級,判斷第一令牌桶中的令牌數量是否滿足預先設定的閾值要求;其中,當所述之前的報文的發送優先級不是第一優先級,則所述判斷第一令牌桶中的令牌數量是否滿足預先設定的閾值要求包括判斷所述第一令牌桶中的令牌數量是否大于第一閾值;當所述之前的報文的發送優先級為第一優先級,則所述判斷第一令牌桶中的令牌數量是否滿足預先設定的閾值要求包括判斷所述第一令牌桶中的令牌數量是否大于第二閾值,所述第一閾值大于所述第二閾值;第二判斷單元,用于如果第一令牌桶中的令牌數量滿足預先設定的閾值要求,則判斷第二令牌桶中的令牌數量是否大于等于預設的第三閾值;第一執行單元,用于如果所述第二令牌桶中的令牌數量大于等于預設的第三閾值,則給予所述待發送報文第一發送優先級,并且根據所述第一令牌桶和第二令牌桶中的剩余令牌總數發送所述待發送報文。通過應用本發明實施例公開的方法和裝置,在一定的時間內,將大大提高待發送報文的通過率,使發送的報文與不發送的報文之間的間隔拉大,同時也降低報文的重發率。
為了更清楚地說明本發明實施例的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。圖I為現有技術的流量控制圖;圖2為本發明實施例公開的流量控制的方法流程圖;圖3為本發明實施例公開的流量控制的效果示意圖4為本發明實施例公開的流量控制的方法裝置圖。
具體實施例方式為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。為便于對本發明實施例的理解,下面將結合附圖以具體實施例做進一步的解釋說明,實施例并不構成對本發明實施例的限定。以圖2為例詳細說明本發明實施例公開的流量控制的方法,圖2為本發明實施例 公開的流量控制的方法流程圖。如圖2所示,在本發明實施例中,待發送報文首先經過第一令牌桶(P桶),P桶識別上一次令牌桶流量決策的結果信息,將待發送報文分別與P桶中預先設定的第一閾值P1、第二閾值P2相比較后,P桶設置待發送報文的決策結果信息。在本發明實施例中,P桶得出的決策結果包括兩種通過或者不通過。若P桶設置的決策結果信息為不通過時,則將待發送報文標記為紅色,做丟棄處理,若待發送報文在通過P桶時,P桶設置的決策結果信息為通過時,將待發送報文傳輸至第二令牌桶(C桶)中。C桶將待發送報文與預設的第三閾值P3相比較后,若待發送報文在通過C桶時,C桶設置的決策結果信息為不通過時,則將待發送報文給予第二發送優先權,標記為黃色,在網絡通暢的情況下,將待發送報文傳輸,否則,做丟棄處理,若待發送報文在通過C桶時,C桶設置的決策結果信息為通過時,則將給予待發送報文第一發送優先權,標記為綠色,確保傳輸待發送報文,具體實施步驟如下步驟200、接收待發送報文;具體地,待發送報文首先進入P桶,由P桶接收待發送報文,并對待發送報文進行判別。步驟201、識別所述待發送報文之前的報文的發送優先級; 具體地,待發送報文首先經過P桶,P桶獲取上一次令牌桶流量決策結果信息,P桶獲取上一次令牌桶流量決策的結果信息后,識別上一次報文的發送優先級,如果P桶識別出上一次報文的發送優先級不是第一發送優先級,則執行步驟202,判斷P桶中當前令牌數量是否大于等于預先設定的第一閾值Pl ;如果P桶識別出上一次報文的發送優先級是第一發送優先級,則執行步驟203,判斷P桶中當前令牌數量是否大于等于預先設定的第二閾值P2。步驟202、當所述之前的報文的發送優先級不是第一優先級,判斷第一令牌桶中的令牌數量是否大于等于預先設定的第一閾值;具體地,P桶獲取上一次令牌桶流量決策的結果信息后,識別上一次報文的發送優先級是否為第一發送優先級,若識別的上一次報文的發送優先級不是第一發送優先級,則判斷P桶中當前令牌數量是否大于等于預先設定的第一閾值P1,如果P桶中當前令牌數量大于等于預先設定的第一閾值P1,則P桶將待發送的報文設置為通過,執行步驟204;如果P桶中當前令牌數量小于預先設定的第一閾值P1,則執行步驟207,將待發送報文丟棄,并標記為紅色。在本發明實施例中,預設的第一閾值Pl為預設的P桶中的令牌數量。根據上述的判斷,如果P桶中當前令牌數量大于等于預先設定的第一閾值P1,則P桶對待發送的報文設置為通過。步驟203、當所述之前的報文的發送優先級是第一優先級,判斷第一令牌桶中的令牌數量是否大于等于預先設定的第二閾值;具體地,P桶獲取上一次令牌桶流量決策的結果信息后,識別上一次報文的發送優先級是否為第一發送優先級,若識別的上一次報文的發送優先級是第一發送優先級,則判斷P桶中當前令牌數量是否大于等于第一令牌桶閾值中的第二閾值P2,如果P桶中當前令牌數量大于等于預先設定的第二閾值P2,則P桶將待發送的報文設置為通過,執行步驟204;如果P桶中當前令牌數量小于預先設定的第二閾值P2,則執行步驟207,將待發送報文丟棄,并標記為紅色。根據上述的判斷,如果P桶中當前令牌數量大于等于預先設定的第二閾值P2,則P桶對待發送的報文設置為通過。在本發明實施例中,預設的第二閾值P2為報文長度值、幀長值或將P2預設為在報文長度值與幀長值之間的數值,如報文長度值大于等于100 ;幀長值為2000 ;在本發明實施例中,預設的第一閾值Pl大于預設的第二閾值P2,從而使得當識別的上一次報文的發送優先級不是第一發送優先級時,本次的待發送報文更容易發送。P桶在對待傳送報文進行判別時,若為通過時,則從P桶中減去與待發送報文相對應的令牌,若為不通過時,則將待發送報文丟棄,并標記為紅色,由于P桶中的令牌是周期性的往P桶添加,因此,每次對待發送報文判別后,P桶中的令牌數量是變化的,通過將P桶中的令牌數量與第一閾值P1、第二閾值P2相比較,可以將上一次丟棄的報文,在本次判別后,P桶判決為通過,由C桶繼續對待發送報文判別,提升待發送報文的發送率。步驟204、如果第一令牌桶中的令牌數量滿足預先設定的閾值要求,則判斷第二令牌桶中的令牌數量是否大于等于預設的第三閾值;具體地,根據前述步驟的判斷,如果P桶中的令牌數量滿足預先設定的閾值要求,則判斷C桶中的令牌數量是否大于等于預設的第三閾值,且P桶將待發送報文設置為通過,P桶設置為通過的待發送報文進入C桶中,由C桶對待發送報文進行判斷,如果C桶中的令牌數量大于等于預設的第三閾值;則執行步驟205 ;否則,執行步驟206。步驟205、給予所述待發送報文第一發送優先級,并且根據第一令牌桶和第二令牌桶中的剩余令牌總數發送所述待發送報文;具體地,根據步驟204的判斷,如果C桶中當前令牌數量大于等于預設的第三閾值P3時,則將待發送報文設置為通過,給予待發送報文第一發送優先級,相應地,將待發送報文標記為綠色,發送待發送報文,同時,根據P桶和C桶中的剩余令牌總數發送待發送報文。步驟206、給予所述待發送報文第二發送優先級,當網絡不擁塞時,根據所述第一令牌桶中的剩余令牌數發送所述待發送報文。具體地,根據前述步驟的判斷,如果C桶中令牌數量小于預設的第三閾值P3時,則 C桶將該報文流量設置為不通過,給予待發送報文第二發送優先級,相應地,將待傳送報文標記為黃色,,由于標記為黃色的待發送報文在P桶中的流量決策結果為通過,在C桶中的流量決策結果為不通過,因此,P桶中設置待發送報文為通過后,應減去該報文所對應的令牌數量,C桶中不減去該報文所對應的令牌數量,在網絡通暢的情況下,將待發送報文傳輸,否則,做丟棄處理。步驟207 、丟棄待發送報文;具體地,根據步驟202和步驟203的判斷,如果第一令牌桶中的令牌數量不滿足預先設定的閾值要求,即,如果P桶中當前令牌數量小于預先設定的第一閾值P1,或如果P桶中當前令牌數量小于預先設定的第二閾值P2,則將所述待發送報文丟棄,并標記為紅色。在本發明實施例中,第一發送優先級高于第二發送優先級,處于第一發送優先級的待發送報文標記為綠色,并將待傳送的報文傳輸,相應地,C桶減去待發送報文所對應的令牌數量;處于第二發送優先級的待發送報文標記為黃色,相應地,當網絡不擁塞時,根據P桶中的剩余令牌數發送待發送報文;當網絡擁塞時,將待發送報文丟棄。在本發明實施例中,預設的第三閾值P3為報文長度值、幀長值或將P3預設為在報文長度值與幀長值之間的數值,如報文長度值大于等于100 ;幀長值為2000。在本發明實施例中,預設的第一閾值P1、預設的第二閾值P2大于第三閾值P3,從而使得當識別的上一次報文的發送優先級不是第一發送優先級時,本次的待發送報文更容易發送。根據P桶的判別,并且預設的第一閾值P1、預設的第二閾值P2大于第三閾值P3,由于C桶中的令牌也是周期性的往C桶添加,因此,每次對待發送報文判別后,C桶中的令牌數量是變化的,通過將C桶中的令牌數量與第三閾值P3比較后,可以將上一次給予第二發送優先級的報文,在本次判別后,給予第一發送優先級,提升待發送報文的發送率。根據上文所描述的方法,在一定的時間內,提高報文的通過率,如圖3所示,與現有技術相比標記為綠色、黃色和紅色報文之間的間隔擴大,通過上文所描述的方法將上一次標記為紅色或黃色的報文,在通過P桶和C桶的判別之后,將部分紅色報文變為黃色報文,或部分黃色報文變為綠色報文,提高輸入報文的通過率,同時也降低報文的重發率。需要說明的是,在上述實施例中,待發送報文首先經過P桶的判別,如果P桶判別待發送報文為不通過時,則直接將待發送報文標記為紅色,并直接丟棄;如果P桶判別待發送報文為通過時,則將待發送報文傳輸至C桶中,由C桶繼續對待發送報文進行判別;如果C桶判別待發送報文為不通過時,則將待發送報文給予第二發送優先級,標記為黃色,在網絡擁塞時,丟棄報文;如果C桶判別待發送報文為通過時,則將待發送報文給予第一發送優先級,標記為綠色,傳輸報文;在實際應用中,也可將待發送報文首先經過C桶的判別,如果C桶判別待發送報文為通過時,則直接將待發送報文給予第一發送優先級,標記為綠色,傳輸報文;如果C桶判別待發送報文為不通過時,則將待發送報文傳輸至P桶中,由P桶繼續對待發送報文進行判別;如果P桶判別待發送報文為通過時,則將待發送報文給予第二發送優先級,標記為黃色,在網絡擁塞時,丟棄報文;如果P桶判別待發送報文為不通過時,則將待發送報文標記為紅色,直接丟棄報文。相應地,本發明實施例還公開了一種流量控制的裝置,如圖4所示,所述裝置包括接收單元410,用于接收待發送報文;識別單元420,用于識別所述待發送報文之前的報文的發送優先級;第一判斷單元430,用于根據所述之前報文的發送優先級,判斷第一令牌桶中的令牌數量是否滿足預先設定的閾值要求;其中,當所述之前的報文的發送優先級不是第一優先級,則所述判斷第一令牌桶中的令牌數量是否滿足預先設定的閾值要求包括判斷所述第一令牌桶中的令牌數量是否大于第一閾值;當所述之前的報文的發送優先級為第一優先級,則所述判斷第一令牌桶中的令牌數量是否滿足預先設定的閾值要求包括判斷所述第一令牌桶中的令牌數量是否大于第二閾值,所述第一閾值大于所述第二閾值;第二判斷單元440,用于如果第一令牌桶中的令牌數量是否滿足預先設定的閾值要求,則判斷第二令牌桶中的令牌數量是否大于等于預設的第三閾值;第一執行單元450,用于如果所述第二令牌桶中的令牌數量大于等于預設的第三閾值,則給予所述待發送報文第一發送優先級,并且根據所述第一令牌桶和第二令牌桶中的剩余令牌總數發送所述待發送報文。所述裝置還包括第二執行單元460,用于如果第一令牌桶中的令牌數量不滿足預先設定的閾值要求,則將所述待發送報文丟棄;
第三執行單元470,用于如果所述第二令牌桶中的令牌數量小于預設的第三閾值,則給予所述待發送報文第二發送優先級,當網絡不擁塞時,根據所述第一令牌桶中的剩余令牌數發送所述待發送報文。通過應用上述的裝置,在一定的時間內,將大大提高輸入的報文流量通過率,使通過的報文流量與不通過的報文流量之間的間隔拉大,同時也降低報文流量的重發率。專業人員應該還可以進一步意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結合來實現,為了清楚地說明硬件和軟件的可互換性,在上述說明中已經按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執行,取決于技術方案的特定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本發明的范圍。結合本文中所公開的實施例描述的方法或算法的步驟可以用硬件、處理器執行的軟件模塊,或者二者的結合來實施。軟件模塊可以置于隨機存儲器(RAM)、內存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術領域內所公知的任意其它形式的存儲介質中。以上所述的具體實施方式
,對本發明的目的、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本發明的具體實施方式
而已,并不用于限定本發明的保護范圍,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。
權利要求
1.ー種流量控制的方法,其特征在于,所述方法包括 接收待發送報文; 識別所述待發送報文之前的報文的發送優先級; 根據所述之前報文的發送優先級,判斷第一令牌桶中的令牌數量是否滿足預先設定的閾值要求;其中,當所述之前的報文的發送優先級不是第一優先級,則所述判斷第一令牌桶中的令牌數量是否滿足預先設定的閾值要求包括判斷所述第一令牌桶中的令牌數量是否大于第一閾值;當所述之前的報文的發送優先級為第一優先級,則所述判斷第一令牌桶中的令牌數量是否滿足預先設定的閾值要求包括判斷所述第一令牌桶中的令牌數量是否大于第二閾值,所述第一閾值大于所述第二閾值; 如果第一令牌桶中的令牌數量滿足預先設定的閾值要求,則判斷第二令牌桶中的令牌數量是否大于等于預設的第三閾值; 如果所述第二令牌桶中的令牌數量大于等于預設的第三閾值,則給予所述待發送報文第一發送優先級,并且根據所述第一令牌桶和第二令牌桶中的剰余令牌總數發送所述待發送報文。
2.根據權利要求I所述的流量控制的方法,其特征在于,所述方法還包括 如果第一令牌桶中的令牌數量不滿足預先設定的閾值要求,則將所述待發送報文丟棄。
3.根據權利要求I所述的流量控制的方法,其特征在于,所述方法還包括 如果所述第二令牌桶中的令牌數量小于預設的第三閾值,則給予所述待發送報文第二發送優先級,根據所述第一令牌桶中的剰余令牌數發送所述待發送報文。
4.ー種流量控制的裝置,其特征在于,所述裝置包括 接收單元,用于接收待發送報文; 識別單元,用于識別所述待發送報文之前的報文的發送優先級; 第一判斷単元,用于根據所述之前報文的發送優先級,判斷第一令牌桶中的令牌數量是否滿足預先設定的閾值要求;其中,當所述之前的報文的發送優先級不是第一優先級,則所述判斷第一令牌桶中的令牌數量是否滿足預先設定的閾值要求包括判斷所述第一令牌桶中的令牌數量是否大于第一閾值;當所述之前的報文的發送優先級為第一優先級,則所述判斷第一令牌桶中的令牌數量是否滿足預先設定的閾值要求包括判斷所述第一令牌桶中的令牌數量是否大于第二閾值,所述第一閾值大于所述第二閾值; 第二判斷単元,用于如果第一令牌桶中的令牌數量滿足預先設定的閾值要求,則判斷第二令牌桶中的令牌數量是否大于等于預設的第三閾值; 第一執行單元,用于如果所述第二令牌桶中的令牌數量大于等于預設的第三閾值,則給予所述待發送報文第一發送優先級,并且根據所述第一令牌桶和第二令牌桶中的剰余令牌總數發送所述待發送報文。
5.根據權利要求4所述的流量控制的裝置,其特征在于,所述裝置還包括 第二執行單元,用于如果第一令牌桶中的令牌數量不滿足預先設定的閾值要求,則將所述待發送報文丟棄。
6.根據權利要求4所述的流量控制的裝置,其特征在于,所述裝置還包括 第三執行單元,用于如果所述第二令牌桶中的令牌數量小于預設的第三閾值,則給予所述待發送報 文第二發送優先級,根據所述第一令牌桶中的剰余令牌數發送所述待發送報文。
全文摘要
本發明實施例涉及一種流量控制的方法與裝置,所述方法包括接收待發送報文;識別待發送報文之前的報文發送優先級;根據之前報文發送優先級,判斷第一令牌桶中的令牌數量是否滿足預先設定的閾值要求;當之前的報文發送優先級不是第一優先級,則判斷第一令牌桶中的令牌數量是否大于第一閾值;當之前報文發送優先級為第一優先級,則判斷第一令牌桶中的令牌數量是否大于第二閾值;如果第一令牌桶中的令牌數量滿足預先設定的閾值要求,則判斷第二令牌桶中的令牌數量是否大于等于預設的第三閾值;如果第二令牌桶中的令牌數量大于等于預設的第三閾值,則給予待發送報文第一發送優先級,并且根據第一令牌桶和第二令牌桶中的剩余令牌總數發送待發送報文。
文檔編號H04L12/56GK102664807SQ201210128330
公開日2012年9月12日 申請日期2012年4月27日 優先權日2012年4月27日
發明者李中華 申請人:華為技術有限公司