專利名稱:一種基于應(yīng)用的流量控制方法及流量控制器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機領(lǐng)域,尤其涉及一種基于應(yīng)用的流量控制方法及流量控制器。
技術(shù)背景
通用的設(shè)備流量控制技術(shù)當(dāng)中,僅僅對各類應(yīng)用做保證帶寬和最大帶寬的限制, 當(dāng)沒有其他應(yīng)用流量時,最大利用剩余帶寬,提高傳輸效率。對于大多數(shù)交互性比較少的應(yīng) 用來說,這種策略基本能達到客戶需求,做到對帶寬管控的目的。
對于交互型的應(yīng)用,由于其對延時的要求較高,即使通過現(xiàn)有的流量控制技術(shù)對 其進行保證帶寬和最大帶寬的限制,但由于其流量跑不起來,帶寬還是被其他的非交互應(yīng) 用給搶了,導(dǎo)致延遲增加,交互變慢。因此,現(xiàn)有的技術(shù)在帶寬管控方面做得比較好,但延遲 保障是沒有的,即使在流控里面可以保證包的一個最小時延例如200ms或500ms,但對于某 些特定的應(yīng)用還是顯得過長,尤其是交互的時候。
在現(xiàn)實的用戶應(yīng)用場景當(dāng)中,某些應(yīng)用包括交互階段和非交互階段,比如ftp應(yīng) 用,當(dāng)在ftp命令交互階段,屬于交互階段,相信每個客戶都希望ftp的命令交互能快一點, 保證交互的延遲盡量的短,而在文件下載時,它又屬于非交互階段,希望對其做帶寬管控; 再比如http應(yīng)用,打開頁面時,瀏覽器和服務(wù)器之間需要交互獲取網(wǎng)頁對象,這時http應(yīng) 用處于交互階段,但在下載文件時,又屬于非交互階段。因此,特定應(yīng)用的交互數(shù)據(jù)包在進 行流量處理時,若剛好處于其它應(yīng)用流量需求比較大的情況下,則會得不到優(yōu)先處理,導(dǎo)致 延時較長,那么用戶會誤以為應(yīng)用訪問不了或在一定的程度上考驗用戶的耐心。
現(xiàn)有的流量控制技術(shù)并不能夠基于具體的應(yīng)用或者應(yīng)用所處的階段進行流量控 制,而是要么對應(yīng)用僅做帶寬保證,要么對應(yīng)用打上延遲敏感標記僅做延遲保證,都沒有對 普通應(yīng)用,交互型的特定應(yīng)用或者既存在交互也存在非交互的應(yīng)用的流量控制做細化地控 制處理,使得對于僅做了帶寬保證的應(yīng)用中的交互型數(shù)據(jù)包,即使做了帶寬保證但由于流 量小還是被搶占了帶寬,導(dǎo)致交互型數(shù)據(jù)包被延遲處理或被丟棄掉,而對于打上延遲敏感 標記僅做延遲保證的應(yīng)用,其處于非交互階段的正常型數(shù)據(jù)包會占用了交互型數(shù)據(jù)包的帶 寬,導(dǎo)致交互型數(shù)據(jù)包被延遲處理或被丟棄掉,嚴重影響了用戶的應(yīng)用訪問體驗。發(fā)明內(nèi)容
本發(fā)明實施例所要解決的技術(shù)問題在于,提供一種基于應(yīng)用的流量控制方法及流 量控制器,通過細分流量控制規(guī)則結(jié)合隊列優(yōu)先服務(wù)機制,既可保證交互型數(shù)據(jù)包的帶寬 又保證其能得到及時處理,并同時達到對非交互型數(shù)據(jù)包也做到帶寬掌控的目的。
為了解決上述技術(shù)問題,本發(fā)明實施例提供了一種基于應(yīng)用的流量控制方法,包 括當(dāng)接收到數(shù)據(jù)包時,識別所述數(shù)據(jù)包的類型,所述數(shù)據(jù)包的類型包括交互型數(shù)據(jù)包和 正常型數(shù)據(jù)包;當(dāng)識別出所述數(shù)據(jù)包為交互型數(shù)據(jù)包時,根據(jù)預(yù)設(shè)的第一流量控制規(guī)則,對所述交互型數(shù)據(jù)包進行流量控制處理,并將流量控制處理后的交互型數(shù)據(jù)包存入高優(yōu)先級存放隊列 中;當(dāng)識別出所述數(shù)據(jù)包為正常型數(shù)據(jù)包時,根據(jù)預(yù)設(shè)的第二流量控制規(guī)則,對所述正常 型數(shù)據(jù)包進行流量控制處理,并將流量控制處理后的正常型數(shù)據(jù)包存入低優(yōu)先級存放隊列 中;按存放隊列的優(yōu)先權(quán)等級,依次輸出相應(yīng)存放隊列中的數(shù)據(jù)包。
相應(yīng)地,本發(fā)明實施例還提供了一種基于應(yīng)用的流量控制器,包括識別模塊,用于當(dāng)接收到數(shù)據(jù)包時,識別所述數(shù)據(jù)包的類型,所述數(shù)據(jù)包的類型包括 交互型數(shù)據(jù)包和正常型數(shù)據(jù)包;控制模塊,用于當(dāng)所述識別模塊識別出所述數(shù)據(jù)包為交互型數(shù)據(jù)包時,根據(jù)預(yù)設(shè)的第 一流量控制規(guī)則,對所述交互型數(shù)據(jù)包進行流量控制處理,并將流量控制處理后的交互型 數(shù)據(jù)包存入高優(yōu)先級存放隊列中;當(dāng)識別出所述數(shù)據(jù)包為正常型數(shù)據(jù)包時,根據(jù)預(yù)設(shè)的第二流量控制規(guī)則,對所述正常 型數(shù)據(jù)包進行流量控制處理,并將流量控制處理后的正常型數(shù)據(jù)包存入低優(yōu)先級存放隊列 中;發(fā)送模塊,用于按存放隊列的優(yōu)先權(quán)等級,依次輸出相應(yīng)存放隊列中的數(shù)據(jù)包。
實施本發(fā)明實施例,具有如下有益效果通過將流量控制規(guī)則細分為第一流量控制規(guī)則和第二流量控制規(guī)則,分別對識別出 的交互型數(shù)據(jù)包和正常型數(shù)據(jù)進行相應(yīng)的流量控制,保證交互型數(shù)據(jù)包的帶寬和時延的要 求,同時也不會影響到非交互的正常型數(shù)據(jù)包的傳輸,提升了用戶的應(yīng)用訪問體驗。
圖1是本發(fā)明的基于應(yīng)用的流量控制器的第一實施例結(jié)構(gòu)組成示意圖; 圖2是本發(fā)明的基于應(yīng)用的流量控制器的第二實施例結(jié)構(gòu)組成示意圖;圖3是本發(fā)明的基于應(yīng)用的流量控制器的第三實施例結(jié)構(gòu)組成示意圖 圖4是本發(fā)明的基于應(yīng)用的流量控制方法的第一實施例流程示意圖; 圖5是本發(fā)明的基于應(yīng)用的流量控制方法的第二實施例流程示意圖; 圖6是本發(fā)明的基于應(yīng)用的流量控制方法的第三實施例流程示意圖 圖7是本發(fā)明的細分類別流量控制規(guī)則的規(guī)則樹示意圖; 圖8是本發(fā)明的基于應(yīng)用的流量控制方法中的存放隊列示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;?本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他 實施例,都屬于本發(fā)明保護的范圍。
圖1是本發(fā)明的基于應(yīng)用的流量控制器的第一實施例結(jié)構(gòu)組成示意圖;該流量控 制器設(shè)置于驅(qū)動設(shè)備中,其包括識別模塊1,用于當(dāng)接收到數(shù)據(jù)包時,識別所述數(shù)據(jù)包的類型,所述數(shù)據(jù)包的類型包括交互型數(shù)據(jù)包和正常型數(shù)據(jù)包。
具體的,當(dāng)驅(qū)動設(shè)備接收到數(shù)據(jù)包時,所述流量控制器首先可查看該數(shù)據(jù)包對應(yīng) 的連接跟蹤信息中的類別標識來確定該數(shù)據(jù)包的類型,并確定是否為用戶定義的特定應(yīng)用 的數(shù)據(jù)包,若所述連接跟蹤信息中并未設(shè)置類別標識,則可根據(jù)該數(shù)據(jù)包中包括的五元組 信息以及流量控制應(yīng)用表,判斷該數(shù)據(jù)包所對應(yīng)的應(yīng)用的類型,所述五元組信息包括源地 址信息、源端口信息、目的地址信息、目的端口信息,協(xié)議類型,然后判斷該類型的應(yīng)用是否 在特定應(yīng)用交互型索引表中記錄,從而判斷該數(shù)據(jù)包是否為特定應(yīng)用所對應(yīng)的數(shù)據(jù)包,其 中,所述流量控制應(yīng)用表和所述特定應(yīng)用交互型索引表可以是由用戶在應(yīng)用層定義的,所 述流量控制應(yīng)用表中包括五元組信息和與五元組信息呈一一對應(yīng)關(guān)系的應(yīng)用類型,所述特 定應(yīng)用索引表包括一個或者多個用戶設(shè)置的特定應(yīng)用的應(yīng)用類型。
另外,也可以通過提取數(shù)據(jù)包中的特征碼,根據(jù)一個或者多個數(shù)據(jù)包的特征碼識 別該數(shù)據(jù)包的類型,以及具體是否為特定應(yīng)用的數(shù)據(jù)包。
當(dāng)確定接收到的數(shù)據(jù)包并不是特定應(yīng)用所對應(yīng)的數(shù)據(jù)包時,確定該數(shù)據(jù)包為普通 應(yīng)用的數(shù)據(jù)包;當(dāng)確定接收到的數(shù)據(jù)包為特定應(yīng)用所對應(yīng)的數(shù)據(jù)包時,所述識別模塊1可根據(jù)所述數(shù) 據(jù)包的長度,或者通過判斷所述數(shù)據(jù)包中是否包括交互命令標志的方式,識別所述數(shù)據(jù)包 的類型,所述數(shù)據(jù)包的類型包括交互型數(shù)據(jù)包和正常型數(shù)據(jù)包,當(dāng)識別出所述數(shù)據(jù)包為交 互型數(shù)據(jù)包時,確定該數(shù)據(jù)包對應(yīng)的特定應(yīng)用當(dāng)前處于交互階段,當(dāng)識別出所述數(shù)據(jù)包為 正常型數(shù)據(jù)包時,確定該數(shù)據(jù)包為特定應(yīng)用處于一般階段如數(shù)據(jù)下載階段的數(shù)據(jù)包。
控制模塊2,用于當(dāng)所述識別模塊1識別出所述數(shù)據(jù)包為交互型數(shù)據(jù)包時,根據(jù)預(yù) 設(shè)的第一流量控制規(guī)則,對所述交互型數(shù)據(jù)包進行流量控制處理,并將流量控制處理后的 交互型數(shù)據(jù)包存入高優(yōu)先級存放隊列中;當(dāng)識別出所述數(shù)據(jù)包為正常型數(shù)據(jù)包時,根據(jù)預(yù)設(shè)的第二流量控制規(guī)則,對所述正常 型數(shù)據(jù)包進行流量控制處理,并將流量控制處理后的正常型數(shù)據(jù)包存入低優(yōu)先級存放隊列 中;發(fā)送模塊3,用于按存放隊列的優(yōu)先權(quán)等級,依次輸出相應(yīng)存放隊列中的數(shù)據(jù)包。所述 高優(yōu)先級存放隊列的優(yōu)先權(quán)等級高于所述低優(yōu)先級存放隊列。
具體的,所述第一流量控制規(guī)則和所述第二流量控制規(guī)則是由用戶預(yù)先設(shè)置后, 下發(fā)給驅(qū)動層中的所述控制模塊2的,其中,所述第一流量控制規(guī)則包括對相應(yīng)的一個或 者多個特定應(yīng)用的交互型數(shù)據(jù)包的帶寬控制和延時控制的流量控制,以對交互型數(shù)據(jù)包進 行帶寬保證和延遲保證,例如,包括對ftp、http等特定應(yīng)用的交互型數(shù)據(jù)包的帶寬的大 小,上行時的帶寬,下行時的帶寬等;所述第二流量控制規(guī)則包括帶寬控制,用于對特定應(yīng) 用的正常型數(shù)據(jù)包以及普通應(yīng)用的正常型數(shù)據(jù)包進行帶寬控制,僅做帶寬保證。
所述發(fā)送模塊3優(yōu)先處理輸出高優(yōu)先級存放隊列中的交互型數(shù)據(jù)包,當(dāng)高優(yōu)先級 存放隊列中的交互型數(shù)據(jù)包為空時,所述發(fā)送模塊3處理輸出所述低優(yōu)先級存放隊列中的 正常型數(shù)據(jù)包。由于交互型數(shù)據(jù)包中僅包括一些數(shù)據(jù)量較小的控制指令,所述發(fā)送模塊3 很快就會處理輸出完,處理完后即釋放相應(yīng)的帶寬供所述發(fā)送模塊3處理輸出低優(yōu)先級存 放隊列中的普通應(yīng)用的正常型數(shù)據(jù)包和/或特定應(yīng)用中的非交互階段的正常型數(shù)據(jù)包。
通過上述實施例的描述可知,本發(fā)明具有以下優(yōu)點通過細分流量控制規(guī)則結(jié)合隊列優(yōu)先服務(wù)機制的方式即優(yōu)先處理高優(yōu)先權(quán)的存放隊 列,對識別出的交互型數(shù)據(jù)包和正常型數(shù)據(jù)分別設(shè)置第一流量控制規(guī)則和第二流量控制規(guī) 則進行流量控制,并將數(shù)據(jù)包存儲在相應(yīng)優(yōu)先權(quán)等級的存放隊列中,保證交互型數(shù)據(jù)包的 帶寬和時延的要求,同時也不會影響到非交互的正常型數(shù)據(jù)包的傳輸,提升了用戶的應(yīng)用 訪問體驗。
再請參見圖2,是本發(fā)明的基于應(yīng)用的流量控制器的第二實施例結(jié)構(gòu)組成示意圖, 本實施例中的流量控制器包括上述實施例中的識別模塊1、控制模塊2、發(fā)送模塊3,進一步 的,如圖2所示,該流量控制器還包括用戶層控制模塊4,監(jiān)測模塊5以及刪除模塊6,其 中,所述用戶層控制模塊4,用于獲取預(yù)設(shè)的流量控制應(yīng)用表,特定應(yīng)用交互型索引表以及 包括特定應(yīng)用的第一流量控制規(guī)則和第二流量控制規(guī)則的細分類別流量控制規(guī)則。
具體的,可通過向用戶提供用戶界面的方式,獲取用戶設(shè)置的流量控制應(yīng)用表,特 定應(yīng)用交互型索引表,其中,所述流量控制應(yīng)用表的每項為應(yīng)用的源地址范圍和端口范圍, 應(yīng)用的目的地址范圍和端口范圍,協(xié)議類別+應(yīng)用類型,并根據(jù)包括特定應(yīng)用的第一流量 控制規(guī)則、第二流量控制規(guī)則和其他一些類別流量控制規(guī)則的細分類別流量控制規(guī)則,構(gòu) 成控制規(guī)則樹,所述第一流量控制規(guī)則包括各類交互型數(shù)據(jù)包對應(yīng)的特定應(yīng)用的應(yīng)用類 別流量控制規(guī)則和其他類別流量控制規(guī)則,所述第二流量控制規(guī)則包括各類正常型數(shù)據(jù) 包對應(yīng)的普通應(yīng)用或者特定應(yīng)用的應(yīng)用類別流量控制規(guī)則和其他類別流量控制規(guī)則。
特定應(yīng)用的交互型數(shù)據(jù)包根據(jù)所述第一流量控制規(guī)則中的特定應(yīng)用的應(yīng)用類別 流量控制規(guī)則進行流量控制,其處理輸出的優(yōu)先級最高,存入高優(yōu)先級存放隊列中;對于 在根據(jù)數(shù)據(jù)包中的特征碼識別該數(shù)據(jù)包的應(yīng)用類型的過程中,根據(jù)所述第一流量控制規(guī)則 中的其他類別流量控制規(guī)則對該數(shù)據(jù)包進行流量控制,其處理輸出的優(yōu)先級低于特定應(yīng)用 的交互型數(shù)據(jù)包,存入第三優(yōu)先級存放隊列中;對于特定應(yīng)用的正常型數(shù)據(jù)包和普通應(yīng)用 的正常型數(shù)據(jù)包,根據(jù)第二流量控制規(guī)則中的相應(yīng)應(yīng)用的應(yīng)用類別流量控制規(guī)則進行流量 控制,其處理輸出的優(yōu)先級低于未確定出是否為特定應(yīng)用的交互型數(shù)據(jù)包的特定應(yīng)用數(shù)據(jù) 包,存入低優(yōu)先級存放隊列中;而對于未能識別出是何種應(yīng)用類型的數(shù)據(jù)包,根據(jù)第二流量 控制規(guī)則中的其他類別流量控制規(guī)則進行流量控制,其優(yōu)先級最低,存入第四優(yōu)先級存放 隊列中。
將獲取到的用戶設(shè)置的所述預(yù)設(shè)的流量控制應(yīng)用表,特定應(yīng)用交互型索引表以及 控制規(guī)則樹即細分類別流量控制規(guī)則下發(fā)給驅(qū)動層,以使所述識別模塊1和所述控制模塊 2進行數(shù)據(jù)包的識別以及流量控制規(guī)則的設(shè)置與處理操作。
監(jiān)測模塊5,用于當(dāng)采用根據(jù)所述數(shù)據(jù)包中包括的五元組信息以及流量控制應(yīng)用 表識別所述數(shù)據(jù)包所對應(yīng)的應(yīng)用的類型時,監(jiān)測所述高優(yōu)先級存放隊列、所述低優(yōu)先級存 放隊列以及所述第四優(yōu)先級存放隊列中的數(shù)據(jù)包的個數(shù);或者當(dāng)采用從數(shù)據(jù)包中提取出的特征碼的方式識別所述數(shù)據(jù)包所對應(yīng)的應(yīng)用的類型 時,監(jiān)測所述高優(yōu)先級存放隊列、所述低優(yōu)先級存放隊列、所述第三優(yōu)先級存放隊列以及所 述第四優(yōu)先級存放隊列中的數(shù)據(jù)包的個數(shù)。
所述刪除模塊6,用于當(dāng)所述監(jiān)測模塊5監(jiān)測到相應(yīng)存放隊列的數(shù)據(jù)包的個數(shù)達 到預(yù)設(shè)的數(shù)量閾值時,根據(jù)對相應(yīng)存放隊列中的數(shù)據(jù)包設(shè)置的丟包優(yōu)先系數(shù)以及預(yù)設(shè)的系數(shù)閾值,刪除相應(yīng)存放隊列中的數(shù)據(jù)包,并使所述控制模塊2停止向相應(yīng)的存放隊列存入 數(shù)據(jù)包。
具體的,可通過所述監(jiān)測模塊5對高優(yōu)先級存放隊列中的數(shù)據(jù)包的個數(shù)進行監(jiān) 測,用戶可預(yù)先設(shè)置相應(yīng)的數(shù)據(jù)包數(shù)量閾值,當(dāng)所述監(jiān)測模塊5監(jiān)測到所述高優(yōu)先級存放 隊列中的數(shù)據(jù)包的個數(shù)達到用戶預(yù)設(shè)的所述數(shù)量閾值時,則表明該隊列即將發(fā)生擁塞,所 述刪除模塊6根據(jù)當(dāng)前識別出的交互型數(shù)據(jù)包的丟包優(yōu)先級,結(jié)合高優(yōu)先級數(shù)據(jù)包入隊而 低優(yōu)先級數(shù)據(jù)包丟棄的方式,刪除相應(yīng)的低優(yōu)先級數(shù)據(jù)包,并通知所述控制模塊2停止向 高優(yōu)先級存放隊列中存入數(shù)據(jù)包,保證隊列中的數(shù)據(jù)進行穩(wěn)定處理和發(fā)送。低優(yōu)先級存放 隊列、第三優(yōu)先級存放隊列和第四優(yōu)先級存放隊列采用同樣的執(zhí)行策略。
例如,高優(yōu)先級存放隊列為無擁塞控制的流量包(如延遲敏感流量,交互型數(shù)據(jù) 包),所述高優(yōu)先級存放隊列中包括Pi、P2、 、Pk、 、!即包含Kl個丟包優(yōu)先級,其中k 是優(yōu)先系數(shù),k=l (例如Pl)相對于最高的丟包優(yōu)先級。當(dāng)隊列緩沖占有率超過了用戶設(shè)置 的個數(shù)閾值Pk (KKKl)時,則僅有丟包優(yōu)先級是從1到k-Ι的數(shù)據(jù)包被允許輸入到高優(yōu) 先級存放隊列進行輸出,而其他優(yōu)先級的包則被丟棄,即在第Plri個交互型數(shù)據(jù)包之后識別 出的交互型數(shù)據(jù)包被丟棄。同樣的,對于低優(yōu)先級存放隊列、第三優(yōu)先級存放隊列和第四優(yōu) 先級存放隊列執(zhí)行同樣的丟包策略。
當(dāng)某一應(yīng)用建立時,該應(yīng)用對應(yīng)的所有的數(shù)據(jù)包根據(jù)連接跟蹤信息進行數(shù)據(jù)傳 遞,在本實施例中,當(dāng)接收到數(shù)據(jù)包時,所述識別模塊1判斷所述數(shù)據(jù)包對應(yīng)的連接跟蹤信 息中是否包括類別標識,若存在,則可直接根據(jù)該類別標識,識別確定出該數(shù)據(jù)包所對應(yīng)的 應(yīng)用的類型以及是否為特定應(yīng)用,以便于能夠最終識別出該數(shù)據(jù)包是交互型數(shù)據(jù)包還是正 常型數(shù)據(jù)包;若不存在,則所述識別模塊1首先可對該數(shù)據(jù)包的應(yīng)用類型進行判斷識別,并在識別 出所述數(shù)據(jù)包所對應(yīng)的應(yīng)用的類型后,判斷在所述用戶層控制模塊下發(fā)的特定應(yīng)用交互型 索引表中是否記錄有識別出的所述類型,若判斷結(jié)果為記錄有識別出的所述類型,則確定 所述數(shù)據(jù)包所對應(yīng)的應(yīng)用為特定應(yīng)用,否則,為普通應(yīng)用,不論判斷的結(jié)果是普通應(yīng)用或是 特定應(yīng)用,所述識別模塊1均會在該數(shù)據(jù)包所對應(yīng)的連接跟蹤信息中設(shè)置類別標識,所述 類別標識的組合為是否為特定應(yīng)用+應(yīng)用類型,設(shè)置所述類別標識的作用在于一方面, 對于后續(xù)的與該數(shù)據(jù)包為同一應(yīng)用的數(shù)據(jù)包,所述識別模塊1能夠直接根據(jù)連接跟蹤信息 的類別標識,識別其所對應(yīng)的應(yīng)用的類型;另一方面可使得所述控制模塊2能夠根據(jù)所述 類別標識,采用與所述類別標識所指示的應(yīng)用所對應(yīng)的應(yīng)用類別流量控制規(guī)則,對所述數(shù) 據(jù)包進行流量控制處理。
具體的,如圖2所示,所述識別模塊1可包括第一判斷單元111,用于判斷所述數(shù)據(jù)包所對應(yīng)的應(yīng)用是否為特定應(yīng)用;具體的,所述 第一判斷單元111在執(zhí)行判斷過程中,可通過以下子單元對接收到的數(shù)據(jù)包是否為特定應(yīng) 用進行判斷第一判斷子單元,用于判斷所述數(shù)據(jù)包所對應(yīng)的連接跟蹤信息中是否包括類別標識; 第一應(yīng)用類型識別子單元,用于當(dāng)所述第一判斷子單元檢測判斷的結(jié)果為是時,根據(jù) 所述類別標識,識別所述數(shù)據(jù)包所對應(yīng)的應(yīng)用的類型,并確定出所述數(shù)據(jù)包的應(yīng)用是否為 特定應(yīng)用;或者,用于當(dāng)所述第一判斷子單元判斷的結(jié)果為否時,根據(jù)所述數(shù)據(jù)包所包括的五元組信息和所述用戶層控制模塊下發(fā)的流量控制應(yīng)用表,識別所述數(shù)據(jù)包的應(yīng)用的類 型,并在識別出類型后,判斷在所述特定應(yīng)用交互型索引表中是否記錄有識別出的所述類 型,若判斷結(jié)果為記錄有識別出的所述類型,則確定所述數(shù)據(jù)包所對應(yīng)的應(yīng)用為特定應(yīng)用, 否則,為普通應(yīng)用,同時根據(jù)判斷結(jié)果,在所述數(shù)據(jù)包的連接跟蹤信息中設(shè)置與識別出的所 述類型相對應(yīng)的類別標識,其中,所述類別標識的格式為是否為特定應(yīng)用+應(yīng)用類型。具 體的,在傳輸過程中,各類應(yīng)用的數(shù)據(jù)包中均包括一個五元組用于路由和過濾,所述五元組 包括應(yīng)用的源地址和端口、應(yīng)用的目的地址和端口、協(xié)議類型,所述流量控制應(yīng)用表則包 括至少一個五元組信息以及與每一個五元組信息一一對應(yīng)的應(yīng)用類型。
第一識別單元112,用于當(dāng)所述第一判斷單元111的判斷結(jié)果為否時,確定所述數(shù) 據(jù)包為普通應(yīng)用的正常型數(shù)據(jù)包,當(dāng)判斷結(jié)果為是時,確定所述數(shù)據(jù)包為特定應(yīng)用的數(shù)據(jù) 包;長度判斷單元113,用于當(dāng)所述第一識別單元112確定所述數(shù)據(jù)包為特定應(yīng)用的數(shù)據(jù) 包,判斷所述特定應(yīng)用的數(shù)據(jù)包的長度是否小于預(yù)設(shè)的長度閾值;第二識別單元114,用于當(dāng)所述長度判斷單元113判斷結(jié)果為所述特定應(yīng)用的數(shù)據(jù)包 的長度小于預(yù)設(shè)的長度閾值時,則識別確定所述數(shù)據(jù)包為交互型數(shù)據(jù)包,在所述交互型數(shù) 據(jù)包中設(shè)置延時敏感標志,否則,識別確定所述數(shù)據(jù)包為正常型數(shù)據(jù)包。
具體的,所述第一識別單元112與所述控制模塊2和所述長度判斷單元113相連 接,當(dāng)所述第一識別單元112確定出所述數(shù)據(jù)包為普通應(yīng)用的正常型數(shù)據(jù)包時,與所述第 一識別單元112相連接的所述控制模塊2便可根據(jù)所述細分類別流量控制規(guī)則中的第二流 量控制規(guī)則中的與所述正常型數(shù)據(jù)包的類別標志相對應(yīng)的應(yīng)用的應(yīng)用類別流量控制規(guī)則, 對所述正常型數(shù)據(jù)包進行流量控制處理,并將流量控制處理后的正常型數(shù)據(jù)包存入低優(yōu)先 級存放隊列中;當(dāng)所述第一識別單元112確定出所述數(shù)據(jù)包為特定應(yīng)用的數(shù)據(jù)包時,與所述第一識別 單元112相連接的所述長度判斷單元113判斷所述特定應(yīng)用的數(shù)據(jù)包的長度是否小于預(yù)設(shè) 的長度閾值以便于所述第二識別單元114能夠判斷該數(shù)據(jù)包為特定應(yīng)用對應(yīng)的交互型數(shù) 據(jù)包還是特定應(yīng)用的正常型數(shù)據(jù)包,其判斷依據(jù)為交互型數(shù)據(jù)包的特點為長度較小,僅有 幾十個字節(jié)甚至僅幾個字節(jié),根據(jù)該特點,所述長度判斷單元113通過判斷所述特定應(yīng)用 的數(shù)據(jù)包的長度是否小于用戶預(yù)設(shè)的長度閾值的方式進行判斷,當(dāng)所述長度判斷單元113 的判斷結(jié)果為所述特定應(yīng)用的數(shù)據(jù)包的長度小于預(yù)設(shè)的長度閾值時,例如小于用戶預(yù)設(shè)的 50個字節(jié),所述第二識別單元114便可識別出所述數(shù)據(jù)包為交互型數(shù)據(jù)包,該數(shù)據(jù)包所對 應(yīng)的應(yīng)用處于交互階段,同時,在所述交互型數(shù)據(jù)包中設(shè)置延時敏感標志;否則,識別出為 特定應(yīng)用的正常型數(shù)據(jù)包,該數(shù)據(jù)包所對應(yīng)的應(yīng)用處于非交互階段。
第二識別單元114也與所述控制模塊2相連接,當(dāng)所述第二識別單元114識別出 所述數(shù)據(jù)包為交互型數(shù)據(jù)包時,所述控制模塊2根據(jù)所述細分類別流量控制規(guī)則中第一流 量控制規(guī)則的,與所述交互型數(shù)據(jù)包的類別標志相對應(yīng)的特定應(yīng)用的應(yīng)用類別流量控制規(guī) 則,以及所述延時敏感標志,對所述交互型數(shù)據(jù)包進行包括帶寬控制和延時控制的流量控 制處理,并將所述交互型數(shù)據(jù)包存入高優(yōu)先級存放隊列中;當(dāng)?shù)诙R別單元114識別出所 述數(shù)據(jù)包為正常型數(shù)據(jù)包時,所述控制模塊2根據(jù)所述細分類別流量控制規(guī)則中的第二流 量控制規(guī)則中的與所述正常型數(shù)據(jù)包的類別標志相對應(yīng)的應(yīng)用的相應(yīng)類型應(yīng)用類別流量控制規(guī)則,對所述正常型數(shù)據(jù)包進行流量控制處理,并將流量控制處理后的正常型數(shù)據(jù)包 存入低優(yōu)先級存放隊列中。
所述第一流量控制規(guī)則中包括與多種特定應(yīng)用相對應(yīng)的流量控制規(guī)則,每一特定 應(yīng)用的交互型數(shù)據(jù)包的流量控制規(guī)則中均包括帶寬保證和延遲保證。當(dāng)所述第二識別單元 114識別出接收到的所述數(shù)據(jù)包為交互型數(shù)據(jù)包,所述控制模塊2采用第一流量控制規(guī)則 中的,與所述交互型數(shù)據(jù)包對應(yīng)的連接跟蹤信息中的類別標識所指示的特定應(yīng)用的應(yīng)用類 別流量控制規(guī)則中定義的帶寬的大小,上行時的帶寬,下行時的帶寬等流量控制規(guī)則,分配 給所述交互型數(shù)據(jù)包相應(yīng)的帶寬,并根據(jù)所述數(shù)據(jù)包中的延時敏感標志將所述交互型數(shù)據(jù) 包存入高優(yōu)先級存放隊列中優(yōu)先處理輸出保證時延較小的要求。
當(dāng)所述第一識別單元112識別出接收到的數(shù)據(jù)包為普通應(yīng)用的正常型數(shù)據(jù)包時, 或第二識別單元114識別出接收到的數(shù)據(jù)包為特定應(yīng)用的正常型數(shù)據(jù)包時,所述控制模塊 2根據(jù)所述普通應(yīng)用或者特定應(yīng)用的正常型數(shù)據(jù)包對應(yīng)的連接跟蹤信息設(shè)置的類別標識以 及預(yù)設(shè)的第二流量控制規(guī)則,僅對所述正常型數(shù)據(jù)包作帶寬保證等流量控制,并將所述正 常型數(shù)據(jù)包存入低優(yōu)先級存放隊列中,當(dāng)高優(yōu)先級存放隊列中的數(shù)據(jù)包為空時,再行處理 輸出。對于所述第二流量控制規(guī)則中相應(yīng)應(yīng)用的應(yīng)用類別流量控制規(guī)則,如CIFS應(yīng)用類別 流量控制規(guī)則,這些控制規(guī)則都是在非交互階段生效的。
進一步的,所述控制模塊2還用于當(dāng)所述第一判斷單元111的第一應(yīng)用類型識別 單元根據(jù)所述數(shù)據(jù)包中的五元組信息和所述用戶層控制模塊4下發(fā)的流量控制應(yīng)用表未 能識別出所述數(shù)據(jù)包所對應(yīng)的應(yīng)用類型時,根據(jù)所述細分類別流量控制規(guī)則中第二流量控 制規(guī)則的其他類別流量控制規(guī)則,對所述數(shù)據(jù)包進行流量控制處理,并將所述數(shù)據(jù)包存入 第四優(yōu)先級存放隊列中,所述第四優(yōu)先級存放隊列的優(yōu)先權(quán)等級低于所述低優(yōu)先級存放隊 列。
具體的,若所述第一應(yīng)用類型識別子單元根據(jù)所述數(shù)據(jù)包所包括的五元組信息和 所述用戶層控制模塊下發(fā)的流量控制應(yīng)用表,無法識別出該數(shù)據(jù)包所屬的應(yīng)用類型,則該 數(shù)據(jù)包可能為垃圾流量數(shù)據(jù)包,所述控制模塊2根據(jù)所述細分類別流量控制規(guī)則中第二流 量控制規(guī)則的其他類別流量控制規(guī)則,將所述數(shù)據(jù)包存入第四優(yōu)先級存放隊列中。所述第 四優(yōu)先級存放隊列的優(yōu)先權(quán)等級最低,即當(dāng)所述高優(yōu)先級存放隊列的數(shù)據(jù)包處理并輸出完 后,處理所述低優(yōu)先級存放隊列中的數(shù)據(jù)包,最后處理所述第四優(yōu)先級存放隊列中的數(shù)據(jù) 包。
再請參見圖3,是本發(fā)明的基于應(yīng)用的流量控制器的第三實施例結(jié)構(gòu)組成示意圖, 本實施例中的所述基于應(yīng)用的流量控制器與圖2所示實施例的不同之處在于進行數(shù)據(jù)包的類型識別時,若數(shù)據(jù)包所對應(yīng)的連接跟蹤信息中不包括類別標識時,所 述識別模塊1通過提取接收到的數(shù)據(jù)包中的特征碼,并對提取的特征碼進行分析,識別出 所述數(shù)據(jù)包所對應(yīng)的應(yīng)用的類型,然后根據(jù)用戶設(shè)置的特定應(yīng)用交互型索引表判斷該應(yīng)用 類型的應(yīng)用是否為用戶設(shè)定的特定應(yīng)用,并根據(jù)判斷結(jié)果(不論為特定應(yīng)用還是非特定應(yīng) 用的普通應(yīng)用),在該數(shù)據(jù)包所對應(yīng)的連接跟蹤信息中設(shè)置類別標識,所述類別標識的格式 為是否為特定應(yīng)用+應(yīng)用類型,以便對后續(xù)相同應(yīng)用的數(shù)據(jù)包,能夠根據(jù)連接跟蹤信息直 接判斷數(shù)據(jù)包是否為特定應(yīng)用及其應(yīng)用類型,使得所述控制模塊2能夠直接進行相應(yīng)的流 量控制;若是特定應(yīng)用,則該數(shù)據(jù)包為特定應(yīng)用所對應(yīng)的數(shù)據(jù)包,否則,為普通應(yīng)用對應(yīng)的正常 型數(shù)據(jù)包;當(dāng)判斷出該數(shù)據(jù)包為特定應(yīng)用所對應(yīng)的數(shù)據(jù)包時,通過判斷該數(shù)據(jù)包中是否包 括交互命令標志的方式,判斷該數(shù)據(jù)包是否為特定應(yīng)用的交互型數(shù)據(jù)包,當(dāng)包括交互命令 標志時,為交互型數(shù)據(jù)包,否則為特定應(yīng)用的正常型數(shù)據(jù)包。
同時,在根據(jù)所述特征碼識別所述數(shù)據(jù)包所對應(yīng)的應(yīng)用的類型的過程中,為了保 證該數(shù)據(jù)包能夠及時的進行處理,可直接根據(jù)第一流量控制規(guī)則中特定應(yīng)用的其他應(yīng)用類 別流量控制規(guī)則對該數(shù)據(jù)包進行流量控制,并將其存入優(yōu)先級低于高優(yōu)先級存放隊列,高 于低優(yōu)先級存放隊列的第三優(yōu)先級存放隊列中,優(yōu)先于已經(jīng)識別出為正常型數(shù)據(jù)包輸出。
具體的,如圖3所示,本實施例的所述基于應(yīng)用的流量控制器中的識別模塊1包 括第二判斷單元121,用于判斷所述數(shù)據(jù)包所對應(yīng)的應(yīng)用是否為特定應(yīng)用;具體的,所述 第二判斷單元121在執(zhí)行判斷過程中,可通過以下子單元對接收到的數(shù)據(jù)包是否為特定應(yīng) 用進行判斷第二判斷子單元,用于判斷所述數(shù)據(jù)包所對應(yīng)的連接跟蹤信息中是否包括類別標識; 第二應(yīng)用類型識別子單元,用于當(dāng)所述第二判斷子單元判斷結(jié)果為是時,根據(jù)所述類 別標識,識別所述數(shù)據(jù)包所對應(yīng)的應(yīng)用的類型,并確定出所述數(shù)據(jù)包的應(yīng)用是否為特定應(yīng) 用;提取子單元,用于當(dāng)所述第二判斷子單元判斷結(jié)果為否時,提取數(shù)據(jù)包中的特征碼; 第三應(yīng)用類型識別子單元,用于根據(jù)所述提取子單元提取的特征碼識別所述數(shù)據(jù)包所 對應(yīng)的應(yīng)用的類型,并在識別出所述數(shù)據(jù)包的應(yīng)用的類型后,判斷在所述特定應(yīng)用交互型 索引表中是否記錄有識別出的所述類型,若判斷結(jié)果為記錄有識別出的所述類型,則確定 所述數(shù)據(jù)包所對應(yīng)的應(yīng)用為特定應(yīng)用,否則,為普通應(yīng)用,同時根據(jù)判斷結(jié)果,在所述數(shù)據(jù) 包的連接跟蹤信息中設(shè)置與識別出的所述類型相對應(yīng)的類別標識,其中,所述類別標識的 組合為是否為特定應(yīng)用+應(yīng)用類型;第三識別單元122,用于當(dāng)所述第二判斷單元121的判斷結(jié)果為否時,確定所述數(shù)據(jù)包 為普通應(yīng)用的正常型數(shù)據(jù)包,當(dāng)判斷結(jié)果為是時,確定所述數(shù)據(jù)包為特定應(yīng)用所對應(yīng)的數(shù) 據(jù)包;交互命令標志識別單元123,用于當(dāng)所述第三識別單元122確定所述數(shù)據(jù)包為特定應(yīng) 用所對應(yīng)的數(shù)據(jù)包,判斷所述特定應(yīng)用的數(shù)據(jù)包中是否包括交互命令標志;第四識別單元124,用于當(dāng)所述交互命令標志識別單元123的判斷結(jié)果為所述特定應(yīng) 用的數(shù)據(jù)包中包括交互命令標志時,則識別確定所述數(shù)據(jù)包為交互型數(shù)據(jù)包,并在所述交 互型數(shù)據(jù)包中設(shè)置延時敏感標志,否則,識別確定所述數(shù)據(jù)包為特定應(yīng)用的正常型數(shù)據(jù)包。
具體的,所述第三識別單元122與所述控制模塊2和所述交互命令標識識別單元 123相連接,當(dāng)所述第三識別單元122確定出所述數(shù)據(jù)包為普通應(yīng)用的正常型數(shù)據(jù)包時,與 所述第三識別單元122相連接的所述控制模塊2便可根據(jù)所述細分類別流量控制規(guī)則中的 第二流量控制規(guī)則中的與所述正常型數(shù)據(jù)包的類別標志相對應(yīng)的應(yīng)用的相應(yīng)類型應(yīng)用類 別流量控制規(guī)則,對所述正常型數(shù)據(jù)包進行流量控制處理,并將流量控制處理后的正常型 數(shù)據(jù)包存入低優(yōu)先級存放隊列中;當(dāng)所述第三識別單元122確定出所述數(shù)據(jù)包為特定應(yīng)用的數(shù)據(jù)包時,與所述第三識別單元122相連接的所述交互命令標識識別單元123對所述數(shù)據(jù)包進行數(shù)據(jù)流解析判斷,若 所述數(shù)據(jù)包中存在交互命令標志,所述第四識別單元124即可確定所述數(shù)據(jù)包為相應(yīng)的特 定應(yīng)用的交互型數(shù)據(jù)包,確定該特定應(yīng)用處于交互階段,并在所述交互型數(shù)據(jù)包中設(shè)置延 時敏感標志,否則可確定所述數(shù)據(jù)包為相應(yīng)的特定應(yīng)用的正常型數(shù)據(jù)包,確定該特定應(yīng)用 處于非交互階段;所述第四識別單元1 也與所述控制模塊2相連接,當(dāng)所述第四識別單元IM識別出 所述數(shù)據(jù)包為交互型數(shù)據(jù)包時,所述控制模塊2根據(jù)所述細分類別流量控制規(guī)則中第一流 量控制規(guī)則中的與所述交互型數(shù)據(jù)包的類別標志相對應(yīng)的特定應(yīng)用的應(yīng)用類別流量控制 規(guī)則,以及所述延時敏感標志,對所述交互型數(shù)據(jù)包進行包括帶寬控制和延時控制的流量 控制處理,并將所述交互型數(shù)據(jù)包存入高優(yōu)先級存放隊列中;當(dāng)?shù)谒淖R別單元1 識別出 所述數(shù)據(jù)包為正常型數(shù)據(jù)包時,所述控制模塊2根據(jù)所述細分類別流量控制規(guī)則中的第二 流量控制規(guī)則中的與所述正常型數(shù)據(jù)包的類別標志相對應(yīng)的應(yīng)用的相應(yīng)類型應(yīng)用類別流 量控制規(guī)則,對所述正常型數(shù)據(jù)包進行流量控制處理,并將流量控制處理后的正常型數(shù)據(jù) 包存入低優(yōu)先級存放隊列中。
所述控制模塊2還用于在所述第二判斷單元121的第三應(yīng)用類型識別子單元根據(jù) 特征碼識別所述數(shù)據(jù)包所對應(yīng)的應(yīng)用的類型過程中,根據(jù)所述細分類別流量控制規(guī)則中第 一流量控制規(guī)則中的其他類別流量控制規(guī)則,對所述數(shù)據(jù)包進行流量控制處理,并將所述 數(shù)據(jù)包存入第三優(yōu)先級存放隊列中,其中,所述第三優(yōu)先級存放隊列的優(yōu)先權(quán)等級低于所 述高優(yōu)先級存放隊列,高于所述低優(yōu)先級存放隊列。在所述提取子單元從抓取到的若干個 數(shù)據(jù)包中提取特征碼,并當(dāng)所述第三應(yīng)用類型識別單元還在識別數(shù)據(jù)包的應(yīng)用是否為特定 應(yīng)用的過程中,由于抓取的這些數(shù)據(jù)包基本上都是長度較小的小包,為了保證這些小包也 能夠優(yōu)先處理,根據(jù)特定應(yīng)用的第一流量控制規(guī)則中的其它類別流量控制規(guī)則,對所述數(shù) 據(jù)包進行流量控制處理,并將所述數(shù)據(jù)包存入第三優(yōu)先級存放隊列中。
所述控制模塊2還用于當(dāng)所述第二判斷單元121的第三應(yīng)用類型識別子單元未能 根據(jù)提取的特征碼識別出所述數(shù)據(jù)包所對應(yīng)的應(yīng)用的類型時,根據(jù)所述細分類別流量控制 規(guī)則中第二流量控制規(guī)則的其他類別流量控制規(guī)則,對所述數(shù)據(jù)包進行流量控制處理,并 將所述數(shù)據(jù)包存入第四優(yōu)先級存放隊列中,其中,所述第四優(yōu)先級存放隊列的優(yōu)先權(quán)等級 低于所述低先級存放隊列,所述第四優(yōu)先級存放隊列的優(yōu)先權(quán)等級最低,即當(dāng)所述高優(yōu)先 級存放隊列的數(shù)據(jù)包處理并輸出完后,處理所述第三優(yōu)先級存放隊列中的數(shù)據(jù)包,再處理 所述低優(yōu)先級存放隊列中的數(shù)據(jù)包,最后處理第四優(yōu)先級存放隊列中的數(shù)據(jù)包。
當(dāng)接收到的所述數(shù)據(jù)包所對應(yīng)的連接跟蹤信息中并不包括類別標識時,所述識別 模塊1可以基于數(shù)據(jù)包的特征碼來識別相應(yīng)協(xié)議類型即識別是何種應(yīng)用,這需要分析若干 個數(shù)據(jù)包,通過所述第二判斷單元121的提取子單元提取數(shù)據(jù)包若干特征碼,并對特征碼 進行支持度和可行度等進行分析,例如對于Http應(yīng)用,分析其建立連接后的前8個數(shù)據(jù)包, 可以提取 3 組特征碼,例如“0D OA 53 65 72 76 65 72 3A 20 Server”、“4B 65 65 70 2D 41 6C 69 76 65 =Keep-Alive ”、“20 48 54 54 50 2F 31 2E 31 OD OA :ΗΤΤΡ/1· 1”等。對 三組特征碼的支持度和可行度等進行分析,所述提取子單元可自動地將前兩類字段排除, 選擇支持度和可行度較高的第三組特征碼。
所述第二判斷單元121的第三應(yīng)用類型識別子單元根據(jù)所述提取子單元選擇提取的特征碼,到驅(qū)動設(shè)備中存儲的應(yīng)用特征碼內(nèi)容庫中,查找并判斷是否存在與所述特征 碼相同的應(yīng)用類型,若沒有查找到與所述提取子單元提取的特征碼相對應(yīng)的應(yīng)用時,所述 第三應(yīng)用類型識別單元可確定所述數(shù)據(jù)包對應(yīng)的應(yīng)用類型未知,則該數(shù)據(jù)包可能為垃圾流 量數(shù)據(jù)包,所述數(shù)據(jù)包由所述控制模塊2根據(jù)所述細分類別流量控制規(guī)則中第二流量控制 規(guī)則的其他類別流量控制規(guī)則,對所述數(shù)據(jù)包進行流量控制處理,并將所述數(shù)據(jù)包存入第 四優(yōu)先級存放隊列中;當(dāng)所述第三應(yīng)用類型識別子單元查找到與所述提取子單元提取的特征碼相對應(yīng)的應(yīng) 用時,確定接收到的所述數(shù)據(jù)包的應(yīng)用類型,并在識別出所述數(shù)據(jù)包的應(yīng)用的類型后,判斷 在所述特定應(yīng)用交互型索引表中是否記錄有識別出的所述類型,根據(jù)判斷結(jié)果,在該數(shù)據(jù) 包所對應(yīng)的連接跟蹤信息中設(shè)置類別標識,所述類別標識的格式為是否為特定應(yīng)用+應(yīng) 用類型,以便對后續(xù)相同應(yīng)用的數(shù)據(jù)包,能夠根據(jù)連接跟蹤信息直接判斷數(shù)據(jù)包是否為特 定應(yīng)用及其應(yīng)用類型,使得所述控制模塊2能夠直接進行相應(yīng)的流量控制。
其中,所述應(yīng)用特征碼內(nèi)容庫可由用戶手動設(shè)定,也可由所述驅(qū)動設(shè)備通過統(tǒng)計 大量的長度在幾十個字節(jié)以內(nèi)的小的數(shù)據(jù)包中的特征碼的方式,得出所述應(yīng)用特征碼內(nèi)容 庫,該庫可智能學(xué)習(xí)和更新。
更進一步的,請參見圖7,是本發(fā)明的細分類別流量控制規(guī)則的規(guī)則樹示意圖,應(yīng) 用層定義兩種細分規(guī)則類別,第一流量控制規(guī)則類和第二流量控制規(guī)則類,并把它們的流 控規(guī)則下發(fā)給驅(qū)動層供所述流量控制器進行識別和流量控制。
流控規(guī)則指的是流控的指標,如保障速率,最大速率,優(yōu)先級,其中的速率涉及到 上行數(shù)據(jù)流流控或下行數(shù)據(jù)流流控或雙向數(shù)據(jù)流流控。類別標識是用于表明是哪種應(yīng)用, 當(dāng)所述流量控制器識別出應(yīng)用類型后就可以根據(jù)這個類別標識找到符合的規(guī)則進行控制。
第一流量控制規(guī)則類的特點是優(yōu)先級最高并且權(quán)重大,打上該類別的數(shù)據(jù)包將入 隊于高優(yōu)先級存放隊列或第三優(yōu)先級存放隊列中。第二流量控制規(guī)則類的特點是適用于各 個應(yīng)用的帶寬保證,打上該類別的數(shù)據(jù)包將入隊于低優(yōu)先級存放隊列和第四優(yōu)先級存放隊 列。如圖所示,在線路根類下增加了第一流量控制規(guī)則根類,用于處理交互型數(shù)據(jù)包的規(guī)則 類,其優(yōu)先級在同Level下最高,權(quán)重大,確保優(yōu)于同Level下的其它規(guī)則類。第一流量控 制規(guī)則根類下增加了受其管理的各種應(yīng)用類別規(guī)則類。這些規(guī)則類優(yōu)先級小于等于根類優(yōu) 先級,大于第二流量控制規(guī)則類。這樣雙重保證了交互型數(shù)據(jù)包走第一流量控制規(guī)則,能優(yōu) 先于走第二流量控制規(guī)則的正常型數(shù)據(jù)包。
同時正常型數(shù)據(jù)包可以走第二流量控制規(guī)則,在第一流量控制規(guī)則根類下的其它 命令類別規(guī)則主要是為提供給在采用自動識別方式(根據(jù)數(shù)據(jù)包自身的特征碼進行應(yīng)用類 型識別的方式)由于需要分析若干包,而這些包基本都可以認為是交互包,這個規(guī)則就是給 這些包用,并同時給出一個第三優(yōu)先級存放隊列,優(yōu)先于第二流量控制規(guī)則的低優(yōu)先級存 放隊列和第四優(yōu)先級存放隊列,但低于高優(yōu)先級存放隊列。在第二流量控制規(guī)則根類下提 供的其它應(yīng)用類別規(guī)則主要是為提供給在無論采用第一種用戶定義識別(根據(jù)數(shù)據(jù)包的五 元組信息和用戶定義的特定應(yīng)用交互型索引表進行類型識別以及是否為特定應(yīng)用的判斷 的方式)還是第二種自動識別方式若數(shù)據(jù)包未能識別出來則走這個規(guī)則,對應(yīng)的隊列是第 四優(yōu)先級存放隊列,優(yōu)先級最低。
實施本發(fā)明實施例,具有以下優(yōu)點通過細分流量控制規(guī)則 結(jié)合隊列優(yōu)先服務(wù)機制的方式即優(yōu)先處理高優(yōu)先權(quán)等級的存 放隊列中的數(shù)據(jù)包,對識別出的交互型數(shù)據(jù)包和正常型數(shù)據(jù)分別設(shè)置第一流量控制規(guī)則和 第二流量控制規(guī)則進行流量控制,并將數(shù)據(jù)包存儲在相應(yīng)優(yōu)先級的存放隊列中,保證交互 型數(shù)據(jù)包的帶寬和時延的要求,同時也不會影響到非交互的正常型數(shù)據(jù)包的傳輸,提升了 用戶的應(yīng)用訪問體驗。同時在特定應(yīng)用的其它命令類別規(guī)則對自動識別階段內(nèi)未識別出是 否為交互型數(shù)據(jù)包的小包時,也能夠保證優(yōu)先處理特定應(yīng)用的數(shù)據(jù)包,普通應(yīng)用的其他命 令類別規(guī)則也保證對未能識別出應(yīng)用類型的垃圾應(yīng)用做最低級別的處理,保證這些未知的 應(yīng)用不會占用帶寬,進一步提高了用戶的使用體驗。下面對本發(fā)明的基于應(yīng)用的流量控制方法進行詳細描述。請參見圖4,是本發(fā)明的基于應(yīng)用的流量控制方法的第一實施例流程示意圖,該方 法包括
S401 當(dāng)接收到數(shù)據(jù)包時,識別所述數(shù)據(jù)包的類型,所述數(shù)據(jù)包的類型包括交互型數(shù) 據(jù)包和正常型數(shù)據(jù)包;
具體的,當(dāng)驅(qū)動設(shè)備接收到數(shù)據(jù)包時,驅(qū)動設(shè)備中的流量控制器首先可通過查看該數(shù) 據(jù)包對應(yīng)的連接跟蹤信息中的類別標識來確定該數(shù)據(jù)包的類型,并確定是否為用戶定義的 特定應(yīng)用的數(shù)據(jù)包,若所述連接跟蹤信息中并未設(shè)置類別標識,則可根據(jù)該數(shù)據(jù)包中包括 的應(yīng)用的源地址和端口、應(yīng)用的目的地址和端口以及協(xié)議類型判斷所屬的應(yīng)用類型,再通 過判斷該類型是否在預(yù)設(shè)的特定應(yīng)用交互型索引表中的方式,判斷該數(shù)據(jù)包是否為特定應(yīng) 用所對應(yīng)的數(shù)據(jù)包。其中,所述特定應(yīng)用交互型索引表是由用戶在應(yīng)用層定義的,包括一個 或者多個應(yīng)用。也可以通過提取數(shù)據(jù)包中的特征碼的應(yīng)用自動識別方式,識別該數(shù)據(jù)包的 應(yīng)用類型,并根據(jù)自動識別出來的應(yīng)用類型同樣去查找特定應(yīng)用交互型索引表具體是否為 特定應(yīng)用的數(shù)據(jù)包。當(dāng)確定驅(qū)動設(shè)備接收到的數(shù)據(jù)包為特定應(yīng)用所對應(yīng)的數(shù)據(jù)包時,可根據(jù)所述數(shù)據(jù) 包的長度,或者通過判斷所述數(shù)據(jù)包中是否包括交互命令標志的方式,識別所述數(shù)據(jù)包的 類型,其中,所述數(shù)據(jù)包的類型包括交互型數(shù)據(jù)包和正常型數(shù)據(jù)包。其中,當(dāng)所述數(shù)據(jù)包為 交互型數(shù)據(jù)包時,表明對應(yīng)的應(yīng)用處于交互階段,當(dāng)為正常型數(shù)據(jù)包時,則表明對應(yīng)的應(yīng)用 處于非交互階段。S402:當(dāng)識別出所述數(shù)據(jù)包為交互型數(shù)據(jù)包時,根據(jù)預(yù)設(shè)的第一流量控制規(guī)則,對 所述交互型數(shù)據(jù)包進行流量控制處理,并將流量控制處理后的交互型數(shù)據(jù)包存入高優(yōu)先級 存放隊列中;
具體的,所述第一流量控制規(guī)則中包括與多種特定應(yīng)用相對應(yīng)的流量控制規(guī)則,每一 特定應(yīng)用相對應(yīng)的流量控制規(guī)則均包括帶寬保證和延遲保證。當(dāng)所述S401識別出接收到 的所述數(shù)據(jù)包為交互型數(shù)據(jù)包,所述S402根據(jù)設(shè)置的所述第一流量控制規(guī)則中包括的,與 所述交互型數(shù)據(jù)包的相對應(yīng)的特定應(yīng)用的流量控制規(guī)則中設(shè)置的帶寬的大小,上行時的帶 寬,下行時的帶寬等流量控制規(guī)則,分配給所述交互型數(shù)據(jù)包相應(yīng)的帶寬,并根據(jù)延時敏感 標志將所述交互型數(shù)據(jù)包存入高優(yōu)先級存放隊列中優(yōu)先處理輸出保證時延較小的要求。S403 將所述交互型數(shù)據(jù)包存入高優(yōu)先級存放隊列中;
所述高優(yōu)先級存放隊列的優(yōu)先級最高,將交互型數(shù)據(jù)包存入高優(yōu)先級存放隊列中可保 證交互型數(shù)據(jù)包能夠優(yōu)先進行處理輸出從而保證其處理輸出的延遲較小。
S404:當(dāng)識別出所述數(shù)據(jù)包為正常型數(shù)據(jù)包時,根據(jù)預(yù)設(shè)的第二流量控制規(guī)則,對 所述正常型數(shù)據(jù)包進行流量控制處理;
S405 將流量控制處理后的正常型數(shù)據(jù)包存入低優(yōu)先級存放隊列中; 具體的,當(dāng)所述S401識別出接收到的數(shù)據(jù)包為普通應(yīng)用的正常型數(shù)據(jù)包時,所述S404 根據(jù)預(yù)設(shè)的第二流量控制規(guī)則僅對所述正常型數(shù)據(jù)包作帶寬保證等流量控制,S405將所述 正常型數(shù)據(jù)包存入低優(yōu)先級存放隊列中,當(dāng)高優(yōu)先級存放隊列中的數(shù)據(jù)包為空時,再行處 理輸出。S406:按存放隊列的優(yōu)先權(quán)等級,依次輸出相應(yīng)存放隊列中的數(shù)據(jù)包。具體的,所述S406優(yōu)先處理輸出高優(yōu)先級存放隊列中的交互型數(shù)據(jù)包。對于存入 低優(yōu)先級存放隊列中的正常型數(shù)據(jù)包,當(dāng)高優(yōu)先級存放隊列中的交互型數(shù)據(jù)包為空時,所 述S406處理輸出所述低優(yōu)先級存放隊列中的正常型數(shù)據(jù)包。由于交互型數(shù)據(jù)包中僅包括 一些數(shù)據(jù)量較小的控制指令僅有幾十個字節(jié)甚至幾個字節(jié),所述S406很快就會處理輸出 完,處理完后即釋放相應(yīng)的帶寬以處理輸出低優(yōu)先級存放隊列中的特定應(yīng)用中的非交互階 段的正常型數(shù)據(jù)包和/或普通應(yīng)用的正常型數(shù)據(jù)包。通過上述實施例的描述可知,本發(fā)明具有以下優(yōu)點
通過細分流量控制規(guī)則結(jié)合隊列優(yōu)先服務(wù)機制的方式,對識別出的交互型數(shù)據(jù)包和正 常型數(shù)據(jù)分別設(shè)置第一流量控制規(guī)則和第二流量控制規(guī)則進行流量控制,并將數(shù)據(jù)包存儲 在相應(yīng)優(yōu)先級的存放隊列中,保證交互型數(shù)據(jù)包的帶寬和時延的要求,同時也不會影響到 非交互的正常型數(shù)據(jù)包的傳輸,提升了用戶的應(yīng)用訪問體驗。請參見圖5,是本發(fā)明的基于應(yīng)用的流量控制方法的第二實施例流程示意圖,該方 法包括
S501 通過應(yīng)用層向驅(qū)動層下發(fā)預(yù)設(shè)的流量控制應(yīng)用表,特定應(yīng)用交互型索引表以及 包括特定應(yīng)用的第一流量控制規(guī)則和其他類別流量控制規(guī)則、普通應(yīng)用的第二流量控制規(guī) 則和其他類別流量控制規(guī)則的細分類別流量控制規(guī)則;
具體的,可通過向用戶提供用戶界面的方式,獲取用戶設(shè)置的流量控制應(yīng)用表,特定應(yīng) 用交互型索引表,并根據(jù)包括特定應(yīng)用的第一流量控制規(guī)則、第二流量控制規(guī)則以及其他 類別的流量控制規(guī)則的細分類別流量控制規(guī)則,構(gòu)成控制規(guī)則樹,所述第一流量控制規(guī)則 包括交互型數(shù)據(jù)包的特定應(yīng)用的應(yīng)用類別流量控制規(guī)則和其他類別流量控制規(guī)則,所述 第二流量控制規(guī)則包括正常型數(shù)據(jù)包所對應(yīng)應(yīng)用的應(yīng)用類別流量控制規(guī)則和其他類別流 量控制規(guī)則。將獲取到的所述預(yù)設(shè)的流量控制應(yīng)用表,特定應(yīng)用交互型索引表以及控制規(guī) 則樹下發(fā)給驅(qū)動設(shè)備的驅(qū)動層,以進行后續(xù)的數(shù)據(jù)包識別和流量控制規(guī)則的設(shè)置。S502 判斷所述數(shù)據(jù)包所對應(yīng)的應(yīng)用是否為特定應(yīng)用;
具體的,在相應(yīng)的應(yīng)用建立時,會產(chǎn)生一個連接跟蹤信息以便于進行端到端的相應(yīng)數(shù) 據(jù)包的跟蹤,因此在接收到數(shù)據(jù)包時,S502可判斷所述數(shù)據(jù)包所對應(yīng)的連接跟蹤信息中是 否包括類別標識;若所述連接跟蹤信息中包括類別標識,則根據(jù)所述類別標識,識別所述數(shù) 據(jù)包所對應(yīng)的應(yīng)用的類型;
若所述連接跟蹤信息中不包括類別標識,則可根據(jù)數(shù)據(jù)包所包括的五元組信息和所述 流量控制應(yīng)用表,識別所述數(shù)據(jù)包所對應(yīng)的應(yīng)用的類型,并在識別出類型后,判斷在所述特 定應(yīng)用交互型索引表中是否記錄有識別出的所述類型,若判斷結(jié)果為記錄有識別出的所述類型,則確定所述數(shù)據(jù)包所對應(yīng)的應(yīng)用為特定應(yīng)用,否則,為普通應(yīng)用;
同時根據(jù)判斷結(jié)果,在所述數(shù)據(jù)包的連接跟蹤信息中設(shè)置與識別出的所述類型相對應(yīng) 的類別標識,其中,所述類別標識的格式為是否為特定應(yīng)用+應(yīng)用類型,以便于S502再次 接收到使用同一連接跟蹤信息的數(shù)據(jù)包時,能夠直接根據(jù)類別標識。判斷出該數(shù)據(jù)包所對 應(yīng)的應(yīng)用是否為特定應(yīng)用及其應(yīng)用類型。根據(jù)數(shù)據(jù)包所包括的五元組信息中的源地址信息和源端口信息、目的地址信息和 目的端口信息、協(xié)議類型以及所述流量控制應(yīng)用表,識別出所述數(shù)據(jù)包所對應(yīng)的應(yīng)用的類 型;即通過在流量控制應(yīng)用表中查找與所述數(shù)據(jù)包中包括的應(yīng)用的源地址信息和端口信 息、應(yīng)用的目的地址信息和端口信息以及協(xié)議類型對應(yīng)的應(yīng)用類型的方式來識別該 數(shù)據(jù)包 的應(yīng)用的類型。在傳輸過程中,各類應(yīng)用的數(shù)據(jù)包中均包括一個五元組用于路由和過濾,所述五 元組包括應(yīng)用的源地址和端口、應(yīng)用的目的地址和端口、協(xié)議類型,用戶訪問應(yīng)用還涉及 到上行類別標識、下行類別標識、雙向類別標識。應(yīng)用層會下發(fā)流量控制應(yīng)用表給驅(qū)動層, 以供所述S502進行應(yīng)用類型的查找識別。表的每項規(guī)則為“應(yīng)用的源地址范圍和端口范 圍,應(yīng)用的目的地址范圍和端口范圍,協(xié)議類別+應(yīng)用類型”的組合。對于所述特定應(yīng)用交 互型索引表,用戶可在應(yīng)用層設(shè)定相應(yīng)的應(yīng)用為特定應(yīng)用,并下發(fā)給驅(qū)動層,相應(yīng)的驅(qū)動設(shè) 備根據(jù)用戶設(shè)定的所述特定應(yīng)用,設(shè)置并維護所述特定應(yīng)用交互型索引表以供S503進行 數(shù)據(jù)包是否為特定應(yīng)用的數(shù)據(jù)包的判斷。表的每項組合為“應(yīng)用類型+應(yīng)用索引”。S503:當(dāng)判斷結(jié)果為是時,確定所述數(shù)據(jù)包為特定應(yīng)用的數(shù)據(jù)包,進一步判斷所述 特定應(yīng)用的數(shù)據(jù)包的長度是否小于預(yù)設(shè)的長度閾值;
具體的,當(dāng)所述S502判斷的結(jié)果為在所述驅(qū)動設(shè)備維護的所述特定應(yīng)用交互型索引 表中,記錄有應(yīng)用類型以及應(yīng)用索引,所述S503便可確定出該數(shù)據(jù)包為用戶定義的特定應(yīng) 用的數(shù)據(jù)包,從而可進一步判斷所述特定應(yīng)用的數(shù)據(jù)包的長度是否小于預(yù)設(shè)的長度閾值。S504:當(dāng)所述特定應(yīng)用的數(shù)據(jù)包的長度小于預(yù)設(shè)的長度閾值時,則識別確定所述 數(shù)據(jù)包為交互型數(shù)據(jù)包,在所述交互型數(shù)據(jù)包中設(shè)置延時敏感標志;
具體的,交互型數(shù)據(jù)包的特點為長度較小,僅有幾十字節(jié)甚至僅幾個字節(jié),根據(jù)該特 點,當(dāng)所述S503確定該數(shù)據(jù)包所對應(yīng)的應(yīng)用為用戶定義的特定應(yīng)用的數(shù)據(jù)包時,進一步判 斷該數(shù)據(jù)包的長度大小,所述S504根據(jù)判斷結(jié)果即可確定是否為交互型數(shù)據(jù)包。當(dāng)所述 S503的判斷所述特定應(yīng)用的數(shù)據(jù)包的長度小于預(yù)設(shè)的長度閾值時,所述S504便可識別出 所述數(shù)據(jù)包為交互型數(shù)據(jù)包,該特定應(yīng)用處于交互階段。同時在所述數(shù)據(jù)包中設(shè)置延時敏 感標識。S505:根據(jù)所述細分類別流量控制規(guī)則的第一流量控制規(guī)則中與所述交互型數(shù)據(jù) 包相對應(yīng)的特定應(yīng)用的應(yīng)用類別流量控制規(guī)則,以及所述延時敏感標志,對所述交互型數(shù) 據(jù)包進行包括帶寬控制和延時控制的流量控制;
具體的,根據(jù)S502同時可確定該數(shù)據(jù)包的應(yīng)用的類型,具體根據(jù)連接跟蹤信息中的類 別標識,或者根據(jù)五元組信息和流量控制應(yīng)用表,均可識別出該數(shù)據(jù)包的類型。S506 將所述交互型數(shù)據(jù)包存入高優(yōu)先級存放隊列中;
具體的,S506根據(jù)該數(shù)據(jù)包的延時敏感標識將所述交互型數(shù)據(jù)包存入高優(yōu)先權(quán)的存 放隊列中優(yōu)先處理輸出以保證交互型數(shù)據(jù)包時延較小的要求。其中,所述第一流量控制規(guī)則中包括與多種特定應(yīng)用相對應(yīng)的流量控制規(guī)則,如CIFS應(yīng)用類別流量控制規(guī)則、FTP應(yīng) 用類別流量控制規(guī)則等,每一特定應(yīng)用相對應(yīng)的流量控制規(guī)則中均包括帶寬保證和延遲保 證。S511 當(dāng)判斷結(jié)果為否時,確定所述數(shù)據(jù)包為普通應(yīng)用的正常型數(shù)據(jù)包;
具體的,當(dāng)該數(shù)據(jù)包的連接跟蹤信息中的類別標識所指示的內(nèi)容為該數(shù)據(jù)包為非特定 應(yīng)用的數(shù)據(jù)包,或者設(shè)置的特定應(yīng)用交互型索引表中并不包括根據(jù)所述數(shù)據(jù)包中的五元組 信息識別的該數(shù)據(jù)包應(yīng)用的類型時,表明該數(shù)據(jù)包為普通應(yīng)用的正常型數(shù)據(jù)包。S512:當(dāng)所述特定應(yīng)用的數(shù)據(jù)包的長度不小于預(yù)設(shè)的長度閾值時,識別出為特定 應(yīng)用的正常型數(shù)據(jù)包;
具體的,交互型數(shù)據(jù)包一般僅有幾十字節(jié)甚至幾個字節(jié),其長度較小,當(dāng)數(shù)據(jù)包的長度 大于用戶設(shè)置的長度閾值時,如數(shù)據(jù)包的長度為100字節(jié),大于用戶設(shè)置的50字節(jié)的長度 閾值,則可判斷該數(shù)據(jù)包為特定應(yīng)用中的正常型數(shù)據(jù)包,該特定應(yīng)用處于非交互階段。S513:根據(jù)所述細分類別流量控制規(guī)則的第二流量控制規(guī)則中與所述正常型數(shù)據(jù) 包所對應(yīng)的應(yīng)用的應(yīng)用類別流量控制規(guī)則,對所述正常型數(shù)據(jù)包進行包括帶寬控制的流量 控制;
具體的,根據(jù)S502同時可確定該數(shù)據(jù)包的應(yīng)用的類型,具體根據(jù)連接跟蹤信息中的類 別標識,或者根據(jù)五元組信息和流量控制應(yīng)用表均可識別出該數(shù)據(jù)包的類型。對正常型數(shù) 據(jù)包的流量控制,僅采用保證帶寬的流量控制即可,如設(shè)置一個較大的帶寬,設(shè)置較大的上 行帶寬、較大的下行帶寬等。S514 將流量控制處理后的正常型數(shù)據(jù)包存入低優(yōu)先級存放隊列中;
另外,在具體實施中,若S502中根據(jù)數(shù)據(jù)包所包括的五元組信息中的源地址信息和源 端口信息、目的地址信息和目的端口信息,協(xié)議類型以及所述流量控制應(yīng)用表,并未識別所 述數(shù)據(jù)包所對應(yīng)的應(yīng)用的應(yīng)用類型時,根據(jù)細分類別流量控制規(guī)則第二流量控制規(guī)則中的 其他類別流量控制規(guī)則,對所述數(shù)據(jù)包進行流量控制處理,并將所述數(shù)據(jù)包存入第四優(yōu)先 級存放隊列中;
其中,所述第四優(yōu)先級存放隊列的優(yōu)先權(quán)等級低于低優(yōu)先級存放隊列;執(zhí)行本步驟的 目的在于,對于未能識別出應(yīng)用類型的數(shù)據(jù)包時,可將該數(shù)據(jù)包視為垃圾流量數(shù)據(jù)包,直接 將該數(shù)據(jù)包存放到優(yōu)先權(quán)最低的第四優(yōu)先級存放隊列中,以便控制這些未在用戶定義的應(yīng) 用范圍內(nèi)的垃圾應(yīng)用流量不占用其它應(yīng)用帶寬。S510:按存放隊列的優(yōu)先權(quán)等級,依次輸出相應(yīng)存放隊列中的數(shù)據(jù)包。具體的,當(dāng)高優(yōu)先級存放隊列中的交互型數(shù)據(jù)包處理輸出完后,再行處理低優(yōu)先 級存放隊列中的正常型數(shù)據(jù)包,最后處理所述第四優(yōu)先級存放隊列中的數(shù)據(jù)包,可保證交 互型數(shù)據(jù)包的延時較小的要求,同時由于交互型數(shù)據(jù)包長度較小,處理輸出較快,處理完后 即可釋放帶寬給低優(yōu)先級存放隊列中的正常型數(shù)據(jù)包,也不會影響到用戶的數(shù)據(jù)下載等體 驗。另外,在本實施例的流量控制處理過程中,還可根據(jù)需要執(zhí)行以下步驟 監(jiān)測所述高優(yōu)先級存放隊列、所述低優(yōu)先級存放隊列以及所述第四優(yōu)先級存放隊列中
的數(shù)據(jù)包的個數(shù);
當(dāng)監(jiān)測到相應(yīng)存放隊列的 數(shù)據(jù)包的個數(shù)達到預(yù)設(shè)的數(shù)量閾值時,根據(jù)對已識別出類型的數(shù)據(jù)包設(shè)置的丟包優(yōu)先系數(shù)以及預(yù)設(shè)的系數(shù)閾值,刪除相應(yīng)存放隊列中的數(shù)據(jù)包,并停 止向相應(yīng)的存放隊列存入數(shù)據(jù)包。執(zhí)行上述步驟的目的在于當(dāng)所述高優(yōu)先級存放隊列、所述低優(yōu)先級存放隊列發(fā)生 擁塞時,能夠及時地丟棄新識別出的交互型數(shù)據(jù)包和/或正常型數(shù)據(jù)包。下面對丟包的步驟進行舉例說明
參見圖8,是本發(fā)明的基于應(yīng)用的流量控制方法中的存放隊列示意圖,按優(yōu)先等級從高 到低的包括高優(yōu)先級存放隊列、第三優(yōu)先級存放隊列、低優(yōu)先級存放隊列以及第四優(yōu)先級 存放隊列。其中,高優(yōu)先級存放隊列為無擁塞控制的流量包(如延遲敏感流量,交互型數(shù)據(jù) 包),所述高優(yōu)先級存放隊列中包括Pi、P2、 、Pk、 、PK1,即包含Kl個丟包優(yōu)先級,其中k 是丟包優(yōu)先系數(shù),k=l (例如Pl)相對于最高的丟包優(yōu)先級。當(dāng)隊列緩沖占有率超過了用戶 設(shè)置的個數(shù)閾值Pk (l<k<Kl)時,此時的k即為系數(shù)閾值,僅有丟包優(yōu)先級是從1到k-Ι的 數(shù)據(jù)包被允許輸入到高優(yōu)先級存放隊列進行輸出,而系數(shù)閾值k之后的其他優(yōu)先級的包則 被丟棄,即在第Plri個交互型數(shù)據(jù)包之后識別出的交互型數(shù)據(jù)包被丟棄。同樣的,對于低優(yōu) 先級存放隊列、第三優(yōu)先級存放隊列和第四優(yōu)先級存放隊列執(zhí)行同樣的丟包策略。請參見圖6,是本發(fā)明的基于應(yīng)用的流量控制方法的第三實施例流程示意圖,該方 法包括
S601 通過應(yīng)用層向驅(qū)動層下發(fā)預(yù)設(shè)的特定應(yīng)用交互型索引表以及包括特定應(yīng)用的第 一流量控制規(guī)則和其他類別流量控制規(guī)則、普通應(yīng)用的第二流量控制規(guī)則和其他類別流量 控制規(guī)則的細分類別流量控制規(guī)則;在本實施例中,對數(shù)據(jù)包應(yīng)用類別的識別是通過提取 特征碼進行自動識別的方式,因此并不需要流量控制應(yīng)用表。S602 判斷所述數(shù)據(jù)包所對應(yīng)的應(yīng)用是否為特定應(yīng)用;
具體的,在相應(yīng)的應(yīng)用建立時,會產(chǎn)生一個連接跟蹤信息以便于進行端到端的相應(yīng)數(shù) 據(jù)包的傳遞,因此在接收到數(shù)據(jù)包時,S602判斷所述數(shù)據(jù)包所對應(yīng)連接跟蹤信息中是否包 括類別標識;若所述連接跟蹤信息中包括類別標識,則根據(jù)所述類別標識,確定出所述數(shù)據(jù) 包的應(yīng)用是否為特定應(yīng)用;
若所述連接跟蹤信息中不包括類別標識,則提取數(shù)據(jù)包中的特征碼; 根據(jù)所述特征碼識別所述數(shù)據(jù)包所對應(yīng)的應(yīng)用的類型,并在識別出所述數(shù)據(jù)包的應(yīng)用 的類型后,判斷在所述特定應(yīng)用交互型索引表中是否記錄有識別出的所述類型,若判斷結(jié) 果為記錄有識別出的所述類型,則確定所述數(shù)據(jù)包所對應(yīng)的應(yīng)用為特定應(yīng)用,否則,為普通 應(yīng)用,同時根據(jù)判斷結(jié)果,在所述數(shù)據(jù)包的連接跟蹤信息中設(shè)置與識別出的所述類型相對 應(yīng)的類別標識,其中,所述類別標識的組合為是否為特定應(yīng)用+應(yīng)用類型;
其中,在根據(jù)所述特征碼識別所述數(shù)據(jù)包所對應(yīng)的應(yīng)用的類型的識別過程中,根據(jù)所 述細分類別流量控制規(guī)則中第一流量控制規(guī)則中的其他類別流量控制規(guī)則,對所述數(shù)據(jù)包 進行流量控制處理,將所述數(shù)據(jù)包存入第三優(yōu)先級存放隊列中,所述第三優(yōu)先級存放隊列 的優(yōu)先權(quán)等級低于所述高優(yōu)先級存放隊列,高于所述低優(yōu)先級存放隊列。 下面對在連接跟蹤信息中不包括類別標識時,S602進行判斷的過程進行說明??商崛∪舾蓚€數(shù)據(jù)包的特征碼,判斷并選取至少一個為相應(yīng)應(yīng)用所對應(yīng)的支持度 和可信度較高的特征碼??梢曰趹?yīng)用的特征碼來識別相應(yīng)協(xié)議類型即識別是何種應(yīng)用, 這需要分析若干個數(shù)據(jù)包,通過所述S602提取若干數(shù)據(jù)包中的特征碼,并對特征碼進行支持度和可行度等進行分析,例如對于Http應(yīng)用,分析其建立連接后的前8個數(shù)據(jù)包,可以提 取 3 組特征碼,例如“OD OA 53 65 72 76 65 72 3A 20 Server”、“4B 65 65 70 2D 41 6C 69 76 65 =Keep-Alive ”、“20 48 54 54 50 2F 31 2E 31 OD OA :ΗΤΤΡ/1· 1”等。對三組特 征碼的支持度和可行度等進行分析,所述S602可自動地將前兩類字段排除,選擇支持度和 可行度較高的第三組特征碼。所述S602根據(jù)選取的特征碼,到驅(qū)動設(shè)備中存儲的特定應(yīng)用特征碼內(nèi)容庫中,查 找并判斷是否存在與所述特征碼相匹配的應(yīng)用類型,當(dāng)所述查找到與選取的特征碼相匹配 的應(yīng)用時,所述S602即可判斷出所述數(shù)據(jù)包所對應(yīng)的應(yīng)用的類型。其中,所述應(yīng)用特征碼 內(nèi)容庫可由用戶手動設(shè)定,也可由所述驅(qū)動設(shè)備通過統(tǒng)計大量的長度在幾十字節(jié)以內(nèi)的小 的數(shù)據(jù)包中的特征碼的方式,得出所述應(yīng)用特征碼內(nèi)容庫。判斷出該數(shù)據(jù)包對應(yīng)的應(yīng)用的 類型后,S602判斷在所述特定應(yīng)用交互型索引表中是否記錄有識別出的所述類型;當(dāng)在所 述特定應(yīng)用交互型索引表中記錄有該數(shù)據(jù)包對應(yīng)的應(yīng)用時,則可確定所述數(shù)據(jù)包為特定應(yīng) 用所對應(yīng)的數(shù)據(jù)包,否則為普通應(yīng)用所對應(yīng)的數(shù)據(jù)包;
S603:當(dāng)判斷結(jié)果為是時,確定所述數(shù)據(jù)包為特定應(yīng)用所對應(yīng)的數(shù)據(jù)包,則進一步判斷 所述特定應(yīng)用的數(shù)據(jù)包中是否包括交互命令標志;
S604:當(dāng)所述特定應(yīng)用的數(shù)據(jù)包中包括交互命令標志時,則識別確定所述數(shù)據(jù)包為交 互型數(shù)據(jù)包,并在所述交互型數(shù)據(jù)包中設(shè)置延時敏感標志;
具體的,當(dāng)根據(jù)S602的判斷確定出所述數(shù)據(jù)包為特定應(yīng)用的數(shù)據(jù)包時,所述S604對所 述數(shù)據(jù)包進行分析判斷,若所述數(shù)據(jù)包中存在交互命令標志,所述S606即可確定識別出所 述數(shù)據(jù)包為相應(yīng)的特定應(yīng)用的交互型數(shù)據(jù)包,該特定應(yīng)用處于交互階段。S605:當(dāng)識別出所述數(shù)據(jù)包為交互型數(shù)據(jù)包時,根據(jù)所述細分類別流量控制規(guī)則 的第一流量控制規(guī)則中與所述交互型數(shù)據(jù)包的相對應(yīng)的特定應(yīng)用的應(yīng)用類別流量控制規(guī) 貝U,以及所述延時敏感標志,對所述交互型數(shù)據(jù)包進行包括帶寬控制和延時控制的流量控 制;
具體的,根據(jù)所述S602同時可確定該數(shù)據(jù)包的應(yīng)用的類型,具體根據(jù)連接跟蹤信息中 的類別標識,或者根據(jù)特征碼和應(yīng)用特征碼數(shù)據(jù)庫均可識別出該數(shù)據(jù)包的類型。S606 將所述交互型數(shù)據(jù)包存入高優(yōu)先級存放隊列中;
S611 當(dāng)判斷結(jié)果為否時,確定所述數(shù)據(jù)包為普通應(yīng)用的正常型數(shù)據(jù)包; 具體的,當(dāng)該數(shù)據(jù)包的連接跟蹤信息中的類別標識所指示的內(nèi)容為該數(shù)據(jù)包為非特定 應(yīng)用的數(shù)據(jù)包,或者設(shè)置的特定應(yīng)用交互型索引表中并不包括根據(jù)所述數(shù)據(jù)包中的特征碼 識別的該數(shù)據(jù)包應(yīng)用的類型時,表明該數(shù)據(jù)包為普通應(yīng)用的正常型數(shù)據(jù)包。S612:當(dāng)所述特定應(yīng)用的數(shù)據(jù)包中不包括交互命令標志時,識別出為特定應(yīng)用的 正常型數(shù)據(jù)包;
具體的,若S603的判斷結(jié)果為所述數(shù)據(jù)包中并不存在交互命令標志,則S612可確定該 數(shù)據(jù)包為特定應(yīng)用的正常型數(shù)據(jù)包,該特定應(yīng)用處于非交互階段。 另外,由于需要對提取多個相應(yīng)的數(shù)據(jù)包中的特征碼進行識別、查找以及確認操 作,在S602根據(jù)特征碼識別方式識別該數(shù)據(jù)包對應(yīng)的應(yīng)用的應(yīng)用類型的過程中,由于該識 別需要對數(shù)據(jù)包中的特征碼進行詳細分析,在還未分析識別出該數(shù)據(jù)包的應(yīng)用類型前,可 直接根據(jù)細分類別流量控制規(guī)則第一流量控制規(guī)則中的其它命令類別規(guī)則,對所述數(shù)據(jù)包進行包括帶寬保證和延遲保證的流量控制處理,并將所述數(shù)據(jù)包存入第三優(yōu)先級存放隊列 中,其中,所述第三優(yōu)先級存放隊列的優(yōu)先權(quán)等級低于所述高優(yōu)先級存放隊列,高于所述低 優(yōu)先級存放隊列。這么處理的目的在于,在識別過程中的這些包也能得到優(yōu)先處理,因為這 些包基本上都是交互包,只是這些包還不知道其是否為交互型數(shù)據(jù)包,所以根據(jù)特定應(yīng)用 的第一流量控制規(guī)則中相對應(yīng)的其他類別流量控制規(guī)則進行流量控制。 S613:根據(jù)所述細分類別流量控制規(guī)則的第二流量控制規(guī)則中與所述正常型數(shù)據(jù) 包相對應(yīng)的應(yīng)用的應(yīng)用類別流量控制規(guī)則,對所述正常型數(shù)據(jù)包進行包括帶寬控制的流量 控制;
具體的,對正常型數(shù)據(jù)包的流量控制,僅采用保證帶寬的流量控制即可,如設(shè)置一個較 大的帶寬,設(shè)置較大的上行帶寬、較大的下行帶寬等。S614 將流量控制處理后的正常型數(shù)據(jù)包存入低優(yōu)先級存放隊列中;
另外,在具體實施中,若S602中根據(jù)提取的一個或者多個數(shù)據(jù)包中的特征碼,并不能 識別出所述數(shù)據(jù)包所對應(yīng)的應(yīng)用的應(yīng)用類型時,根據(jù)細分類別流量控制規(guī)則第二流量控制 規(guī)則中的其他類別流量控制規(guī)則,對所述數(shù)據(jù)包進行流量控制處理,并將所述數(shù)據(jù)包存入 第四優(yōu)先級存放隊列中;其中,所述第四優(yōu)先級存放隊列的優(yōu)先權(quán)等級低于低優(yōu)先級存放 隊列;執(zhí)行本步驟的目的在于,對于未能識別出應(yīng)用類型的數(shù)據(jù)包時,可將該數(shù)據(jù)包視為垃 圾流量數(shù)據(jù)包,直接將該數(shù)據(jù)包存放到優(yōu)先權(quán)最低的第四優(yōu)先級存放隊列中,以便控制這 些未在用戶定義的應(yīng)用范圍內(nèi)的垃圾應(yīng)用流量不占用其它應(yīng)用帶寬。S610:按存放隊列的優(yōu)先權(quán)等級,依次輸出相應(yīng)存放隊列中的數(shù)據(jù)包。具體的,當(dāng)高優(yōu)先級存放隊列中的交互型數(shù)據(jù)包處理輸出完后,再行處理低優(yōu)先 級存放隊列中的正常型數(shù)據(jù)包,可保證交互型數(shù)據(jù)包的延時較小的要求,同時由于交互型 數(shù)據(jù)包長度較小,處理輸出較快,處理完后即可釋放帶寬給低優(yōu)先級存放隊列中的正常型 數(shù)據(jù)包,也不會影響到用戶的數(shù)據(jù)下載等體驗。另外,在本實施例的流量控制處理過程中,還可根據(jù)需要執(zhí)行以下步驟 監(jiān)測所述高優(yōu)先級存放隊列、第三優(yōu)先級存放隊列、所述低優(yōu)先級存放隊列以及所述
第四優(yōu)先級存放隊列中的數(shù)據(jù)包的個數(shù);
當(dāng)監(jiān)測到相應(yīng)存放隊列的數(shù)據(jù)包的個數(shù)達到預(yù)設(shè)的數(shù)量閾值時,根據(jù)對已識別出類型 的數(shù)據(jù)包設(shè)置的丟包優(yōu)先系數(shù)以及預(yù)設(shè)的系數(shù)閾值,刪除相應(yīng)存放隊列中的數(shù)據(jù)包,并停 止向相應(yīng)的存放隊列存入數(shù)據(jù)包。執(zhí)行上述步驟的目的在于當(dāng)所述高優(yōu)先級存放隊列、所述第三優(yōu)先級存放隊列、 所述低優(yōu)先級存放隊列以及所述第四優(yōu)先級存放隊列發(fā)生擁塞時,能夠及時地丟棄新識別 出的交互型數(shù)據(jù)包和/或正常型數(shù)據(jù)包。下面對丟包的步驟進行舉例說明
高優(yōu)先級存放隊列為無擁塞控制的流量包(如延遲敏感流量,交互型數(shù)據(jù)包),所述高 優(yōu)先級存放隊列中包括Pi、P2> 、pk、 、Pki,即包含Kl個丟包優(yōu)先級,其中k是優(yōu)先系 數(shù),k=l (例如Pl)相對于最高的丟包優(yōu)先級。當(dāng)隊列緩沖占有率超過了用戶設(shè)置的個數(shù)閾 值Pk (l<k<Kl)時,則僅有丟包優(yōu)先級是從1到k-1的數(shù)據(jù)包被允許輸入到高優(yōu)先級存放 隊列進行輸出,而其他優(yōu)先級的包則被丟棄,即在第Plri個交互型數(shù)據(jù)包之后識別出的交互 型數(shù)據(jù)包被丟棄。同樣的,對于低優(yōu)先級存放隊列、第三優(yōu)先級存放隊列和第四優(yōu)先級存放隊列執(zhí)行同樣的丟包策略。
通過上述實施例的描述可知,本發(fā)明具有以下優(yōu)點
通過細分流量控制規(guī)則結(jié)合隊列優(yōu)先服務(wù)機制的方式即優(yōu)先處理高優(yōu)先權(quán)等級的存 放隊列中的數(shù)據(jù)包,對識別出的交互型數(shù)據(jù)包和正常型數(shù)據(jù)分別設(shè)置第一流量控制規(guī)則和 第二流量控制規(guī)則進行流量控制,并將數(shù)據(jù)包存儲在相應(yīng)優(yōu)先級的存放隊列中,保證交互 型數(shù)據(jù)包的帶寬和時延的要求,同時也不會影響到非交互的正常型數(shù)據(jù)包的傳輸,提升了 用戶的應(yīng)用訪問體驗。同時普通應(yīng)用的其他命令類別規(guī)則也保證對未能識別出應(yīng)用類型的 垃圾應(yīng)用做最低級別的處理,保證這些未知的應(yīng)用不會占用帶寬,進一步提高了用戶的使 用體驗。本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以 通過計算機程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質(zhì) 中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁 碟、光盤、只讀存儲記憶體(Read-Only Memory, ROM)或隨機存儲記憶體(Random Access Memory, RAM)等。以上所揭露的僅為本發(fā)明較佳實施例而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范 圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。
權(quán)利要求
1.一種基于應(yīng)用的流量控制方法,其特征在于,包括當(dāng)接收到數(shù)據(jù)包時,識別所述數(shù)據(jù)包的類型,所述數(shù)據(jù)包的類型包括交互型數(shù)據(jù)包和 正常型數(shù)據(jù)包;當(dāng)識別出所述數(shù)據(jù)包為交互型數(shù)據(jù)包時,根據(jù)預(yù)設(shè)的第一流量控制規(guī)則,對所述交互 型數(shù)據(jù)包進行流量控制處理,并將流量控制處理后的交互型數(shù)據(jù)包存入高優(yōu)先級存放隊列 中;當(dāng)識別出所述數(shù)據(jù)包為正常型數(shù)據(jù)包時,根據(jù)預(yù)設(shè)的第二流量控制規(guī)則,對所述正常 型數(shù)據(jù)包進行流量控制處理,并將流量控制處理后的正常型數(shù)據(jù)包存入低優(yōu)先級存放隊列 中;按存放隊列的優(yōu)先權(quán)等級,依次輸出相應(yīng)存放隊列中的數(shù)據(jù)包。
2.如權(quán)利要求1所述的方法,其特征在于,所述當(dāng)接收到數(shù)據(jù)包時,識別所述數(shù)據(jù)包的 類型的步驟之前,還包括通過應(yīng)用層向驅(qū)動層下發(fā)預(yù)設(shè)的流量控制應(yīng)用表,特定應(yīng)用交互型索引表以及包括第 一流量控制規(guī)則、第二流量控制規(guī)則的細分類別流量控制規(guī)則,所述第一流量控制規(guī)則包 括交互型數(shù)據(jù)包對應(yīng)的特定應(yīng)用的應(yīng)用類別流量控制規(guī)則和其他類別流量控制規(guī)則,所 述第二流量控制規(guī)則包括正常型數(shù)據(jù)包對應(yīng)的應(yīng)用的應(yīng)用類別流量控制規(guī)則和其他類別 流量控制規(guī)則。
3.如權(quán)利要求2所述的方法,其特征在于,所述當(dāng)接收到數(shù)據(jù)包時,識別所述數(shù)據(jù)包的 類型的步驟,包括判斷所述數(shù)據(jù)包所對應(yīng)的應(yīng)用是否為特定應(yīng)用;當(dāng)判斷結(jié)果為否時,確定所述數(shù)據(jù)包為普通應(yīng)用的正常型數(shù)據(jù)包,當(dāng)判斷結(jié)果為是時, 確定所述數(shù)據(jù)包為特定應(yīng)用的數(shù)據(jù)包,進一步判斷所述特定應(yīng)用的數(shù)據(jù)包的長度是否小于 預(yù)設(shè)的長度閾值;當(dāng)所述特定應(yīng)用的數(shù)據(jù)包的長度小于預(yù)設(shè)的長度閾值時,則識別確定所述數(shù)據(jù)包為交 互型數(shù)據(jù)包,在所述交互型數(shù)據(jù)包中設(shè)置延時敏感標志,否則,識別確定所述數(shù)據(jù)包為正常 型數(shù)據(jù)包。
4.如權(quán)利要求3所述的方法,其特征在于,所述判斷所述數(shù)據(jù)包所對應(yīng)的應(yīng)用是否為 特定應(yīng)用的步驟包括判斷所述數(shù)據(jù)包所對應(yīng)的連接跟蹤信息中是否包括類別標識;若所述連接跟蹤信息中包括類別標識,則根據(jù)所述類別標識,識別所述數(shù)據(jù)包所對應(yīng) 的應(yīng)用的類型,并確定出所述數(shù)據(jù)包的應(yīng)用是否為特定應(yīng)用;若所述連接跟蹤信息中不包括類別標識,根據(jù)數(shù)據(jù)包所包括的五元組信息和所述流 量控制應(yīng)用表,識別所述數(shù)據(jù)包所對應(yīng)的應(yīng)用的類型,并在識別出類型后,判斷在所述特定 應(yīng)用交互型索引表中是否記錄有識別出的所述類型,若判斷結(jié)果為記錄有識別出的所述類 型,則確定所述數(shù)據(jù)包所對應(yīng)的應(yīng)用為特定應(yīng)用,否則,為普通應(yīng)用,同時根據(jù)判斷結(jié)果,在 所述數(shù)據(jù)包的連接跟蹤信息中設(shè)置與識別出的所述類型相對應(yīng)的類別標識;其中,所述類別標識的格式為是否為特定應(yīng)用+應(yīng)用類型。
5.如權(quán)利要求2所述的方法,其特征在于,所述當(dāng)接收到數(shù)據(jù)包時,識別該數(shù)據(jù)包的類 型的步驟,包括判斷所述數(shù)據(jù)包所對應(yīng)的應(yīng)用是否為特定應(yīng)用;當(dāng)判斷結(jié)果為否時,確定所述數(shù)據(jù)包為普通應(yīng)用的正常型數(shù)據(jù)包,當(dāng)判斷結(jié)果為是時, 確定所述數(shù)據(jù)包為特定應(yīng)用所對應(yīng)的數(shù)據(jù)包,則進一步判斷所述特定應(yīng)用的數(shù)據(jù)包中是否 包括交互命令標志;當(dāng)所述特定應(yīng)用的數(shù)據(jù)包中包括交互命令標志時,則識別確定所述數(shù)據(jù)包為交互型數(shù) 據(jù)包,并在所述交互型數(shù)據(jù)包中設(shè)置延時敏感標志,否則,識別確定所述數(shù)據(jù)包為特定應(yīng)用 的正常型數(shù)據(jù)包。
6.如權(quán)利要求5所述的方法,其特征在于,所述判斷所述數(shù)據(jù)包所對應(yīng)的應(yīng)用是否為 特定應(yīng)用的步驟包括判斷所述數(shù)據(jù)包所對應(yīng)連接跟蹤信息中是否包括類別標識;若所述連接跟蹤信息中包括類別標識,則根據(jù)所述類別標識,識別所述數(shù)據(jù)包所對應(yīng) 的應(yīng)用的類型,并確定出所述數(shù)據(jù)包的應(yīng)用是否為特定應(yīng)用;若所述連接跟蹤信息中不包括類別標識,則提取數(shù)據(jù)包中的特征碼;根據(jù)所述特征碼識別所述數(shù)據(jù)包所對應(yīng)的應(yīng)用的類型,并在識別出所述數(shù)據(jù)包的應(yīng)用 的類型后,判斷在所述特定應(yīng)用交互型索引表中是否記錄有識別出的所述類型,若判斷結(jié) 果為記錄有識別出的所述類型,則確定所述數(shù)據(jù)包所對應(yīng)的應(yīng)用為特定應(yīng)用,否則,為普通 應(yīng)用,同時根據(jù)判斷結(jié)果,在所述數(shù)據(jù)包的連接跟蹤信息中設(shè)置與識別出的所述類型相對 應(yīng)的類別標識,其中,所述類別標識的組合為是否為特定應(yīng)用+應(yīng)用類型;其中,在根據(jù)所述特征碼識別所述數(shù)據(jù)包所對應(yīng)的應(yīng)用的類型的識別過程中,根據(jù)所 述細分類別流量控制規(guī)則中第一流量控制規(guī)則中的其他類別流量控制規(guī)則,對所述數(shù)據(jù)包 進行流量控制處理,將所述數(shù)據(jù)包存入第三優(yōu)先級存放隊列中,所述第三優(yōu)先級存放隊列 的優(yōu)先權(quán)等級低于所述高優(yōu)先級存放隊列,高于所述低優(yōu)先級存放隊列。
7.如權(quán)利要求4或6所述的方法,其特征在于,還包括當(dāng)根據(jù)所述數(shù)據(jù)包中包括的五元組信息或者根據(jù)提取的特征碼未能識別出所述數(shù)據(jù) 包所對應(yīng)的應(yīng)用的類型時,根據(jù)所述細分類別流量控制規(guī)則的第二流量控制規(guī)則中的其他 類別流量控制規(guī)則,對所述數(shù)據(jù)包進行流量控制處理,并將所述數(shù)據(jù)包存入第四優(yōu)先級存 放隊列中,其中,所述第四優(yōu)先級存放隊列的優(yōu)先權(quán)等級低于所述低優(yōu)先級存放隊列。
8.如權(quán)利要求7所述的方法,其特征在于,還包括監(jiān)測存放隊列中的數(shù)據(jù)包的個數(shù),其中當(dāng)采用根據(jù)所述數(shù)據(jù)包中包括的五元組信息以 及流量控制應(yīng)用表識別所述數(shù)據(jù)包所對應(yīng)的應(yīng)用的類型時,所述存放隊列包括所述高優(yōu)先 級存放隊列、所述低優(yōu)先級存放隊列以及所述第四優(yōu)先級存放隊列,或者當(dāng)采用從數(shù)據(jù)包 中提取出的特征碼的方式識別所述數(shù)據(jù)包所對應(yīng)的應(yīng)用的類型時,所述存放隊列包括所述 高優(yōu)先級存放隊列、所述低優(yōu)先級存放隊列、所述第三優(yōu)先級存放隊列以及所述第四優(yōu)先 級存放隊列;當(dāng)監(jiān)測到相應(yīng)存放隊列的數(shù)據(jù)包的個數(shù)達到預(yù)設(shè)的數(shù)量閾值時,根據(jù)對相應(yīng)存放隊列 中的數(shù)據(jù)包設(shè)置的丟包優(yōu)先系數(shù)以及預(yù)設(shè)的系數(shù)閾值,刪除相應(yīng)存放隊列中的數(shù)據(jù)包,并 停止向相應(yīng)的存放隊列存入數(shù)據(jù)包。
9.一種基于應(yīng)用的流量控制器,其特征在于,包括識別模塊,用于當(dāng)接收到數(shù)據(jù)包時,識別所述數(shù)據(jù)包的類型,所述數(shù)據(jù)包的類型包括交互型數(shù)據(jù)包和正常型數(shù)據(jù)包;控制模塊,用于當(dāng)所述識別模塊識別出所述數(shù)據(jù)包為交互型數(shù)據(jù)包時,根據(jù)預(yù)設(shè)的第 一流量控制規(guī)則,對所述交互型數(shù)據(jù)包進行流量控制處理,并將流量控制處理后的交互型 數(shù)據(jù)包存入高優(yōu)先級存放隊列中;當(dāng)識別出所述數(shù)據(jù)包為正常型數(shù)據(jù)包時,根據(jù)預(yù)設(shè)的第二流量控制規(guī)則,對所述正常 型數(shù)據(jù)包進行流量控制處理,并將流量控制處理后的正常型數(shù)據(jù)包存入低優(yōu)先級存放隊列 中;發(fā)送模塊,用于按存放隊列的優(yōu)先權(quán)等級,依次輸出相應(yīng)存放隊列中的數(shù)據(jù)包。
10.如權(quán)利要求9所述的流量控制器,其特征在于,還包括用戶層控制模塊,用于獲取預(yù)設(shè)的流量控制應(yīng)用表,特定應(yīng)用交互型索引表以及包括 特定應(yīng)用的第一流量控制規(guī)則和第二流量控制規(guī)則的細分類別流量控制規(guī)則。
11.如權(quán)利要求10所述的流量控制器,其特征在于,所述識別模塊包括 第一判斷單元,用于判斷所述數(shù)據(jù)包所對應(yīng)的應(yīng)用是否為特定應(yīng)用;第一識別單元,用于當(dāng)所述第一判斷單元的判斷結(jié)果為否時,確定所述數(shù)據(jù)包為普通 應(yīng)用的正常型數(shù)據(jù)包,當(dāng)判斷結(jié)果為是時,確定所述數(shù)據(jù)包為特定應(yīng)用的數(shù)據(jù)包;長度判斷單元,用于當(dāng)所述第一識別單元確定所述數(shù)據(jù)包為特定應(yīng)用的數(shù)據(jù)包,判斷 所述特定應(yīng)用的數(shù)據(jù)包的長度是否小于預(yù)設(shè)的長度閾值;第二識別單元,用于當(dāng)所述長度判斷單元判斷結(jié)果為所述特定應(yīng)用的數(shù)據(jù)包的長度小 于預(yù)設(shè)的長度閾值時,則識別確定所述數(shù)據(jù)包為交互型數(shù)據(jù)包,在所述交互型數(shù)據(jù)包中設(shè) 置延時敏感標志,否則,識別確定所述數(shù)據(jù)包為正常型數(shù)據(jù)包。
12.如權(quán)利要求11所述的流量控制器,其特征在于,所述第一判斷單元具體包括 第一判斷子單元,用于判斷所述數(shù)據(jù)包所對應(yīng)的連接跟蹤信息中是否包括類別標識; 第一應(yīng)用類型識別子單元,用于當(dāng)所述第一判斷子單元檢測判斷的結(jié)果為是時,根據(jù)所述類別標識,識別所述數(shù)據(jù)包所對應(yīng)的應(yīng)用的類型,并確定出所述數(shù)據(jù)包的應(yīng)用是否為 特定應(yīng)用;或者,用于當(dāng)所述第一判斷子單元判斷的結(jié)果為否時,根據(jù)所述數(shù)據(jù)包所包括的五元 組信息和所述用戶層控制模塊下發(fā)的流量控制應(yīng)用表,識別所述數(shù)據(jù)包的應(yīng)用的類型,并 在識別出類型后,判斷在所述特定應(yīng)用交互型索引表中是否記錄有識別出的所述類型,若 判斷結(jié)果為記錄有識別出的所述類型,則確定所述數(shù)據(jù)包所對應(yīng)的應(yīng)用為特定應(yīng)用,否則, 為普通應(yīng)用,同時根據(jù)判斷結(jié)果,在所述數(shù)據(jù)包的連接跟蹤信息中設(shè)置與識別出的所述類 型相對應(yīng)的類別標識,其中,所述類別標識的格式為是否為特定應(yīng)用+應(yīng)用類型。
13.如權(quán)利要求9所述的流量控制器,其特征在于,所述識別模塊包括 第二判斷單元,用于判斷所述數(shù)據(jù)包所對應(yīng)的應(yīng)用是否為特定應(yīng)用;第三識別單元,用于當(dāng)所述第二判斷單元的判斷結(jié)果為否時,確定所述數(shù)據(jù)包為普通 應(yīng)用的正常型數(shù)據(jù)包,當(dāng)判斷結(jié)果為是時,確定所述數(shù)據(jù)包為特定應(yīng)用所對應(yīng)的數(shù)據(jù)包;交互命令標志識別單元,用于當(dāng)所述第三識別單元確定所述數(shù)據(jù)包為特定應(yīng)用所對應(yīng) 的數(shù)據(jù)包,判斷所述特定應(yīng)用的數(shù)據(jù)包中是否包括交互命令標志;第四識別單元,用于當(dāng)所述交互命令標志識別單元的判斷結(jié)果為所述特定應(yīng)用的數(shù)據(jù) 包中包括交互命令標志時,則識別確定所述數(shù)據(jù)包為交互型數(shù)據(jù)包,并在所述交互型數(shù)據(jù)包中設(shè)置延時敏感標志,否則,識別確定所述數(shù)據(jù)包為特定應(yīng)用的正常型數(shù)據(jù)包。
14.如權(quán)利要求13所述的流量控制器,其特征在于,所述第二判斷單元具體包括第二判斷子單元,用于判斷所述數(shù)據(jù)包所對應(yīng)的連接跟蹤信息中是否包括類別標識;第二應(yīng)用類型識別子單元,用于當(dāng)所述第二判斷子單元判斷結(jié)果為是時,根據(jù)所述類 別標識,識別所述數(shù)據(jù)包所對應(yīng)的應(yīng)用的類型,并確定出所述數(shù)據(jù)包的應(yīng)用是否為特定應(yīng) 用;提取子單元,用于當(dāng)所述第二判斷子單元判斷結(jié)果為否時,提取數(shù)據(jù)包中的特征碼;第三應(yīng)用類型識別子單元,用于根據(jù)所述提取子單元提取的特征碼識別所述數(shù)據(jù)包所 對應(yīng)的應(yīng)用的類型,并在識別出所述數(shù)據(jù)包的應(yīng)用的類型后,判斷在所述特定應(yīng)用交互型 索引表中是否記錄有識別出的所述類型,若判斷結(jié)果為記錄有識別出的所述類型,則確定 所述數(shù)據(jù)包所對應(yīng)的應(yīng)用為特定應(yīng)用,否則,為普通應(yīng)用,同時根據(jù)判斷結(jié)果,在所述數(shù)據(jù) 包的連接跟蹤信息中設(shè)置與識別出的所述類型相對應(yīng)的類別標識,其中,所述類別標識的 組合為是否為特定應(yīng)用+應(yīng)用類型;所述控制模塊還用于在所述第三應(yīng)用類型識別子單元根據(jù)特征碼識別所述數(shù)據(jù)包所 對應(yīng)的應(yīng)用的類型過程中,根據(jù)所述細分類別流量控制規(guī)則中第一流量控制規(guī)則中的其他 類別流量控制規(guī)則,對所述數(shù)據(jù)包進行流量控制處理,并將所述數(shù)據(jù)包存入第三優(yōu)先級存 放隊列中,其中,所述第三優(yōu)先級存放隊列的優(yōu)先權(quán)等級低于所述高優(yōu)先級存放隊列,高于 所述低優(yōu)先級存放隊列。
15.如權(quán)利要求12或14所述的流量控制器,其特征在于,所述控制模塊還用于當(dāng)所述第一應(yīng)用類型識別子單元或所述第三應(yīng)用類型識別子單 元未能識別出所述數(shù)據(jù)包所對應(yīng)的應(yīng)用類型時,根據(jù)所述細分類別流量控制規(guī)則中第二流 量控制規(guī)則的其他類別流量控制規(guī)則,對所述數(shù)據(jù)包進行流量控制處理,并將所述數(shù)據(jù)包 存入第四優(yōu)先級存放隊列中,其中,所述第四優(yōu)先級存放隊列的優(yōu)先權(quán)等級低于所述低優(yōu) 先級存放隊列。
16.如權(quán)利要求15所述的流量控制器,其特征在于,還包括監(jiān)測模塊,用于當(dāng)采用根據(jù)所述數(shù)據(jù)包中包括的五元組信息以及流量控制應(yīng)用表識別 所述數(shù)據(jù)包所對應(yīng)的應(yīng)用的類型時,監(jiān)測所述高優(yōu)先級存放隊列、所述低優(yōu)先級存放隊列 以及所述第四優(yōu)先級存放隊列中的數(shù)據(jù)包的個數(shù);或者當(dāng)采用從數(shù)據(jù)包中提取出的特征碼的方式識別所述數(shù)據(jù)包所對應(yīng)的應(yīng)用的類型 時,監(jiān)測所述高優(yōu)先級存放隊列、所述低優(yōu)先級存放隊列、所述第三優(yōu)先級存放隊列以及所 述第四優(yōu)先級存放隊列中的數(shù)據(jù)包的個數(shù);刪除模塊,用于當(dāng)所述監(jiān)測模塊監(jiān)測到相應(yīng)存放隊列的數(shù)據(jù)包的個數(shù)達到預(yù)設(shè)的數(shù)量 閾值時,根據(jù)對相應(yīng)存放隊列中的數(shù)據(jù)包設(shè)置的丟包優(yōu)先系數(shù)以及預(yù)設(shè)的系數(shù)閾值,刪除 相應(yīng)存放隊列中的數(shù)據(jù)包,并使所述控制模塊停止向相應(yīng)的存放隊列存入數(shù)據(jù)包。
全文摘要
本發(fā)明實施例公開了一種基于應(yīng)用的流量控制方法及流量控制器,該方法包括識別接收到的數(shù)據(jù)包的類型;當(dāng)數(shù)據(jù)包為交互型數(shù)據(jù)包時,根據(jù)預(yù)設(shè)的包括帶寬控制和延時控制的第一流量控制規(guī)則,對所述數(shù)據(jù)包進行流量控制后存入高優(yōu)先級存放隊列中;當(dāng)所述數(shù)據(jù)包為正常型數(shù)據(jù)包時,根據(jù)預(yù)設(shè)的第二流量控制規(guī)則,對所述數(shù)據(jù)包進行流量控制后存入低優(yōu)先級存放隊列中;按存放隊列的優(yōu)先權(quán)等級,依次輸出數(shù)據(jù)包。本發(fā)明通過將流量控制規(guī)則細分為第一流量控制規(guī)則和第二流量控制規(guī)則,分別對識別出的交互型數(shù)據(jù)包和正常型數(shù)據(jù)進行流量控制,保證交互型數(shù)據(jù)包的帶寬和時延的要求,同時也不會影響到非交互的正常型數(shù)據(jù)包的傳輸,提升了用戶的應(yīng)用訪問體驗。
文檔編號H04L12/56GK102035748SQ201010618729
公開日2011年4月27日 申請日期2010年12月31日 優(yōu)先權(quán)日2010年12月31日
發(fā)明者林欽松 申請人:深圳市深信服電子科技有限公司