本發明屬于路由器的業務流調度技術領域,尤其涉及一種基于報文識別的數據流調度系統以及數據流調度方法
背景技術:
對于擁塞管理,一般采用隊列技術,使用一個隊列算法對流量進行分類,之后用某種優先級別算法將這些流量發送出去。每種隊列算法都是用以解決特定的網絡流量問題,并對帶寬資源的分配、延遲、抖動等有著十分重要的影響。目前在電信運營商各級網絡設備均運用不同的業務調度系統,但對于“最后一公里”的家用路由器,目前常用的業務調度功能通常有以下幾種方式:
a)利用二層技術或三層技術區分業務并調度。
b)設置固定終端(MAC或IP)地址,將通過其的業務流做強行調度。
c)針對不同應用,將不同端口(Port)的業務流做調度。
其中,二層技術主要以VLAN的優先級進行調度,三層技術主要以DSCP的優先級進行調度。不管是二層VLAN技術還是三層DSCP技術都需要手動配置規則,并將具體業務流分類調度。一旦配置,歸屬于同一類的業務流均按此規則調度,靈活性不佳。而基于固定終端地址的調度,則僅對目的地址為設置的終端地址做優先轉發,無法對具體業務流做精確調度。
授權公告號CN 101616098 B,授權公告日2011年11月16日的發明專利,針對基于IP地址和端口號的ACL識別技術,在識別小型報文數據流并優先調度方面存在嚴重不足的情況,提出了一種TCP數據流的調度方法和設備。應用于包括至少一個終端設備、一個路由器和至少一個服務器的網絡系統中,路由器根據報文的大小,將終端設備與服務器之間傳輸的TCP數據流中的報文分為多個類型。其中,第一類型的報文為網絡系統中需要優選傳輸的報文,其他類型的報文的大小與第一類型的報文的大小的差距依次增大,路由器為終端設備與服務器之間傳輸的每條TCP數據流配置優先級參數。具體為路由器為終端設備與服務器之間進行雙向傳輸的每條TCP數據流配置會話管理信息,會話管理信息包括TCP數據流的優先級參數和TCP數據流的轉發信息。可以實現對上述類型劃分之后的任意一種類型的報文的數據流進行優先調度。
在上述專利技術方案中,僅針對TCP數據流的報文長度對數據流的優先級參數進行動態調整,以實現對數據流的智能識別和調控。僅根據報文長度參數對數據流進行調度,而無法實現對具體的數據流做精確調度。
技術實現要素:
本發明提供了一種基于報文識別的智能調度系統以及數據流調度方法。本發明技術方案解決了現有路由器手工配置業務優先級,或僅能通過終端地址調度業務流,無法區分具體業務,調度結果不理想等問題。
為達到上述目的,本發明采取如下技術方案:
一種數據流調度系統,包括用于接收存儲數據流的數據流接收模塊、用于識別所述數據流的數據流識別模塊、用于對所述數據流接收模塊接收到的數據流進行調度的數據流調度模塊、用于發送經所述數據流調度模塊調度后的數據流的數據流發送模塊;其特征在于:所述數據流識別模塊用于對所述數據流進行數據流類型識別、數據流會話時間識別,所述業務調度模塊根據所述數據流識別模塊的識別結果對所述數據流接收模塊接收到的數據流進行調度。
作為優選,數據流調試系統還包括用于存儲所述數據流的多個具有不同發送優先級的存儲隊列,所述數據流接收模塊根據其接受到的數據流的報文長度將所述數據流存儲在其中一個所述存儲隊列中,所述數據流發送模塊優先發送發送優先級較高的存儲隊列中的數據流。
作為優選,所述業務調度模塊根據所述業務識別模塊的識別結果,調整所述數據流的存儲隊列。
作為優選,所述存儲隊列包括第一存儲隊列、第二存儲隊列、第三存儲隊列;所述第一存儲隊列的發送優先級高于所述第二存儲隊列的發送優先級,所述第二存儲隊列的發送優先級高于所述第三存儲隊列的優先級;所述數據流接收模塊將報文長度較長的數據流存儲在所述第一存儲隊列中,所述數據流接收模塊將報文長度較短的數據流存儲在所述第二存儲隊列中,所述數據流接收模塊將報文長度居中的數據流存儲在所述第三存儲隊列中。
作為優選,數據流接收模塊將報文長度大于1400字節的數據流存儲在所述第一存儲隊列中,所述數據流接收模塊將報文長度較小于120字節的數據流存儲在所述第二存儲隊列中,所述數據流接收模塊將報文長度大于等于120字節并且小于等1400字節的數據流存儲在所述第三存儲隊列中。
作為優選,所述數據流識別模塊識別所述數據流的數據流類型,所述數據流調度模塊根據所述數據流識別模塊的識別結果,將所述第一存儲隊列中,數據流類型為UDP的數據流,調度至所述第三存儲隊列。
作為優選,所述數據流識別模塊識別所述數據流的數據流會話時間,所述數據流調度模塊根據所述數據流識別模塊的識別結果,將所述第一存儲隊列和所述第二存儲隊列中,數據流會話時間大于指定時間的數據流,調度至所述第三存儲隊列。
作為優選,所述數據流調度模塊根據所述數據流識別模塊的識別結果,將所述第一存儲隊列和所述第二存儲隊列中,數據流會話時間大于120秒的數據流,調度至所述第三存儲隊列。
作為優選,所述數據流接收模塊設于WAN轉發接口驅動模塊中。
本法明還提供一種數據流調度方法,其包括如下步驟:
S01接收數據流,在WAN口接收需要轉發的數據流;
S02存儲數據流,根據所述數據流的報文長度,將所述數據流存儲至存儲隊列中;
S03執行第一調度,根據所述數據流的數據流類型對所述數據流進行調度;
S04執行第二調度,根據所述數據流的數據流會話時間對所述數據流進行調度。
本發明基于報文識別對數據流進行智能調度,實現對具體業務識別并調度的功能。
附圖說明
圖1是互聯網網絡流量包長排名分析圖。
圖2是傳輸協議使用占比分析圖。
圖3是互聯網網絡流量端口分析圖。
圖4是HTTP業務數據流時間分析圖。
具體實施方式
以下是本發明的具體實施例并結合附圖,對本發明的技術方案作進一步的描述,但本發明并不限于這些實施例。
優選實施例:
本實施例數據流調度系統,應用于路由器WAN轉發接口驅動中,其包括如下模塊:
存儲模塊,設置于路由器的WAN轉發接口驅動中,用于存儲數據流的;
數據流接收模塊,用于接收存儲數據流;
數據流識別模塊,用于識別數據流;
數據流調度模塊,用于對數據流接收模塊接收到的數據流進行調度;
數據流發送模塊,用于發送經數據流調度模塊調度后的數據流。
更進一步,上述各模塊的詳細描述如下:
存儲模塊,包括單個具有不同發送優先級的存儲隊列:第一存儲隊列、第二存儲隊列和第三存儲隊列。其中,第一存儲隊列的優先級最高、第二存儲隊列的優先級其次、第三存儲隊列的優先級最低。
數據流接收模塊,接收經在路由器的WAN轉發接口驅動進入的數據流,并將接收到的數據流存儲到存儲模塊中。數據流接收模塊根據數據流的報文長度對數據流進行初步劃分,根據數據流報文長度的不同,初步確定各數據流的發送優先級,并將其放入對應發送優先級的存儲隊列中。
數據流識別模塊,用于對數據流進行數據流類型識別、數據流會話時間識別。
其中,數據流類型的識別主要包括數據流連接協議的識別,也可以進一步地包括數據流連接端口的識別,通過對數據流連接協議和端口的識別,可以對數據流對應的業務類型有一個初步的綜合判斷。
路由器的每個數據連接都會建立一個NAT會話表,記錄這個連接的狀態信息,包括連接的協議類型、源地址、源端口、目的地址、目的端口等信息,用來進行回復報文的NAT轉換處理,通過對比路由器NAT會話表中協議類型以及目的端口可以迅速的識別數據流類型。
例如,瀏覽網頁的數據流采用TCP協議,在80端口通信。從而,可以通過查詢NAT會話表,將協議類型為TCP,目的端口號為80的數據流識別為瀏覽網頁的數據流;而QQ的數據流采用UDP協議,在端口4000通信。因此,可以通過查詢NAT會話表,將協議類型為UDP,目的端口號為4000的數據流識別為QQ的數據流。
數據流會話時間的識別主要是指判斷數據流的會話時間。
業務調度模塊,根據數據流識別模塊的識別結果對數據流接收模塊接收到的數據流進行調度。
首先,根據數據流識別模塊對數據流的數據流類型識別結果對存儲隊列中的數據流進行第一調度;隨后,再根據數據流識別模塊對數據流的數據流會話時間識別結果對存儲隊列中的數據流進行第二調度。
數據流發送模塊,按照發送優先級對應的先后順序,發送存儲模塊的存儲隊列中的數據流。
存儲隊列一的發送優先級最高、存儲隊列二的發送優先級其次、存儲隊列三的發送優先級最低。數據流發送模塊優先發送存儲隊列一中的數據流,最后發送存儲隊列三中的數據流。只要發送優先級高的存儲隊列中有數據流,數據流發送模塊就會選擇優先級高的存儲隊列中的數據流進行發送。
目前互聯網數據流的報文長度主要以1400以上字節為主(如圖1所示)。其中的web業務和下載業務,通常以報文長度在1400字節以上的數據流進行傳輸。而移動APP推送、社交軟件、以及游戲業務,通常以報文長度在200字節以下的數據流進行傳輸。
目前互聯網大量的業務均通過TCP短連接或者長連接的方式傳輸(如圖2)。剩余的大部分業務也采用UDP方式傳輸。
目前互聯網業務的常用端口的網絡流量分析如圖3所示。如,端口80是為HTTP(HyperText Transport Protocol,超文本傳輸協議)開放的,此為瀏覽網頁服務默認的端口號。是瀏覽網頁使用次數最多的協議,主要用于WWW(World Wide Web,萬維網)傳輸信息的協議,通過該端口的網絡流量較大。端口4662是電驢下載的TCP端口,通過該端口的網絡流量也相對較大。
圖4為HTTP業務的數據流分析,可以看出,大部分HTTP業務的數據流的回話時間都小于120秒的。
綜上所述,本發明根據互聯網上不同業務在數據流的報文長度、數據流類型(協議類型、對應端口)、以及會話時間的差異,對數據流進行劃分調度。以實現對數據流的精確調度。
本發明基于報文識別的對數據流進行智能調度,實現對具體業務識別并調度的功能,無需預先對數據流進行分類,減少VLAN tag或者識別DSCP所需要的額外開銷;其可根據報文識別達到精確調度業務的功能;應用于路由器WAN口轉發接口驅動中,不影響系統內核調度。家用路由器所有的互聯網數據收發均經過WAN口,在出入口處調度不會影響原有系統內核的業務調度。
本發明調度系統通過業務流特征識別、包長識別以及業務流記錄時間等方法,達到自動調度的功能;適用范圍廣,可以應用復雜業務場景。
在路由器的WAN口轉發接口驅動中新建三個存儲隊列:第一存儲隊列、第二存儲隊列和第三存儲隊列。其中,第一存儲隊列的發送優先級最高、第三存儲隊列的發送優先級最低。三個隊列均為FIFO(First In First Out,先進先出)隊列。接下來調度系統的工作步驟包括:
步驟S01,接收數據流。
數據流接收模塊在路由器的WAN口接收到需要轉發至互聯網或者內網的數據流。
步驟S02,存儲數據流。
數據流接收模塊,根據數據流的報文長度,將在WAN口接收到的數據流存儲至存儲模塊中:
報文長度大于1400字節的數據流存儲在第一存儲隊列中;
報文長度較小于120字節的數據流存儲在第二存儲隊列中;
報文長度大于等于120字節并且小于等1400字節的數據流存儲在第三存儲隊列中。
報文長度大于1400字節的數據流,可以初步判斷為互聯網的web業務和下載業務。將它們存儲在發送優先級最高的第一存儲隊列中,能夠在第一時間被轉發至目的互聯網或者內網。報文長度小于120字節的數據流,初步判斷為移動APP推送消息業務、社交軟件業務、或者游戲業務等需要及時進行發送的數據流。將它們存儲在發送優先級居中的第二存儲隊列中,當發送優先級最高的第一存儲隊列中的數據發送完畢以后,被轉發至目的互聯網或者內網。而報文長度介于120字節和1400之間的數據流,可以初步判斷為流量居中,而及時性要求不高的業務。因此,將其放入發送優先級最低的第三存儲隊列,在發送優先級較高的第一存儲隊列和第二存儲隊列中的數據均發送完畢以后,被轉發至目的互聯網或者內網。
步驟S03,執行第一調度。
數據流調度模塊,根據數據流識別模塊對數據流類型的識別結果,對存儲模塊中的數據流進行第一次調度。
數據流識別模塊查詢路由器的NAT會話表,獲取第一存儲隊列中數據流的協議號以及目的端口號,對第一存儲隊列中的數據流類型進行識別。第一存儲隊列中采用UDP協議的數據流,網絡流量大同時采用UDP協議進行傳輸的業務,大多數情況下為及時性要求不高的下載業務。
因此,數據調度單元將第一存儲隊列中,數據流識別模塊的識別結果為UDP協議類型的數據流調度至發送優先級較低的第三存儲隊列。在發送優先級較高的第一存儲隊列和第二存儲隊列中的數據均發送完畢以后,被轉發至目的互聯網或者內網。
步驟S04,執行第二調度。
數據流調度模塊,根據數據流識別模塊對數據流會話時間的識別結果,對存儲模塊中的數據流進行第二次調度。
數據流識別模塊獲取存儲在發送優先級較高的第一存儲隊列和第二存儲隊列中的數據流的會話時間。會話時間大于120秒的數據流,基本上為互聯網上及時性要求不高的下載業務。
因此,數據調度單元將第一存儲隊列中,數據流識別模塊的識別結果為會話時間超過120秒的數據流調度至發送優先級最低的第三存儲隊列中。在發送優先級較高的第一存儲隊列和第二存儲隊列中的數據均發送完畢以后,被轉發至目的互聯網或者內網。
數據流發送模塊按照發送優先級的高低,優先轉發存儲在第一存儲隊列中的數據流,當第一存儲隊列中的數據流處理完畢以后,轉發存儲在第二存儲隊列中的數據流,當第二存儲隊列中的數據流處理完畢以后,轉發存儲在第三存儲隊列中的數據流。
通過數據識別模塊對三個不同優先級的存儲隊列中數據流進行識別,數據調度模塊根據所述數據識別模塊的識別結果,對存儲在三個存儲隊列中的數據流進行精確調度。其中,第一調度的執行,將發送優先級相對較高的第一存儲隊列中的數據流,調度至發送優先級最低的第三存儲隊列中去。而第二調度的執行,將發送優先級相對較高的第一存儲隊列和第二存儲隊列中的數據流,調度至發送優先級最低的第三存儲隊列中。從而保證了發送優先級最高的第一存儲隊列中的數據流,不會因為調度的執行而增加。可以保持第一存儲隊列以及第二存儲隊列中的數據流隊列不會太長,而使得發送優先級交底的存儲隊列中的數據等待了很長時間仍不能被轉發。保證了對數據流的自動識別、靈活配置以及精確調度。因而本發明可以方便地應用于復雜業務環境下的家用路由器中。
本發明的技術優勢體現在以下幾個方面:
(1)無需預先對數據流進行分類,減少VLAN tag或者識別DSCP所需要的額外開銷。
(2)可根據報文識別達到精確調度業務的功能。
(3)應用于路由器WAN口轉發接口驅動中,不影響系統內核調度。家用路由器所有的互聯網數據收發均經過WAN口,在出入口處調度不會影響原有系統內核的業務調度。
(4)本調度系統通過業務流特征識別、包長識別以及業務流記錄時間等方法,達到自動調度的功能。
(5)適用范圍廣,可以應用復雜業務場景。
本文中所描述的具體實施例僅僅是對本發明精神作舉例說明。本發明所屬技術領域的技術人員可以對所描述的具體實施例做各種各樣的修改或補充或采用類似的方式替代,但并不會偏離本發明的精神或者超越所附權利要求書所定義的保護范圍。