專利名稱:一種提高網(wǎng)絡(luò)流量控制性能的方法及其設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機網(wǎng)絡(luò)技術(shù),尤其涉及一種提高網(wǎng)絡(luò)流量控制性能的方法及其設(shè)備。
背景技術(shù):
流量控制是一種主動調(diào)整流量輸出速率的措施,其典型的作用是限制流出某一網(wǎng)絡(luò)的某些流量與突發(fā),使這類報文以均勻的速度向外發(fā)送。
流量控制通常使用隊列和令牌桶算法來完成,當報文的發(fā)送速度過快時,首先在隊列進行緩存,在令牌桶的控制下再均勻地發(fā)送這些被緩沖的報文。
現(xiàn)有技術(shù)中用到的分層令牌桶(Hierarchical Token Bucket,HTB)是一種流量分類控制的經(jīng)典算法,它可以有效提高帶寬利用率和限制P2P等海量下載軟件的使用。對于正常上網(wǎng)的內(nèi)網(wǎng)主機,系統(tǒng)將允許它突破最小限速,但不能突破最大限帶;相反,對于長期使用P2P等軟件的內(nèi)網(wǎng)主機,系統(tǒng)將會減小它的帶寬,使其不能突破其最小限速,對其他主機的影響降到最低。每個HTB的類(CLASS)都有三種狀態(tài):綠色、黃色和紅色狀態(tài)。綠色狀態(tài)指當前速率小于或等于穩(wěn)定速度,該狀態(tài)下的CLASS有充足的令牌桶用于發(fā)送隊列中的數(shù)據(jù)包;黃色狀態(tài)指當前速率大于穩(wěn)定速率但不大于最大速率,該狀態(tài)下的CLASS沒有足夠的令牌桶用于發(fā)送隊列中的數(shù)據(jù)包,需向其上級CLASS借用令牌,其所有的上級CLASS被稱為父類。當黃色狀態(tài)下的CLASS積累了足夠多的令牌桶時再發(fā)送隊列中的數(shù)據(jù)包,如果其父類也處于黃色狀態(tài),則繼續(xù)此規(guī)則;紅色狀態(tài)指當前速率超過了最大速率,此CLASS不能從其父類分得任何數(shù)目的令牌桶。
圖1A為HTB算法中等待樹模型圖。該等待樹創(chuàng)建有CLASSl: 2和CLASSl: 5,其中CLASSl: 2下又創(chuàng)建有CLASSl: 3和CLASSl: 4。如圖所示,CLASSl: 2和CLASSl: 4都處于紅色狀態(tài),該狀態(tài)下進來的數(shù)據(jù)包將不會被馬上發(fā)送甚至被丟棄;CLASS1:3和CLASSl: 5處于黃色狀態(tài),該狀態(tài)下的進來的數(shù)據(jù)包將需要向其父類借用令牌桶發(fā)送。每隔一段時間HTB算法都會刷新一次等待樹,它會檢查CLASS的刷新時間與當前時間的差是否超過一定的值,如果超過則先去更新CLASS的令牌桶數(shù),并更新CLASS的狀態(tài)和當前CLASS的更新時間,當其狀態(tài)變?yōu)榫G色狀態(tài)時,將其從等待樹刪除。因此等待樹狀態(tài)為黃色或者紅色的CLASS組成,且為二叉樹。
圖2為HTB算法中的就緒樹模型圖。等待樹在經(jīng)過刷新后,原來處于黃色狀態(tài)的CLASSl: 5可能變成了綠色狀態(tài),其將從等待樹上刪除;原來處于紅色狀態(tài)的CLASSl: 2也變成了綠色狀態(tài),它也將從等待樹上刪除,而原來處于紅色狀態(tài)的CLASS1:4變成了黃色。
現(xiàn)有技術(shù)的流量控制設(shè)備通過遍歷就緒樹,就緒樹是由狀態(tài)為黃色和綠色狀態(tài)的CLASS組成,黃色的CLASS通過其綠色狀態(tài)的祖先CLASS掛到就緒樹上,而綠色狀態(tài)的CLASS則直接掛到就緒樹上。遍歷的原則是兩緯的,一個是層次,另外一個是優(yōu)先級。由于黃色的CLASS是通過其祖先掛到就緒樹上的,因此其層次更深,而綠色狀態(tài)的CLASS層次更淺,因此綠色狀態(tài)的CLASS將被優(yōu)先遍歷到,在遍歷綠色狀態(tài)的CLASS時,按照CLASS所指定的優(yōu)先級進行遍歷,從就緒樹中選擇到CLASS后,將CLASS的隊列中的數(shù)據(jù)包進行發(fā)送,然后根據(jù)數(shù)據(jù)包的長度再算出要消耗的令牌桶數(shù)目,再更新CLASS和其父類的令牌桶數(shù)和它們的狀態(tài)。
由于現(xiàn)有技術(shù)流量控制設(shè)備需要頻繁刷新等待樹,且遍歷就緒樹的復(fù)雜性,降低了設(shè)備的性能。發(fā)明內(nèi)容
本發(fā)明的目的是提供一種能提高網(wǎng)絡(luò)流量控制性能的方法及其設(shè)備。
為實現(xiàn)上述目的,一方面,本發(fā)明提供了一種提高網(wǎng)絡(luò)流量控制性能的方法,該方法包括以下步驟:接收數(shù)據(jù)包;根據(jù)配置的系統(tǒng)策略將數(shù)據(jù)包打上其所屬的CLASS標簽;根據(jù)CLASS標簽找到相應(yīng)CLASS ;當CLASS的狀態(tài)為可發(fā)送狀態(tài)時,根據(jù)數(shù)據(jù)包的長度再算出要消耗的令牌桶數(shù)目,根據(jù)當前時間更新CLASS當前所擁有的令牌桶數(shù),然后用CLASS當前所擁有的令牌桶數(shù)減去數(shù)據(jù)包所消耗的令牌桶數(shù),對CLASS的父類也做此操作,更新CLASS和其父類的狀態(tài);最后發(fā)送數(shù)據(jù)包。
另一方面,本發(fā)明提供了一種提高網(wǎng)絡(luò)流量控制性能的設(shè)備。該設(shè)備包括接收模塊、數(shù)據(jù)包標簽?zāi)K、流量處理模塊和發(fā)送模塊,其中接收模塊用于接收數(shù)據(jù)包;數(shù)據(jù)包標簽?zāi)K用于根據(jù)數(shù)據(jù)包類型建立類標簽;流量處理模塊用于根據(jù)類標簽找到相應(yīng)的CLASS,當CLASS的狀態(tài)為可發(fā)送狀態(tài)時,根據(jù)數(shù)據(jù)包的長度再算出要消耗的令牌桶數(shù)目,根據(jù)當前時間更新CLASS當前所擁有的令牌桶數(shù),然后用CLASS當前所擁有的令牌桶數(shù)減去數(shù)據(jù)包所消耗的令牌桶數(shù),對CLASS的父類也做此操作,更新CLASS和其父類的狀態(tài);發(fā)送模塊用于轉(zhuǎn)發(fā)數(shù)據(jù)包。
根據(jù)本發(fā)明的方法及其設(shè)備,可以提高網(wǎng)絡(luò)流量控制的性能。另外,本發(fā)明的方法還可用于策略中的網(wǎng)絡(luò)應(yīng)用控制、帶寬管理,并可進行網(wǎng)絡(luò)應(yīng)用時監(jiān)控。
本發(fā)明的示例性實施例將從下文中給出的詳細說明和本發(fā)明不同實施例的附圖中被更完全地理解,然而這不應(yīng)該被視為將本發(fā)明限制于具體的實施例,而應(yīng)該只是為了解釋和理解。
圖1A為現(xiàn)有技術(shù)HTB算法中等待樹模型圖1B為現(xiàn)有技術(shù)HTB算法中就緒樹模型圖2為本發(fā)明網(wǎng)絡(luò)流控設(shè)備應(yīng)用場景圖3為本發(fā)明實施例提高網(wǎng)絡(luò)流量控制性能的方法流程圖4為本發(fā)明實施例網(wǎng)絡(luò)流控設(shè)備的示意結(jié)構(gòu)圖5為本發(fā)明實施例流量處理模塊的示意結(jié)構(gòu)圖。
具體實施方式
本領(lǐng)域的普通技術(shù)人員將意識到,所述示例性實施例的下述詳細說明僅僅是說明性的,并且不是意在以任何方式加以限制。
圖2為本發(fā)明網(wǎng)絡(luò)流控設(shè)備應(yīng)用場景圖。在圖2中,網(wǎng)絡(luò)流控設(shè)備12用于接收用戶11(用戶A、用戶B,......,用戶N)發(fā)送的數(shù)據(jù),并按照流控策略轉(zhuǎn)發(fā)給因特網(wǎng)13。其中,流控策略包括針對用戶進行帶寬的分配與監(jiān)控,或者根據(jù)不同的帶寬應(yīng)用分配物理鏈路。
在一個例子中,對于正常上網(wǎng)的內(nèi)網(wǎng)用戶,網(wǎng)絡(luò)流控設(shè)備將允許它偶然突破最大限速;相反,對于長期使用P2P等軟件的內(nèi)網(wǎng)用戶,網(wǎng)絡(luò)流控設(shè)備將會減小它的帶寬,保證對其他主機的影響降到最低。
圖3為本發(fā)明實施例提高網(wǎng)絡(luò)流量控制性能的方法流程圖。該方法流程圖包括步驟 101-105。
在步驟101,網(wǎng)絡(luò)流量控制設(shè)備接收來自用戶數(shù)據(jù)包。
在步驟102,網(wǎng) 絡(luò)流量控制設(shè)備根據(jù)在步驟I中接收的數(shù)據(jù)包建立類標簽。
具體地,網(wǎng)絡(luò)流量控制設(shè)備可以根據(jù)數(shù)據(jù)包的元組信息或者數(shù)據(jù)包的應(yīng)用類型來建立類標簽,其中數(shù)據(jù)包的元組信息包括IP地址和端口號。
在一個例子中,網(wǎng)絡(luò)流量控制設(shè)備采用HTB算法中的TC命令為IP地址為191.168.1.100,且目的端口號為80的數(shù)據(jù)包建立類標簽。
TC命令如下:
tc filter add dev ethO protocol ip parent 1:0 prio I u32\
match ip src 192.168.1.100
match ip dport 80 Oxffff flowid 1:10
上述TC命令建立了類標簽1:10,該類標簽針對IP為191.168.1.100,且目的端口號為80的數(shù)據(jù)包都會打上類標簽1:10。
在步驟103,網(wǎng)絡(luò)流量控制設(shè)備根據(jù)數(shù)據(jù)包的類標簽找到相應(yīng)的CLASS。
在步驟104,網(wǎng)絡(luò)流量控制設(shè)備檢查CLASS的狀態(tài)是否為可發(fā)送狀態(tài),例如綠色狀態(tài),如果是,則根據(jù)數(shù)據(jù)包的長度再算出要消耗的令牌桶數(shù)目,根據(jù)當前時間更新CLASS當前所擁有的令牌桶數(shù),然后用CLASS當前所擁有的令牌桶數(shù)減去數(shù)據(jù)包所消耗的令牌桶數(shù),對CLASS的父類也做此操作,更新CLASS和其父類的狀態(tài)。
在一個例子中,網(wǎng)絡(luò)流量控制設(shè)備判斷CLASS的狀態(tài)是綠色狀態(tài)時,首先,更新該CLASS的令牌桶數(shù)目,計算從上次發(fā)送數(shù)據(jù)包到現(xiàn)在的時間里生成的令牌桶數(shù);接著,把生成的令牌桶數(shù)加上原先CLASS的令牌桶數(shù)為該CLASS的令牌桶數(shù);最后,將該CLASS總的令牌桶數(shù)減去數(shù)據(jù)包的長度需要消耗的令牌桶數(shù),結(jié)果作為該CLASS當前令牌桶數(shù),并更新CLASS的父類令牌桶數(shù)。再執(zhí)行步驟105。
令牌桶計算單位為tick( 一瞬間),tick是最小的時間計算單位。根據(jù)令牌桶的的計算公式可計算出傳輸數(shù)據(jù)包所需要的tick數(shù)。
令牌桶計算公式為: Tfir'll
TOK =-XlO6 RATEus
其中,L為數(shù)據(jù)包長,單位為Byte (字節(jié));RATE為數(shù)據(jù)傳輸速率,單位為Byte/s,且RATE =流控目標/8 表示傳輸數(shù)據(jù)包所需要秒數(shù)表示傳輸數(shù)據(jù)包所KAIL.KA1L.Ttic'll需微秒數(shù),X——表示傳輸數(shù)據(jù)包所需tick數(shù)。RATEus
在步驟105,網(wǎng)絡(luò)流量控制設(shè)備轉(zhuǎn)發(fā)CLASS中的數(shù)據(jù)包。
本發(fā)明實施例針對符合HTB算法中可發(fā)送狀態(tài)下的數(shù)據(jù)包,則直接計算該CLASS中令牌桶數(shù),并發(fā)送數(shù)據(jù)包,相比現(xiàn)有技術(shù)HTB的算法機制,省去了 HTB算法中的刷新等待樹步驟和遍歷就緒樹步驟,提高了數(shù)據(jù)的轉(zhuǎn)發(fā)性能。
圖4為本發(fā)明實施例網(wǎng)絡(luò)流控設(shè)備的示意結(jié)構(gòu)圖。所圖4所示,該設(shè)備包括接收模塊21、數(shù)據(jù)包標簽?zāi)K22、流量處理模塊23和發(fā)送模塊24。
接收模塊21用于接收來自用戶的數(shù)據(jù)包。
數(shù)據(jù)包標簽?zāi)K22根據(jù)接收模塊21接收的數(shù)據(jù)包建立類標簽。數(shù)據(jù)包標簽?zāi)K22可以根據(jù)數(shù)據(jù)包的元組信息或者數(shù)據(jù)包的應(yīng)用類型來建立類標簽,其中數(shù)據(jù)包的元組信息包括IP地址和端口號。
流量處理模塊23根據(jù)數(shù)據(jù)包標簽?zāi)K22建立的類標簽找到相應(yīng)的CLASS,當CLASS狀態(tài)為可發(fā)送狀態(tài)時,重新計算CLASS和其父類的令牌桶數(shù)。
流量處理模塊23首先更新CLASS中令牌桶數(shù)目,計算從上次發(fā)送數(shù)據(jù)包到現(xiàn)在的時間里生成的令牌桶數(shù);接著,把生成的令牌桶數(shù)加上原先CLASS中的令牌桶數(shù)為該CLASS總的令牌桶數(shù);最后,將該CLASS總的令牌桶數(shù)減去中數(shù)據(jù)包的長度需要消耗的令牌桶數(shù),結(jié)果作為該CLASS當前的令牌桶數(shù),同時對CLASS的父類進行同樣的操作。
發(fā)送模塊24轉(zhuǎn)發(fā)上述數(shù)據(jù)包。
本發(fā)明實施例網(wǎng)絡(luò)流量控制設(shè)備的接收模塊21、數(shù)據(jù)包標簽?zāi)K22、流量處理模塊23和發(fā)送模塊24分別為了實現(xiàn)圖3中各個方法的相應(yīng)流程,在此不再贅述。
圖5為本發(fā)明實施例流量處理模塊的示意結(jié)構(gòu)圖。所圖5所示,該流量處理模塊包括判斷單元31、更新單元32和計算單元33。
判斷單元31判斷CLASS的狀態(tài)是否為可發(fā)送狀態(tài),例如綠色狀態(tài)。
更新單元32根據(jù)判斷單元31的判斷結(jié)果執(zhí)行相應(yīng)的操作,當判斷單元31判斷類標簽所對應(yīng)的CLASS狀態(tài)為綠色狀態(tài)時,則計算從上次發(fā)送數(shù)據(jù)包到現(xiàn)在的時間里生成的令牌桶數(shù),并將生成的令牌桶數(shù)加上原先CLASS中的令牌桶數(shù)為該CLASS總令牌桶數(shù),對CLASS的父類做同樣的操作。
計算單元33根據(jù)更新單元32更新后的總令牌桶數(shù)減去數(shù)據(jù)包的長度需要消耗的令牌桶數(shù)后的數(shù)目,結(jié)果作為該CLASS當前令牌桶數(shù),更新CLASS狀態(tài)同時對CLASS的父類做同樣的操作。
需要說明的是,該網(wǎng)絡(luò)流控設(shè)備可以是一個獨立的網(wǎng)絡(luò)設(shè)備,也可以是以一個模塊形式存儲在于網(wǎng)關(guān)、上網(wǎng)行為管理等網(wǎng)絡(luò)設(shè)備中。
盡管已經(jīng)示出并描述了本發(fā)明的特殊實施例,然而在不背離本發(fā)明的示例性實施例及其更寬廣方面的前提下,本領(lǐng)域技術(shù)人員顯然可以基于此處的教學做出變化和修改。因此,所附的權(quán)利要求意在將所有這類不背離本發(fā)明的示例性實施例的真實精神和范圍的變化和更改包含在其范圍之內(nèi)。
權(quán)利要求
1.一種提高網(wǎng)絡(luò)流量控制性能的方法,其特征在于:包括以下步驟: 接收數(shù)據(jù)包; 根據(jù)所述數(shù)據(jù)包建立類標簽; 根據(jù)所述類標簽把所述數(shù)據(jù)包放入相應(yīng)類中; 當所述類的狀態(tài)為可發(fā)送狀態(tài)時,重新計算所述類和父類的令牌桶數(shù); 發(fā)送所述數(shù)據(jù)包。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于:所述可發(fā)送狀態(tài)是綠色狀態(tài)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于:所述根據(jù)所述數(shù)據(jù)包建立類標簽的步驟包括根據(jù)所述數(shù)據(jù)包的元組信息建立類標簽。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于:所述根據(jù)所述數(shù)據(jù)包建立類標簽的步驟包括根據(jù)所述數(shù)據(jù)包的應(yīng)用類型建立類標簽。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于:所述重新計算所述類中令牌桶數(shù)的步驟包括: 更新所述類和其父類的令牌桶數(shù)目; 將所述類和其父類的令牌桶數(shù)目減去所述數(shù)據(jù)包的長度需要消耗的令牌桶數(shù)。
6.一種提高網(wǎng)絡(luò)流量控制性能的設(shè)備,其特征在于包括: 接收模塊,用于接收數(shù)據(jù)包; 數(shù)據(jù)包標簽?zāi)K,用于根據(jù)數(shù)據(jù)包建立類標簽; 流量處理模塊,用于根據(jù)類標簽找到相應(yīng)的類,當類的狀態(tài)為可發(fā)送狀態(tài)時,重新計算所述類和其父類的令牌桶數(shù); 發(fā)送模塊:用于轉(zhuǎn)發(fā)數(shù)據(jù)包。
7.根據(jù)權(quán)利要求6所述的設(shè)備,其特征在于:所述數(shù)據(jù)包標簽?zāi)K根據(jù)數(shù)據(jù)包的元組信息建立類標簽。
8.根據(jù)權(quán)利要求6所述的設(shè)備,其特征在于:所述數(shù)據(jù)包標簽?zāi)K根據(jù)數(shù)據(jù)包的應(yīng)用類型建立類標簽。
9.根據(jù)權(quán)利要求6所述的設(shè)備,其特征在于:所述數(shù)據(jù)流量處理模塊包括: 判斷單元,用于判斷類的狀態(tài)是否為可發(fā)送狀態(tài); 更新單元,用于更新類和其父類的令牌桶數(shù)目; 計算單元,用于計算類和其父類的令牌桶數(shù)減去數(shù)據(jù)包的長度需要消耗的令牌桶數(shù)后的數(shù)目。
10.根據(jù)權(quán)利要求9所述的設(shè)備,其特征在于:所述可發(fā)送狀態(tài)是綠色狀態(tài)。
全文摘要
本發(fā)明公開了一種提高網(wǎng)絡(luò)流量控制性能的方法及其設(shè)備,所述方法包括以下步驟接收數(shù)據(jù)包;根據(jù)數(shù)據(jù)包建立類標簽;根據(jù)類標簽查找相應(yīng)的類;當類的狀態(tài)為可發(fā)送狀態(tài)時,則重新計算類和其父類的令牌桶數(shù),減去數(shù)據(jù)包所消耗的令牌桶,并更新類和其父類狀態(tài);發(fā)送數(shù)據(jù)包。所述設(shè)備包括接收模塊、數(shù)據(jù)包標簽?zāi)K、流量處理模塊和發(fā)送模塊。本發(fā)明能夠更好的提高數(shù)據(jù)轉(zhuǎn)發(fā)性能,可作為網(wǎng)絡(luò)流控設(shè)備功能實現(xiàn)。
文檔編號H04L12/801GK103152277SQ20111040401
公開日2013年6月12日 申請日期2011年12月7日 優(yōu)先權(quán)日2011年12月7日
發(fā)明者王慶官, 梁志勇, 米嘉 申請人:北京網(wǎng)康科技有限公司