專利名稱:基于流分類的分組流量控制系統及控制方法
技術領域:
本發明屬于數據通信領域,涉及對數據分組流量控制方法,可用于需要對不同特征的數據分組提供不同的流量控制的分組通信環境中。
背景技術:
隨著hternet的飛速發展,人們對網絡的需求日益多樣化,傳統的單一形式的盡力而為Best Effort服務已經不能滿足多元化的網絡需求,網絡提供商迫切需要為不同的網絡服務提供不同級別的服務質量QoS。現在最常用的做法是提取數據分組中的優先級域,以此來決定提供服務的級別。但是,隨著新業務的涌現如控制訪問列表、差分服務、策略路由等,迫切需要對數據分組進行更精確的劃分,標記每個數據分組所屬的業務類,以此來決定它們應該接受哪種類型的服務。衡量QoS的標準有很多,例如帶寬、丟包率以及抖動控制和延遲等。其中,決定抖動控制和延遲的關鍵因素即為流量控制。因為如果允許某個節點通過的流量越大,那么數據分組通過此節點的傳輸時延和抖動就會越小,相應服務質量就會越高。因此,為不同特征的數據分組提供不同的流量能夠更好的滿足網絡服務精細化的需求。數據分組特征域有很多,例如媒體接入控制源MAC地址、目的MAC地址、網絡互聯協議源IP地址目的IP地址、傳輸控制協議TCP域等。根據對數據分組分類時涉及特征域的多少,流分類可分為單域流分類和多域流分類。傳統的流分類要么沒有將流分類的結果和流量控制相關聯,要么只是簡單地提取分組的優先級然后做流量控制,因而都不能解決為不同特征的數據分組提供準確的流量控制。
發明內容
本發明的目的在于針對上述已有技術的不足,提供一種基于流分類的分組流量控制系統及控制方法,通過提取多層數據分組層的特征域,實現對不同特征的數據分組提供不同的流量控制。本發明的技術方案是這樣實行的— .本發明基于流分類的分組流量控制系統,包括字段表模塊用于設置從分組頭部中提取的w個字段,所述字段是指數據分組不同層次頭部中的地址、服務等級和協議號,w是一個大于或者等于1正整數;規則表模塊,用于設置對數據分組進行分類的η條規則,每一條規則包含m個條款和一個流控標簽,其中條款由字段、操作和數值組成,操作包括大于、小于、等于、不等于、大于等于、小于等于;流控標簽指示當從數據分組中提取的每個字段的數值均和條款中規定的數值相同時,應該進行的流控類型,流控標簽的個數為q,q是一個根據分組流控類型的多少而設定的大于或等于1的正整數;令牌桶參數表模塊,用于存放令牌桶的參數,由q個表項組成,每個表項存放兩個令牌桶參數每次向流控令牌桶中注入令牌的個數N以及令牌桶中令牌個數的上限M,每個令牌代表的字節數,根據實際需求進行設定,一個令牌代表一個字節,N是依據令牌桶流量的大小而設置的大于或者等于1的正整數,M是依據令牌桶突發時間的長短而設置的大于或者等于N的正整數;流控參數表模塊,用于存放流控的參數,由q個表項組成,每個表項有兩個流控參數流控啟動的標志位F和當前流控令牌桶中令牌的個數A,初始化時這兩個參數均置為零,并且在流控過程中這兩個參數是不斷更新的,F有0和1兩種狀態,0表示關閉流控,1表示啟動流控,A是一個小于或者等于M的非負整數;輸入緩存器模塊用于緩存通信節點從外部網絡中接收的數據分組,緩存器的大小和數目根據網絡中實際交換的分組大小和需求設定;匹配模塊根據字段表中設置的關鍵字段從輸入緩存器中提取數據分組頭部中的相應的關鍵字段,從規則表中的第一條規則開始進行匹配,即檢查提取的關鍵字段是否符合該規則中所有的條款,如果符合,則匹配結束,否則再進行下一條規則匹配,直到關鍵字段與一條規則中所有的條款都符合為止,并給出匹配規則攜帶的流控標簽,如果關鍵字段和任何規則中的條款都不符合,則人為地設置一個流控標簽;流控模塊采用基于幀長的令牌桶流控算法對數據分組進行流量控制,包含流控決策子模塊和流控參數表循環更新子模塊;流控決策子模塊以流控標簽為索引查找流控參數表,取出流控參數表對應表項中的流控參數F和A,首先判斷F標志位是否為1,如果為1,則表示已經啟動令牌桶的流控功能;反之,尚未啟動令牌桶流控功能,不對數據分組進行流控,直接給出流控成功標識;再判斷A是否大于數據分組消耗的令牌個數p,如果大于,給出流控成功標識,并將令牌桶中令牌的數目將減少P ;反之,給出流控失敗標識,P等于數據分組的字節數,是一個正整數;流控參數表循環更新子模塊依次循環更新流控參數表的第1個表項到第q個表項取出流控參數表和令牌桶參數表中第1個表項中的四個參數F、A、N和M,并進行判斷,若M為零,則將F置為零;反之,再判斷F是否為零,如果F為零,將F更新為1,同時將A的大小設置為M ;如果F不為零,判斷A加N是否大于M,如果大于M,將A的數值更新為M ;否則,將A的數值更新為A加N ;接下來依次更新后面個各表項,直到第q個表項更新完畢后,然后再從第1個表項開始重新依次重新更新這q個表項,更新過程循環進行。二 .本發明基于流分類的分組流量控制方法,包括如下步驟(1)根據用戶的需求,配置通信節點中的字段表、規則表、令牌桶參數表和流控參數表,該字段表,包括t個字段,字段是指數據分組不同層次頭部中的地址、服務等級和協議號,t是一個大于或者等于1正整數;該規則表,存放有η條規則,每一條規則包含m個條款和一個流控標簽,其中條款由字段、操作和數值組成,操作包括大于、小于、等于、不等于、大于等于、小于等于;流控標簽指示當從數據分組中提取的每個字段的數值均和條款中規定的數值相同時,應該進行的流控類型,流控標簽的個數為q,q是一個根據分組流控類型的多少而設定的大于或等于1的正整數;該令牌桶參數表,由q個表項組成,每個表項存放令牌桶的兩個參數每次向流控令牌桶中注入令牌的個數N以及令牌桶中令牌個數的上限M,每個令牌代表的字節數,根據實際需求進行設定,一個令牌代表一個字節,N是依據令牌桶流量的大小而設置的大于或者等于1的正整數,M是依據令牌桶突發時間的長短而設置的大于或者等于N的正整數;該流控參數表,由q個表項組成,每個表項有兩個流控參數流控啟動的標志位F和當前流控令牌桶中令牌的個數A,初始化時這兩個參數均置為零,并且在流控過程中這兩個參數是不斷更新的,F有0和1兩種狀態,0表示關閉流控,1表示啟動流控,A是一個小于或者等于M的非負整數;(2)通信節點從外部網絡中接收數據分組并將其存入輸入緩存器中,該輸入緩存器的大小和數目根據網絡中實際交換的分組大小和需求設定;(3)根據字段表中設置的關鍵字段從輸入緩存器中提取數據分組頭部中的相應的關鍵字段,從規則表中的第一條規則開始進行匹配,即檢查提取的關鍵字段是否符合該規則中所有的條款,如果符合,則匹配結束,否則再進行下一條規則匹配,直到關鍵字段與一條規則中所有的條款都符合為止,并給出匹配規則攜帶的流控標簽,如果關鍵字段和任何規則中的條款都不符合,則人為地設置一個流控標簽;(4)采用基于幀長的令牌桶流控算法對數據分組進行流量控制(4a)以流控標簽為索引查找流控參數表,取出流控參數表對應表項中的流控參數,即流控啟動的標志位F和令牌桶中令牌的個數A ;(4b)判斷F標志位是否為1,如果為1,則表示已經啟動令牌桶的流控功能;否則,令牌桶流控功能尚未啟動,不對數據分組進行流控,直接給出流控成功標識;(4c)判斷令牌桶中令牌的個數A是否大于數據分組需要消耗的令牌個數P,如果大于,則允許該分組通過流控,并給出流控成功標識,令牌桶中令牌的數目將減少P個;否則,給出流控失敗標識,P等于數據分組的字節數,是一個正整數;(4d)依次循環更新流控參數表的第1個表項到第q個表項4dl)更新流控參數表的第1個表項即取出流控參數表和令牌桶參數表第1個表項中的四個參數F、A、N和M,并進行如下操作首先判斷M是否為零,若M為零,則將F置為零;反之,再判斷F是否為零,如果F為零,將F更新為1,同時將A的大小設置為M ;如果F不為零,判斷A加N是否大于M,如果大于M,將A的數值更新為M ;否則,將A的數值更新為AWN;4d2)從第2個表項到第q個表項循環執行4dl ;4d3)重復執行步驟4dl和4d2。本發明將流分類技術和流控技術相結合,能夠對不同類的數據分組分別進行流量控制的;同時由于本發明中的字段表和規則表的是可配置的,因此對數據分組的分類既可以精細化也可以粗略化,可根據實際應用進行設定;此外由于本發明中令牌桶參數表的每一個表項代表一種流量控制,因此通過設置令牌桶參數表可以實現對流分類分離出來的每一種數據分組分別提供不同的流量控制,這樣不僅可以使各類數據分組的之間流量互不干擾,而且也能夠將流量的大小控制的更加準確。
圖1為本發明的系統結構圖2為本發明的流程圖。
具體實施例方式為使本發明目的、技術方案以及優點更加清楚明白,以下參照附圖并舉實例,對本發明進行近一步地詳細說明。參照圖1,本發明提供的基于流分類的分組流量控制系統,包括字段表模塊、規則表模塊、令牌桶參數表模塊、流控參數表模塊、輸入緩存器模塊、匹配模塊、流控決策子模塊和流控參數表循環更新子模塊。其中字段表模塊用于設置從分組頭部中提取的t個字段,該字段是指數據分組不同層次頭部中的地址、服務等級和協議號,這里t是一個大于或者等于1正整數;規則表模塊,用于設置對數據分組進行分類的η條規則,每一條規則包含m個條款和一個流控標簽,其中條款由字段、操作和數值組成,操作包括大于、小于、等于、不等于、大于等于、小于等于,一條規則包含一個或者多個條款,規則所表述的是一種條件和結果的關系,即如果數據分組符合規則中的所有條款,則執行該規則中的動作,流控標簽即為規則中的動作,流控標簽指示當從數據分組中提取的每個字段的數值均和條款中規定的數值相同時,應該進行的流控類型,流控標簽的個數為q,q是一個根據分組流控類型的多少而設定的大于或等于1的正整數;令牌桶參數表模塊,用于存放令牌桶的參數,由q個表項組成,每個表項存放有每次令牌桶中增加的令牌個數N及令牌桶中令牌數目的上限值M這兩個令牌桶參數,該令牌以恒定的速率放入桶中,每個令牌允許數據源發送d比特的數據,每發送一個數據分組就要從令牌桶中刪除與數據分組大小相同的令牌數,如果沒有足夠的令牌發送數據分組,數據分組或者等待直到有足夠的令牌,或者直接被拋棄掉,本發明中每個令牌代表的比特數,根據實際需求進行設定,本發明舉例中設定一個令牌代表一個字節,一個字節等于8個比特,令牌個數N是依據分配給令牌桶流量的大小而設置的大于或者等于1的正整數,M是依據允許令牌桶突發時間的長短而設置的大于或者等于N的正整數,令牌桶參數表的一個表項存放一個令牌桶的參數,因此令牌桶參數表根據表項確定,即有多少個表項,就有多少個令牌桶;流控參數表模塊,用于存放流控的參數,由q個表項組成,每個表項存放流控啟動的標志位F和當前流控令牌桶中令牌的個數A兩個參數,初始化時這兩個參數均置為零,并且在流控過程中這兩個參數是不斷更新的,標志位F有0和1兩種狀態,0表示關閉流控,1表示啟動流控,A是一個小于或者等于M的非負整數,流控參數表每個表項記錄的是該表項對應的令牌桶當前的工作狀態,流控參數表和令牌桶參數表表項個數相同;輸入緩存器模塊用于緩存通信節點從外部網絡中接收的數據分組,緩存器的大小和數目根據網絡中實際交換的分組大小和需求設定;匹配模塊根據字段表中設置的關鍵字段從輸入緩存器中提取數據分組頭部中的相應的關鍵字段,從規則表中的第一條規則開始進行匹配,即檢查提取的關鍵字段是否符合該規則中所有的條款,如果符合,則匹配結束,否則再進行下一條規則匹配,直到關鍵字段與一條規則中所有的條款都符合為止,并給出匹配規則攜帶的流控標簽,如果關鍵字段和任何規則中的條款都不符合,則人為地設置一個流控標簽,本發明對規則表中的規則按照順序依次進行匹配,這是一種較為簡單的方法,但是匹配方法并不僅僅局限于本發明提供的此種方法,也可以采用其他的方法;流控模塊采用基于幀長的令牌桶流控算法對數據分組進行流量控制,它包含流控決策子模塊和流控參數表循環更新子模塊,其中流控決策子模塊以流控標簽為索引查找流控參數表,取出流控參數表對應表項中的流控參數F和A,首先判斷F標志位是否為1,如果為1,則表示已經啟動令牌桶的流控功能;反之,尚未啟動令牌桶流控功能,不對數據分組進行流控,直接給出流控成功標識;再判斷A是否大于數據分組消耗的令牌個數P,如果大于,給出流控成功標識,并將令牌桶中令牌的數目將減少P ;反之,給出流控失敗標識,P等于數據分組的字節數,是一個正整數;流控參數表循環更新子模塊依次循環更新流控參數表的第1個表項到第q個表項取出流控參數表和令牌桶參數表中第1個表項中的四個參數F、A、N和M,并進行判斷,若M為零,則將F置為零;反之,再判斷F是否為零,如果F為零,將F更新為1,同時將A的大小設置為M ;如果F不為零,判斷A加N是否大于M,如果大于M,將A的數值更新為M ;否則,將A的數值更新為A加N ;接下來依次更新后面個各表項,直到第q個表項更新完畢后,然后再從第1個表項開始重新依次重新更新這q個表項,更新過程循環進行。參照圖2,本發明提供的基于流分類的分組流量控制方法,包括如下步驟步驟1 配置通信節點中的字段表、規則表、令牌桶參數表和流控參數表。字段表,包含源MAC地址和目的MAC地址兩個字段;規則表,包含4條規則規則1為當條款1源MAC地址=100成立時,流控標簽=
1;規則2為當條款1源MAC地址=600和條款2目的MAC地址=300同時成立時,流控標簽=2 ;規則3為當條款1源MAC地址=600和條款2目的MAC地址=500同時成立時,流控標簽=3 ;規則4為當條款1源MAC地址=600成立,流控標簽=1 ;令牌桶參數表,如表1所示,它包含4個表項表項1中N = 500、M = 2000,表項
2中 N = 1000、M = 5000,表項 3 中 N = 0、M = 0,表項 4 中 N = 400、M = 3000 ;表 1 令表1牌桶參數表
權利要求
1.一種基于流分類的分組流量控制系統,包括字段表模塊用于設置從分組頭部中提取的w個字段,所述字段是指數據分組不同層次頭部中的地址、服務等級和協議號,w是一個大于或者等于1正整數;規則表模塊,用于設置對數據分組進行分類的η條規則,每一條規則包含m個條款和一個流控標簽,其中條款由字段、操作和數值組成,操作包括大于、小于、等于、不等于、大于等于、小于等于;流控標簽指示當從數據分組中提取的每個字段的數值均和條款中規定的數值相同時,應該進行的流控類型,流控標簽的個數為q,q是一個根據分組流控類型的多少而設定的大于或等于1的正整數;令牌桶容量參數表模塊,用于存放令牌桶的參數,由q個表項組成,每個表項存放兩個令牌桶參數每次向流控令牌桶中注入令牌的個數N以及令牌桶中令牌個數的上限M,每個令牌代表的字節數,根據實際需求進行設定,一個令牌代表一個字節,N是依據令牌桶流量的大小而設置的大于或者等于1的正整數,M是依據令牌桶突發時間的長短而設置的大于或者等于N的正整數;流控參數表模塊,用于存放流控的參數,由q個表項組成,每個表項有兩個流控參數流控啟動的標志位F和當前流控令牌桶中令牌的個數A,初始化時這兩個參數均置為零,并且在流控過程中這兩個參數是不斷更新的,F有0和1兩種狀態,0表示關閉流控,1表示啟動流控,A是一個小于或者等于M的非負整數;輸入緩存器模塊用于緩存通信節點從外部網絡中接收的數據分組,緩存器的大小和數目根據網絡中實際交換的分組大小和需求設定;匹配模塊根據字段表中設置的關鍵字段從輸入緩存器中提取數據分組頭部中的相應的關鍵字段,從規則表中的第一條規則開始進行匹配,即檢查提取的關鍵字段是否符合該規則中所有的條款,如果符合,則匹配結束,否則再進行下一條規則匹配,直到關鍵字段與一條規則中所有的條款都符合為止,并給出匹配規則攜帶的流控標簽,如果關鍵字段和任何規則中的條款都不符合,則人為地設置一個流控標簽;流控模塊采用基于幀長的令牌桶流控算法對數據分組進行流量控制,包含流控決策子模塊和流控參數表循環更新子模塊,所述流控決策子模塊以流控標簽為索引查找流控參數表,取出流控參數表對應表項中的流控參數F和A,首先判斷F標志位是否為1,如果為1,則表示已經啟動令牌桶的流控功能;反之,尚未啟動令牌桶流控功能,不對數據分組進行流控,直接給出流控成功標識;再判斷A是否大于數據分組消耗的令牌個數p,如果大于,給出流控成功標識,并將令牌桶中令牌的數目將減少P ;反之,給出流控失敗標識,P等于數據分組的字節數,是一個正整數;所述流控參數表循環更新子模塊依次循環更新流控參數表的第1個表項到第q個表項取出流控參數表和令牌桶容量參數表中第1個表項中的四個參數F、A、N和M,并進行判斷,若M為零,則將F置為零;反之,再判斷F是否為零,如果F為零,將F更新為1,同時將A的大小設置為M ;如果F不為零,判斷A加N是否大于M,如果大于M,將A的數值更新為M ;否則,將A的數值更新為A加N ;接下來依次更新后面個各表項,直到第q個表項更新完畢后,然后再從第1個表項開始重新依次重新更新這q個表項,更新過程循環進行。
2.一種基于流分類的分組流量控制方法,包括如下步驟(1)根據用戶的需求,配置通信節點中的字段表、規則表、令牌桶容量參數表和流控參數表,該字段表,包括t個字段,字段是指數據分組不同層次頭部中的地址、服務等級和協議號,t是一個大于或者等于1正整數;該規則表,存放有η條規則,每一條規則包含m個條款和一個流控標簽,其中條款由字段、操作和數值組成,操作包括大于、小于、等于、不等于、大于等于、小于等于;流控標簽指示當從數據分組中提取的每個字段的數值均和條款中規定的數值相同時,應該進行的流控類型,流控標簽的個數為q,q是一個根據分組流控類型的多少而設定的大于或等于1的正整數;該令牌桶容量參數表,由q個表項組成,每個表項存放令牌桶的兩個參數每次向流控令牌桶中注入令牌的個數N以及令牌桶中令牌個數的上限M,每個令牌代表的字節數,根據實際需求進行設定,一個令牌代表一個字節,N是依據令牌桶流量的大小而設置的大于或者等于1的正整數,M是依據令牌桶突發時間的長短而設置的大于或者等于N的正整數;該流控參數表,由q個表項組成,每個表項有兩個流控參數流控啟動的標志位F和當前流控令牌桶中令牌的個數A,初始化時這兩個參數均置為零,并且在流控過程中這兩個參數是不斷更新的,F有0和1兩種狀態,0表示關閉流控,1表示啟動流控,A是一個小于或者等于M的非負整數;(2)通信節點從外部網絡中接收數據分組并將其存入輸入緩存器中,該輸入緩存器的大小和數目根據網絡中實際交換的分組大小和需求設定;(3)根據字段表中設置的關鍵字段從輸入緩存器中提取數據分組頭部中的相應的關鍵字段,從規則表中的第一條規則開始進行匹配,即檢查提取的關鍵字段是否符合該規則中所有的條款,如果符合,則匹配結束,否則再進行下一條規則匹配,直到關鍵字段與一條規則中所有的條款都符合為止,并給出匹配規則攜帶的流控標簽,如果關鍵字段和任何規則中的條款都不符合,則人為地設置一個流控標簽;(4)采用基于幀長的令牌桶流控算法對數據分組進行流量控制(4a)以流控標簽為索引查找流控參數表,取出流控參數表對應表項中的流控參數,即流控啟動的標志位F和令牌桶中令牌的個數A ;(4b)判斷F標志位是否為1,如果為1,則表示已經啟動令牌桶的流控功能;否則,令牌桶流控功能尚未啟動,不對數據分組進行流控,直接給出流控成功標識;(4c)判斷令牌桶中令牌的個數A是否大于數據分組需要消耗的令牌個數p,如果大于,則允許該分組通過流控,并給出流控成功標識,令牌桶中令牌的數目將減少P個;否則,給出流控失敗標識,P等于數據分組的字節數,是一個正整數;(4d)依次循環更新流控參數表的第1個表項到第q個表項4dl)更新流控參數表的第1個表項即取出流控參數表和令牌桶容量參數表第1個表項中的四個參數F、A、N和M,并進行如下操作首先判斷M是否為零,若M為零,則將F置為零;反之,再判斷F是否為零,如果F為零,將F更新為1,同時將A的大小設置為M ;如果F不為零,判斷A加N是否大于M,如果大于M,將A的數值更新為M ;否則,將A的數值更新為A力口 N ;4d2)從第2個表項到第q個表項循環執行4dl ;4d3)重復執行步驟4dl和4d2。
全文摘要
本發明公開了一種基于流分類的分組流量控制系統及控制方法,主要解決對不同的特征的數據分組提供不同的流量控制的問題。該系統包括字段表、規則表、流控參數表、令牌桶參數表、輸入緩存器模塊、匹配模塊和流控模塊。該方法包括首先配置規則表、字段表、流控參數表和令牌桶參數表,從網絡中接收數據分組并將其存入輸入緩存器中,從數據分組頭部提取字段表的中設置的字段,并查找規則表,與規則表中的規則進行匹配,匹配完畢后,給出流控標簽,以流控標簽為索引取出相應的流控參數,再對數據分組進行流量控制。本發明具有對流量控制精細的優點,可用于需要對不同特征的數據分組提供不同的流量控制的通信環境中。
文檔編號H04L12/56GK102387082SQ201110381758
公開日2012年3月21日 申請日期2011年11月25日 優先權日2011年11月25日
發明者劉煥峰, 史琰, 姚明旿, 孫漢汶, 張冰, 張奭, 潘偉濤, 趙偉偉, 邱智亮, 鮑民權 申請人:西安電子科技大學