專利名稱:采用流表映射調(diào)度策略對多核網(wǎng)絡處理器下的流量進行調(diào)度的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種多核網(wǎng)絡處理器下的流量調(diào)度方法,更特別地說,是指一種采用流表映射對多核網(wǎng)絡處理器下的流量進行調(diào)度的方法。
背景技術(shù):
隨著網(wǎng)絡的迅速發(fā)展,網(wǎng)絡設備的轉(zhuǎn)發(fā)能力與日劇增,對網(wǎng)絡設備處理能力的要求越來越高,網(wǎng)絡設備的硬件芯片的處理能力越來越成為設備性能的瓶頸。而且當前網(wǎng)絡中需要處理的數(shù)據(jù)越來越多,単一處理器的處理能力不能滿足數(shù)據(jù)處理的速度時,需要轉(zhuǎn)到多核平臺處理。多核網(wǎng)絡設備上存在大量的數(shù)據(jù)并行的應用,因此數(shù)據(jù)的調(diào)度分發(fā)策略是應用中影響性能的決定性部分。
目前的包調(diào)度策略一般有兩種基于數(shù)據(jù)包的調(diào)度策略和基于流的調(diào)度策略?;跀?shù)據(jù)包的調(diào)度策略中,以數(shù)據(jù)包為單位,分配到相應的資源。大多數(shù)復雜的算法將包非配到最少負載的資源。通過調(diào)度策略,可以很好的實現(xiàn)負載均衡。但是基于數(shù)據(jù)包的調(diào)度可能引起包的重新排序可能影響網(wǎng)絡性能。而且在共享存儲系統(tǒng)中,冷緩存也會降低性能。基于流的調(diào)度策略中保持一個活動流的表,每個流對應ー個處理資源。同一個流的數(shù)據(jù)包被相同資源處理。新加入的流分配給最少負載的資源。因此同一流的數(shù)據(jù)包分配同一資源,并保持每個流的中包的順序,有良好的緩存(Cache)親和性。缺點是需要大量空間存儲活動流的表。需要大量時鐘周期執(zhí)行查詢。而且不同流的數(shù)據(jù)包的數(shù)目、字節(jié)、處理資源不均衡。因此簡單的流調(diào)度策略很難分配新的流資源達到負載均衡。對于ー種理想調(diào)度方法,應該具備相關(guān)條件保證系統(tǒng)的負載均衡,包均勻分配到所有處理節(jié)點;盡量低的調(diào)度開銷;流保序,同一流的數(shù)據(jù)包出入序列相同;Cache親和性;以及盡量小的分發(fā)延遲。但任何一種包調(diào)度方法很難滿足負載均衡,同時保證良好的Cache親和性。而對于突發(fā)性的流量,更需要考慮到負載的均衡性與Cache的親和性。為達到更高的系統(tǒng)吞吐量,必須在負載均衡與Cache親和之間找到ー個合理的折中,充分利用硬件的處理性能。
發(fā)明內(nèi)容
本發(fā)明的目的是提出一種采用流表映射的調(diào)度策略對多核網(wǎng)絡處理器下的流量調(diào)度的方法,在本方法中,實現(xiàn)了兩級存儲結(jié)構(gòu),即頭包列表存儲結(jié)構(gòu)、流表存儲結(jié)構(gòu),通過流表動態(tài)流映射來克服現(xiàn)有調(diào)度方法容易出現(xiàn)負載不均衡的問題,特別是在應對突發(fā)流量的情況下,本方法能夠?qū)崿F(xiàn)較好的調(diào)度,減小了流量抖動的影響,降低多核網(wǎng)絡處理器的開銷,提高多核網(wǎng)絡處理器吞吐量。本發(fā)明的一種采用流表映射調(diào)度策略對多核網(wǎng)絡處理器下的流量進行調(diào)度的方法,具體數(shù)據(jù)包調(diào)度步驟如下步驟S1:調(diào)度計算模塊接收輸入的接收數(shù)據(jù)包信息PAK = (Pak1, pak2,…,pakA},并將該PAK發(fā)送至存儲模塊;計算各個處理節(jié)點FE = {fei, fe2,…,fec}所以對應任務隊列 QE = {q1; q2, ...,qF}的長度 LEN = (Ien1, Ien2, ...,lenE};步驟S2 :存儲模塊中先構(gòu)建存儲結(jié)構(gòu),包括流表存儲結(jié)構(gòu)和頭包列表存儲結(jié)構(gòu);然后提取出接收到的數(shù)據(jù)包PAK= Ipak1, pak2,-,pakj中的頭部信息,然后判斷該數(shù)據(jù)包所屬的包一流信息FLW = {flwj, flw2,,flwB}是否存在于流表存儲結(jié)構(gòu)中,根據(jù)判斷結(jié)果將數(shù)據(jù)包信息PAK存放到流表存儲結(jié)構(gòu)或頭包列表存儲結(jié)構(gòu)中;步驟S3 :調(diào)度計算模塊向處理節(jié)點分派頭包列表中的數(shù)據(jù)包信息,選擇步驟SI中計算處理節(jié)點的任務隊列長度LEN最小的處理節(jié)點記為待處理節(jié)點,并以待處理節(jié)點作為分派目標,并在流表存儲結(jié)構(gòu)中添加該數(shù)據(jù)包信息對應的包一流條目與待處理節(jié)點的映射關(guān)系;步驟S4 :每個處理節(jié)點處理完一個數(shù)據(jù)包后,處理信息反饋模塊接收結(jié)束信號,并將該結(jié)束信號反饋至存儲模塊;存儲模塊依據(jù)包刪除條件刪除最早的一個數(shù)據(jù)包;如果該包一流條目下沒有未處理的數(shù)據(jù)包信息,則在流表存儲結(jié)構(gòu)中刪除該包一流條目;如果該包一流條目下存在有未處理的數(shù)據(jù)包信息,不做存儲處理。本發(fā)明流量調(diào)度方法的優(yōu)點在于①利用存儲模塊中流表流映射關(guān)系能有效降低調(diào)度開銷。②本發(fā)明應用的存儲模塊采用兩種存儲結(jié)構(gòu)形式,實現(xiàn)了對數(shù)據(jù)包的不同保存方式,能夠使存儲模塊到達最優(yōu)的緩存利用率,同時保證了流內(nèi)數(shù)據(jù)包的先后順序。③調(diào)度計算模塊通過平滑指數(shù)方法計算出任務隊列長度,利用該任務隊列長度選擇待處理節(jié)點能夠有效減小突發(fā)流量產(chǎn)生的流量抖動現(xiàn)象。④在存儲模塊中利用頭包列表與流表ニ級存儲結(jié)構(gòu)及處理節(jié)點的反饋信息,能夠快速實現(xiàn)流表刷新及重映射,同時降低了流表存儲結(jié)構(gòu)的大小。
圖1是本發(fā)明的包調(diào)度方法的一個實現(xiàn)模型圖。圖2是本發(fā)明的包調(diào)度方法的流程圖。圖3是圖2中步驟S2的流程圖。圖4是圖2中步驟S3的流程圖。
具體實施例方式下面結(jié)合附圖和實施例,對本發(fā)明的具體實施過程作進ー步詳細描述。本發(fā)明提供的流量調(diào)度方法,能夠在多核網(wǎng)絡處理器下實現(xiàn)流量的調(diào)度,特別能夠滿足突發(fā)流量的調(diào)度要求。如圖1所示流表映射調(diào)度方法的實現(xiàn)模型圖,該流表映射調(diào)度模型采用C語言(版本號C90)編程得到,該流表映射調(diào)度模型內(nèi)嵌在多核網(wǎng)絡處理器的并行包處理系統(tǒng)中,該流表映射調(diào)度模型包括有存儲模塊、調(diào)度計算模塊和處理信息反饋模塊。(一)存儲模塊所述的存儲模塊,一方面用于暫存輸入的等待需要調(diào)度的數(shù)據(jù)包信息PAK、以及與PAK對應的包一流信息FLW、以及與PAK對應的包一流條目FE ;另一方面根據(jù)結(jié)束信號SV更新包一流條目FE。包一流信息是指數(shù)據(jù)包信息所屬的流的信息。包一流條目是指與包一流信息對應的流條目。包一流條目中包含有包一流信息及屬于該包一流信息的數(shù)據(jù)包信息。數(shù)據(jù)包信息PAK采用集合形式表達為PAK = Ipak1, pak2,…,pakA}, Pak1表示存儲模塊接收到的第一個數(shù)據(jù)包信息,Pak2表示存儲模塊接收到的第二個數(shù)據(jù)包信息,pakA表示存儲模塊接收到的最后ー個數(shù)據(jù)包信息,為了方便下文的說明,pakA也稱為存儲模塊接收到的任意一數(shù)據(jù)包信息,A表示數(shù)據(jù)包的標識號。包一流信息FLW采用集合形式表達為FLW = {f Iw1, f Iw2,…,f lwB}, ^w1表示第一條流信息,flw2表示第二條流信息,flwB表示最后一條流信息,為了方便下文的說明,flwB也稱為任意一條流信息,B表示流信息的標識號。在 本發(fā)明中,可能多個的數(shù)據(jù)包信息對應一條流信息,也可能一個數(shù)據(jù)包信息對應一條流信息。包一流條目FE采用集合形式表達為FE = {fe^ fe2,…,fej , Fe1表示第一個流條目,fe2表示第二個流條目,fec表示最后ー個流條目,為了方便下文的說明,fe。也稱為任意一個流條目,C表示流條目的標識號。在本發(fā)明中,包一流條目與包一流信息為一一對應關(guān)系,即ー個包一流條目對應ー個包一流信息。在本發(fā)明中,該存儲模塊具有兩種存儲結(jié)構(gòu)模式,一種模式為頭包列表存儲結(jié)構(gòu)、另ー種模為流表存儲結(jié)構(gòu)。其中頭包列表存儲結(jié)構(gòu)用于存放數(shù)據(jù)包信息PAK。其中流表存儲結(jié)構(gòu)用于存放包一流信息FLW和包一流條目FE。在本發(fā)明中,該存儲模塊依據(jù)存儲條件對等待需要調(diào)度的數(shù)據(jù)包信息PAK進行分配存儲。存儲條件(A)首先檢測該數(shù)據(jù)包信息pakA所屬的流信息flwB ;(B)然后判斷fIwb是否存在于包一流信息FLW= {flWl, flw2,…,flwB}中,若存在,則檢測該流信息れ^是否有其他數(shù)據(jù)包信息的存在,并執(zhí)行步驟(C);若不存在,則創(chuàng)建與數(shù)據(jù)包信息pakA對應的包一流條目fe。;然后將該數(shù)據(jù)包信息pakA存入到頭包列表存儲結(jié)構(gòu)及流表存儲結(jié)構(gòu)中;(C)如果沒有其他數(shù)據(jù)包信息存在,則將該數(shù)據(jù)包信息pakA存入到頭包列表存儲結(jié)構(gòu)及流表存儲結(jié)構(gòu)中;如果有其他數(shù)據(jù)包信息存在,則將該數(shù)據(jù)包信息存入流表存儲結(jié)構(gòu)中,并添加到與數(shù)據(jù)包信息pakA對應的包一流條目fe。中。在本發(fā)明中,在同一存儲時刻Tt (t表示某一存儲時刻)下頭包列表存儲結(jié)構(gòu)中只有一個數(shù)據(jù)包信息映射到同一個流條目中。這也是為了保證流信息與流條目的一一對應關(guān)系。在本發(fā)明中,在存儲模塊中利用頭包列表與流表ニ級存儲結(jié)構(gòu)及處理節(jié)點的反饋信息,能夠快速實現(xiàn)流表刷新及重映射,同時降低了流表存儲結(jié)構(gòu)的大小。應用的存儲模塊采用兩種存儲結(jié)構(gòu)形式,實現(xiàn)了對數(shù)據(jù)包的不同保存方式,能夠使存儲模塊到達最優(yōu)的緩存利用率,同時保證了流內(nèi)數(shù)據(jù)包的先后順序。(ニ)調(diào)度計算模塊所述的調(diào)度計算模塊,第一方面用于接收數(shù)據(jù)包信息PAK = {pabpakr",pakj,并將該PAK = {pak1; pak2, ...,pakj發(fā)送至存儲模塊;所述的調(diào)度計算模塊,第二方面在同一調(diào)度時刻TDx (X表示某一調(diào)度時刻)下,計算各個處理節(jié)點PE = (P1, P2, * *, pD}所以對應任務隊列QE = {q1; q2,,qF}的長度LEN =(Ien1, Ien2,,lenE} ;LEN = (Ien1, Ien2,,lenE}簡稱為任務隊列長度。在本發(fā)明中,處理節(jié)點是指多核網(wǎng)絡處理器中的各個處理引擎,每個處理引擎稱為ー個處理節(jié)點。多核網(wǎng)絡處理器中的處理節(jié)點采用集合形式表達為PE= {P1,P2,-,PD},P1表示第一個處理節(jié)點,P2表示第二個處理節(jié)點,Pd表示最后ー個處理節(jié)點,為了方便下文的說明,Pd也稱為任意ー個處理節(jié)點,D表示處理節(jié)點的標識號。在本發(fā)明中,每個處理節(jié)點對應ー個任務隊列。即P1對應的任務隊列記為qi,P2對應的任務隊列記為q2,Pd對應的任務隊列記為qF。所有的任務隊列采用集合形式表達為QE — iQi, Q2> ***) QfI。在本發(fā)明中,每個任務隊列對應ー個任務隊列長度。即Q1對應的任務隊列長度記為Ien1, q2對應的任務隊列長度記為len2,qF對應的任務隊列長度記為lenE。所有的任務隊列長度采用集合形式表達為LEN= (Ien1, len2,-,IenJ0 Ien1由設定長度值與在調(diào)度時刻TDd下的當前任務隊列長度值加權(quán)計算得到,即Ien1 = CurrentJen1X (l-o)+Real_ Ien1X o ,CurrentJen1表示任務隊列q:的設定長度值,Reallen1表示任務隊列q:的當前任務隊列長度,《表示任務隊列長度系數(shù),并且0 < Co < I。當流條目大于處理節(jié)點個數(shù)吋,Co取值0. 25 ;如果流條目小于或等于處理節(jié)點個數(shù)吋,Co取值0. 75。同理可得,即Ien2=Current_len2X (1-co)+Real_len2X co , Current_len2 表示任務隊列 q2 的設定長度值,Real_len2表示任務隊列q2的當前任務隊列長度。即lenE = Current_lenEX (l-o)+Real_lenEX o,Current_lenE表示任務隊列qF的設定長度值,Real_lenE表示任務隊列qF的當前任務隊列長度。所述的調(diào)度計算模塊,第三方面從任務隊列長度LEN = Ilen1, Ien2, ".,Ien1J中選擇出最小的任務隊列長度所屬的處理節(jié)點,記為待處理節(jié)點,并建立待處理節(jié)點與包一流條目FE = {fei, fe2,…,fej之間的流映射關(guān)系,簡稱為節(jié)點一流映射PEFE ;所述的調(diào)度計算模塊,第四方面將節(jié)點一流映射PEFE發(fā)送到流表存儲結(jié)構(gòu)中。在本發(fā)明中,調(diào)度計算模塊通過平滑指數(shù)方法計算出任務隊列長度,利用該任務隊列長度選擇待處理節(jié)點能夠有效減小突發(fā)流量產(chǎn)生的流量抖動現(xiàn)象。(三)處理信息反饋模塊所述的處理信息反饋模塊,第一方面用于接收處理節(jié)點PE = {P1,P2,…,pD}被所述的調(diào)度計算模塊進行處理后的結(jié)束信號SV= {Sl,s2,…, };所述的處理信息反饋模塊,第二方面將結(jié)束信號SV = {Sl,S2,…,StJ發(fā)送到存儲模塊中,存儲模塊會依據(jù)SV = (S1, S2,…,sj進行包一流條目FE = {fe” fe2,,fej的更新。在本發(fā)明中,處理節(jié)點PE = {Pl, p2,…,pD}被所述的調(diào)度計算模塊所調(diào)度后,每個處理節(jié)點將有ー個對應的結(jié)束信號,即P1對應的結(jié)束信號記為S1, p2對應的結(jié)束信號記為S2, Pd對應的結(jié)束信號記為Se。所有的結(jié)束信號采用集合形式表達為SV = {Sl,S2,…,se}。在本發(fā)明中,處理信息反饋模塊用于輔助存儲模塊,利用存儲模塊中流表流映射關(guān)系能有效降低調(diào)度開銷。以下給出本發(fā)明的一個實施例,說明本發(fā)明數(shù)據(jù)包調(diào)度的過程(如圖2、圖3和圖4所示),具體數(shù)據(jù)包調(diào)度步驟如下步驟S1:調(diào)度計算模塊接收輸入的接收數(shù)據(jù)包信息PAK = (Pak1, pak2,…,pakA},并將該PAK發(fā)送至存儲模塊;計算各個處理節(jié)點FE = {fei, fe2,…,fej所以對應任務隊列 QE = {q1; q2, ...,qF}的長度 LEN = (Ien1, Ien2, ...,lenE};步驟S2 :存儲模塊中先構(gòu)建存儲結(jié)構(gòu),包括流表存儲結(jié)構(gòu)和頭包列表存儲結(jié)構(gòu);然后提取出接收到的數(shù)據(jù)包PAK= Ipak1, pak2,-,pakj中的頭部信息,然后判斷該數(shù)據(jù)包所屬的包一流信息FLW = {flWl, flw2,…,flwB}是否存在于流表存儲結(jié)構(gòu)中,根據(jù)存儲條件判斷結(jié)果將數(shù)據(jù)包信息PAK存放到流表存儲結(jié)構(gòu)或頭包列表存儲結(jié)構(gòu)中。圖3中展示步驟S2中的關(guān)于存儲模塊具體的存儲條件步驟如下S21 :存儲模塊創(chuàng)建流表存儲結(jié)構(gòu)、包頭列表存儲結(jié)構(gòu);S22 :存儲模塊接收調(diào)度計算模塊傳遞來的數(shù)據(jù)包信息PAK,然后提取PAK中的頭部四元組信息;所述四元組包括源IP地址、源端ロ、目的IP地址、目的端ロ ;然后將該四元
組信息作為該數(shù)據(jù)包信息PAK對應的包一流信息FLW的流標識;S23 :判斷流表存儲結(jié)構(gòu)中是否存在步驟S22中生成的流標識的包一流信息FLW及包一流條目FE,如果流表存儲結(jié)構(gòu)中已經(jīng)存在該標識的包一流信息FLW及包一流條目FE,則轉(zhuǎn)入執(zhí)行步驟S24,如果流表存儲結(jié)構(gòu)中不存在該標識的包一流信息FLW及包一流條目,轉(zhuǎn)入執(zhí)行步驟S25 ;S24 :在流表存儲結(jié)構(gòu)中將數(shù)據(jù)包信息PAK添加到對應標識的包一流條目FE下,存儲數(shù)據(jù)包信息完成;S25 :在流表存儲結(jié)構(gòu)中建立該流標識的包一流條目,并保存該包一流信息;S26 :在流表存儲結(jié)構(gòu)中添加數(shù)據(jù)包信息到對應包一流條目下,同時在頭包列表存儲結(jié)構(gòu)中添加該數(shù)據(jù)包信息,存儲數(shù)據(jù)包信息結(jié)束。步驟S3 :調(diào)度計算模塊向處理節(jié)點分派頭包列表中的數(shù)據(jù)包信息,選擇步驟SI中計算處理節(jié)點的任務隊列長度LEN最小的處理節(jié)點(待處理節(jié)點)作為分派目標,并在流表存儲結(jié)構(gòu)中添加該數(shù)據(jù)包信息對應的包一流條目與待處理節(jié)點的映射關(guān)系;圖4中展示步驟S3中的調(diào)度計算模塊具體的調(diào)度步驟如下S31 :檢測頭包列表存儲結(jié)構(gòu)是否為空,如果頭包列表存儲結(jié)構(gòu)為空,則轉(zhuǎn)入步驟S34 ;如果頭包列表存儲結(jié)構(gòu)不為空,轉(zhuǎn)入步驟S32 ;S32 :根據(jù)步驟SI中計算的各處理節(jié)點的任務隊列長度LEN,選擇出待處理節(jié)點,并將待處理節(jié)點作為頭包列表存儲結(jié)構(gòu)中數(shù)據(jù)包的分派目標;S33:在流表存儲結(jié)構(gòu)中添加分派目標的數(shù)據(jù)包對應的包一流條目與待處理節(jié)點的映射關(guān)系,將分派目標的數(shù)據(jù)包分派到對應的待處理節(jié)點中,在頭包列表存儲結(jié)構(gòu)中刪除分派目標的數(shù)據(jù)包信息;并且在流表存儲結(jié)構(gòu)中只有該分派目標的數(shù)據(jù)包的流條目信息存在;S34 :根據(jù)流表存儲結(jié)構(gòu)中每個包一流條目跟待處理節(jié)點的映射關(guān)系,將流表存儲結(jié)構(gòu)中每個包一流條目中的數(shù)據(jù)包分派到對應的待處理節(jié)點中;并且只要該包一流條目信息存在,則該包一流條目下的數(shù)據(jù)包將始終由映射的待處理節(jié)點處理。步驟S4 :每個處理節(jié)點處理完一個數(shù)據(jù)包后,處理信息反饋模塊接收結(jié)束信號,并將該結(jié)束信號反饋至存儲模塊;存儲模塊依據(jù)包刪除條件刪除最早的一個數(shù)據(jù)包;如果該包一流條目下沒有未處理的數(shù)據(jù)包信息,則在流表存儲結(jié)構(gòu)中刪除該包一流條目;如果該包一流條目下存在有未處理的數(shù)據(jù)包信息,不做存儲處理。
所述包刪除條件是指存儲模塊根據(jù)結(jié)束信號表示的包一流信息的流標識,并提取出在流表存儲結(jié)構(gòu)中對應流標識的包一流條目,然后依據(jù)包一流條目刪除最早的一個數(shù)據(jù) 包信息。
權(quán)利要求
1.一種采用流表映射調(diào)度策略對多核網(wǎng)絡處理器下的流量進行調(diào)度的方法,其特征在于具體數(shù)據(jù)包調(diào)度步驟如下 步驟S1:調(diào)度計算模塊接收輸入的接收數(shù)據(jù)包信息PAK = {pak1; pak2,…,pakj ,并將該PAK發(fā)送至存儲模塊;計算各個處理節(jié)點FE = {fei, fe2,…,fec}所以對應任務隊列QE=Iqi, q2, ...,qFl 的長度 LEN = (Ien1, Ien2, ...,lenE}; 步驟S2 :存儲模塊中先構(gòu)建存儲結(jié)構(gòu),包括流表存儲結(jié)構(gòu)和頭包列表存儲結(jié)構(gòu);然后提取出接收到的數(shù)據(jù)包PAK= Ipak1, pak2,-,pakj中的頭部信息,然后判斷該數(shù)據(jù)包所屬的包一流信息FLW = {flWl, flw2,…,flwB}是否存在于流表存儲結(jié)構(gòu)中,根據(jù)判斷結(jié)果將數(shù)據(jù)包信息PAK存放到流表存儲結(jié)構(gòu)或頭包列表存儲結(jié)構(gòu)中; 步驟S3 :調(diào)度計算模塊向處理節(jié)點分派頭包列表中的數(shù)據(jù)包信息,選擇步驟SI中計算處理節(jié)點的任務隊列長度LEN最小的處理節(jié)點記為待處理節(jié)點,并以待處理節(jié)點作為分派目標,并在流表存儲結(jié)構(gòu)中添加該數(shù)據(jù)包信息對應的包一流條目與待處理節(jié)點的映射關(guān)系; 步驟S4 :每個處理節(jié)點處理完一個數(shù)據(jù)包后,處理信息反饋模塊接收結(jié)束信號,并將該結(jié)束信號反饋至存儲模塊;存儲模塊依據(jù)包刪除條件刪除最早的一個數(shù)據(jù)包;如果該包—流條目下沒有未處理的數(shù)據(jù)包信息,則在流表存儲結(jié)構(gòu)中刪除該包一流條目;如果該包—流條目下存在有未處理的數(shù)據(jù)包信息,不做存儲處理。
2.根據(jù)權(quán)利要求1所述的采用流表映射調(diào)度策略對多核網(wǎng)絡處理器下的流量進行調(diào)度的方法,其特征在于存儲模塊具體的存儲條件步驟如下 521:存儲模塊創(chuàng)建流表存儲結(jié)構(gòu)、包頭列表存儲結(jié)構(gòu); 522:存儲模塊接收調(diào)度計算模塊傳遞來的數(shù)據(jù)包信息PAK,然后提取PAK中的頭部四元組信息;所述四元組包括源IP地址、源端口、目的IP地址、目的端口 ;然后將該四元組信息作為該數(shù)據(jù)包信息PAK對應的包一流信息FLW的流標識; 523:判斷流表存儲結(jié)構(gòu)中是否存在步驟S22中生成的流標識的包一流信息FLW及包一流條目FE,如果流表存儲結(jié)構(gòu)中已經(jīng)存在該標識的包一流信息FLW及包一流條目FE,則轉(zhuǎn)入執(zhí)行步驟S24,如果流表存儲結(jié)構(gòu)中不存在該標識的包一流信息FLW及包一流條目,轉(zhuǎn)入執(zhí)行步驟S25 ; 524:在流表存儲結(jié)構(gòu)中將數(shù)據(jù)包信息PAK添加到對應標識的包一流條目FE下,存儲數(shù)據(jù)包信息完成; 525:在流表存儲結(jié)構(gòu)中建立該流標識的包一流條目,并保存該包一流信息; 526:在流表存儲結(jié)構(gòu)中添加數(shù)據(jù)包信息到對應包一流條目下,同時在頭包列表存儲結(jié)構(gòu)中添加該數(shù)據(jù)包信息,存儲數(shù)據(jù)包信息結(jié)束。
3.根據(jù)權(quán)利要求1所述的采用流表映射調(diào)度策略對多核網(wǎng)絡處理器下的流量進行調(diào)度的方法,其特征在于調(diào)度計算模塊具體的調(diào)度步驟如下 531:檢測頭包列表存儲結(jié)構(gòu)是否為空,如果頭包列表存儲結(jié)構(gòu)為空,則轉(zhuǎn)入步驟S34 ;如果頭包列表存儲結(jié)構(gòu)不為空,轉(zhuǎn)入步驟S32 ; 532:根據(jù)步驟SI中計算的各處理節(jié)點的任務隊列長度LEN,選擇出待處理節(jié)點,并將待處理節(jié)點作為頭包列表存儲結(jié)構(gòu)中數(shù)據(jù)包的分派目標; 533:在流表存儲結(jié)構(gòu)中添加分派目標的數(shù)據(jù)包對應的包一流條目與待處理節(jié)點的映射關(guān)系,將分派目標的數(shù)據(jù)包分派到對應的待處理節(jié)點中,在頭包列表存儲結(jié)構(gòu)中刪除分派目標的數(shù)據(jù)包信息;并且在流表存儲結(jié)構(gòu)中只有該分派目標的數(shù)據(jù)包的流條目信息存在; S34:根據(jù)流表存儲結(jié)構(gòu)中每個包一流條目跟待處理節(jié)點的映射關(guān)系,將流表存儲結(jié)構(gòu)中每個包一流條目中的數(shù)據(jù)包分派到對應的待處理節(jié)點中;并且只要該包一流條目信息存在,則該包一流條目下的數(shù)據(jù)包將始終由映射的待處理節(jié)點處理。
4.根據(jù)權(quán)利要求1所述的采用流表映射調(diào)度策略對多核網(wǎng)絡處理器下的流量進行調(diào)度的方法,其特征在于所述調(diào)度方法能夠在多核網(wǎng)絡處理器下實現(xiàn)流量的調(diào)度。
5.根據(jù)權(quán)利要求1所述的采用流表映射調(diào)度策略對多核網(wǎng)絡處理器下的流量進行調(diào)度的方法,其特征在于所述調(diào)度方法能夠滿足突發(fā)流量的調(diào)度要求。
6.根據(jù)權(quán)利要求1所述的采用流表映射調(diào)度策略對多核網(wǎng)絡處理器下的流量進行調(diào)度的方法,其特征在于存儲條件(A)首先檢測該數(shù)據(jù)包信息pakA所屬的流信息flwB ; (B)然后判斷flwB是否存在于包一流信息FLW= (Hw11Hw2, - ,flwB}中,若存在,則檢測該流信息flwB是否有其他數(shù)據(jù)包信息的存在,并執(zhí)行步驟(C);若不存在,則創(chuàng)建與數(shù)據(jù)包信息pakA對應的包一流條目fe。;然后將該數(shù)據(jù)包信息pakA存入到頭包列表存儲結(jié)構(gòu)及流表存儲結(jié)構(gòu)中; (C)如果沒有其他數(shù)據(jù)包信息存在,則將該數(shù)據(jù)包信息pakA存入到頭包列表存儲結(jié)構(gòu)及流表存儲結(jié)構(gòu)中;如果有其他數(shù)據(jù)包信息存在,則將該數(shù)據(jù)包信息存入流表存儲結(jié)構(gòu)中,并添加到與數(shù)據(jù)包信息pakA對應的包一流條目fe。中。
7.根據(jù)權(quán)利要求1所述的采用流表映射調(diào)度策略對多核網(wǎng)絡處理器下的流量進行調(diào)度的方法,其特征在于在同一存儲時刻Tt下頭包列表存儲結(jié)構(gòu)中只有一個數(shù)據(jù)包信息映射到同一個流條目中。
全文摘要
本發(fā)明公開了一種采用流表映射調(diào)度策略對多核網(wǎng)絡處理器下的流量進行調(diào)度的方法,該方法通過頭包列表存儲結(jié)構(gòu)與流表存儲結(jié)構(gòu)對突發(fā)流量進行分配制緩存,并建立流表與處理節(jié)點的映射關(guān)系。利用加權(quán)移動平均的方法統(tǒng)計處理節(jié)點任務隊列長度信息,實現(xiàn)映射關(guān)系的動態(tài)調(diào)整。通過映射關(guān)系調(diào)度流量中的包到相應的節(jié)點處理節(jié)點。本發(fā)明能夠有效的實現(xiàn)流量的調(diào)度,到達最優(yōu)的緩存利用率,實現(xiàn)流保序;同時,利用處理隊列平均長度保障了較好的負載均衡。
文檔編號H04L12/883GK103023800SQ201210498920
公開日2013年4月3日 申請日期2012年11月29日 優(yōu)先權(quán)日2012年11月29日
發(fā)明者李云春, 單聯(lián)強, 李巍, 喬鑫鑫 申請人:北京航空航天大學