專利名稱:多下一跳轉(zhuǎn)發(fā)路由器中基于流保續(xù)的數(shù)據(jù)流均衡處理的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種多下一跳轉(zhuǎn)發(fā)路由器中基于流保續(xù)的數(shù)據(jù)流均衡處理的方法。涉及專利分類號中H04電通信技術(shù)H04L數(shù)字信息的傳輸,例如電報通信H04L12/00數(shù)據(jù)交換網(wǎng)絡(luò)H04L12/54存儲轉(zhuǎn)發(fā)交換系統(tǒng)H04L12/56分組交換系統(tǒng)。
背景技術(shù):
伴隨著互聯(lián)網(wǎng)規(guī)模的飛速發(fā)展,各種新型網(wǎng)絡(luò)業(yè)務(wù)不斷涌現(xiàn),網(wǎng)絡(luò)用戶數(shù)目不斷攀升。與此同時,Everything over IP的思想推動了各種異構(gòu)網(wǎng)絡(luò)向互聯(lián)網(wǎng)的融合,互聯(lián)網(wǎng)已經(jīng)成為各種通信基礎(chǔ)設(shè)施的同一平臺,承載業(yè)務(wù)越來越多。新興業(yè)務(wù)迅猛增長導(dǎo)致了對網(wǎng)絡(luò)帶寬的需求越來越大,但僅僅依靠網(wǎng)絡(luò)基礎(chǔ)設(shè)施的增加無法從根本上解決網(wǎng)絡(luò)資源需求的問題。另一方面網(wǎng)絡(luò)資源利用率在空間分布上的不均衡造成全網(wǎng)范圍內(nèi)的貸款使用效率更加抵消。在局部網(wǎng)絡(luò)資源鏈路成為人點鏈路的同時,還有大量鏈路產(chǎn)期處于空閑狀態(tài)。通過分析發(fā)現(xiàn)單下一跳最有路徑數(shù)據(jù)傳輸時當(dāng)前網(wǎng)絡(luò)資源利用不均衡、產(chǎn)生局部擁塞的重要根源。
多路徑并行數(shù)據(jù)傳輸允許多條路徑參與數(shù)據(jù)的傳送,有效聚合了網(wǎng)絡(luò)帶寬,最終使得網(wǎng)絡(luò)中各鏈路資源利用率趨于均衡,減少網(wǎng)絡(luò)擁塞放生的概率,提高網(wǎng)絡(luò)的安全性和可用性。當(dāng)前多路徑路由算法按其協(xié)議類型主要分為兩類一、基于鏈路狀態(tài)ECMP算法將報文路由到想的代價的多條路徑上,MPA算法進(jìn)找到滿足條件的五環(huán)路由的一個子集,MPDA/QMPDA考慮了拓?fù)渥兓玩溌饭收系那闆r二、基于距離矢量的DSPA用于減小傳輸時延,CRA用于最大化吞吐量,MDVA使用了DBF算法,MPATH使用了距離響亮算法并結(jié)合倒數(shù)第二條確認(rèn)機(jī)制。上述提到的多路徑路由是從端到端的數(shù)據(jù)傳輸角度來講的,端到端之間建立了多條路由;而多下一跳路由是從單個路由節(jié)點數(shù)據(jù)傳輸來講的,每個路由節(jié)點通過多個下一跳路徑傳輸數(shù)據(jù)。
發(fā)明內(nèi)容
針對以上問題的提出,本發(fā)明提出了一種多下一跳轉(zhuǎn)發(fā)路由器中基于流保序的數(shù)據(jù)流均衡處理的方法,具有如下步驟S100.獲取業(yè)務(wù)流數(shù)據(jù)報文,進(jìn)行TCP流和UDP流分類;在SDRAM中建立業(yè)務(wù)流流
管理表項;S200.對TCP流進(jìn)行逐包解析,得出每個包的至少包含五元組和TCP標(biāo)志的信息;記錄該包的到達(dá)時間;S300.對所述TCP流的報文數(shù)據(jù)的五元組擴(kuò)展成128位帶入編碼器進(jìn)行Hash計算,得出當(dāng)前TCP流的流ID ;S400.根據(jù)步驟S300中得出的當(dāng)前業(yè)務(wù)流的流ID,在流管理表中進(jìn)行匹配查找判定當(dāng)前流ID是否有效;S500.若當(dāng)前流ID有效,則進(jìn)一步比對當(dāng)前業(yè)務(wù)流的五元組信息和業(yè)務(wù)流管理表項存儲的業(yè)務(wù)信息S500a.若相等,表示命中,將業(yè)務(wù)流按業(yè)務(wù)流管理表項中的路徑信息轉(zhuǎn)發(fā)輸出;S500b.若不相等,表示未命中,按下一流號在SDRAM中繼續(xù)尋址,直到五元組信息和業(yè)務(wù)流管理表項存儲的業(yè)務(wù)信息一致為止;S600.若當(dāng)前流號無效,則選擇當(dāng)前負(fù)載最輕的鏈路輸出當(dāng)前業(yè)務(wù)流。所述流管理表項中至少包含流五元組、路徑、。下一流號地址和有效位四個屬性空間,對經(jīng)過的報文數(shù)據(jù)進(jìn)行上述四個屬性的記錄。所述流管理表項中存儲的每一條表項均有一個生存周期當(dāng)任意表項存儲時間達(dá)到生存周期時,將該表項有效位清零。
·
所述步驟S300具體算法如下已知序列P的CRC32哈希運(yùn)算的結(jié)果為A[31:0],8比特序列Q([q7,q6, ...qO])的CRC32哈希運(yùn)算的結(jié)果為Y[31:0],而序列A[31:24]的CRC32哈希運(yùn)算的結(jié)果為X[31:0];則拓展序列{P,Q}的 CRC32 哈希運(yùn)算的結(jié)果為{Y[31:24]+X[31:24]+A[23:16],Y[23:16]+X[23:16]+A[15:8], Y[15:8]+X[15:8]+A[7:0], Y[7:0]+X[7:0]};上式中的符號“ + ”表示模2運(yùn)算,符號{,}表示將兩個序列鏈接起來;進(jìn)行匹配查找。所述步驟S600中,路徑的選擇計算由FPGA內(nèi)的distributed ram承擔(dān)。所述步驟S600還包括S601.將TCP報文數(shù)據(jù)流表項寫入當(dāng)前SDRAM的位置,將其有效位置為O。由于采用了上述技術(shù)方案,本發(fā)明所公開的多下一跳轉(zhuǎn)發(fā)路由器中基于流保續(xù)的數(shù)據(jù)流均衡處理的方法,為保證報文的順序到達(dá),采用了基于流的調(diào)度機(jī)制,為了快速查找流,采用hash存儲,為減少運(yùn)算時間,充分利用FPGA,采用了 128位并行CRC32級聯(lián)結(jié)構(gòu)的hash運(yùn)算。
為了更清楚的說明本發(fā)明的實施例或現(xiàn)有技術(shù)的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖做一簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實施提供系統(tǒng)模塊圖圖2為本發(fā)明實施例提供的一種基于流保序的多下一均路由均衡處理流程圖;圖3為本發(fā)明實施例提供的SDAM表項圖;圖4為本發(fā)明實施例提供的128位并行CRC32級聯(lián)結(jié)構(gòu)編碼器圖;圖5為本發(fā)明實施例提供的端口 /鏈路負(fù)載統(tǒng)計結(jié)構(gòu);
具體實施例方式為使本發(fā)明的實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚完整的描述如圖1-圖5所示一種多下一跳轉(zhuǎn)發(fā)路由器中基于流保序的數(shù)據(jù)流均衡處理的方法,具有如下步驟S100.獲取業(yè)務(wù)流數(shù)據(jù)報文,進(jìn)行TCP流和UDP流分類;在DDRII SDRAM中建立業(yè)務(wù)流管理表項;所述業(yè)務(wù)流管理表項中至少包含流五元組、路徑、。下一流號地址和有效位四個屬性空間,對經(jīng)過的報文數(shù)據(jù)進(jìn)行上述四個屬性的記錄。進(jìn)一步的,所述流管理表項中存儲的每一條表項均有一個生存周期當(dāng)任意表項存儲時間達(dá)到生存周期時,將該表項有效位清零。S200.對TCP流進(jìn)行逐包解析,得出每個包的至少包含五元組和TCP標(biāo)志;記錄該包的到達(dá)時間。S300.對所述TCP流的報文數(shù)據(jù)的五元組擴(kuò)展成128位帶入編碼器進(jìn)行Hash計算,得出流ID。對于五元組信息進(jìn)行128位CRC計算,128位CRC計算可在8位并行CRC32編碼器基礎(chǔ)上擴(kuò)展,得到報文流ID,hash運(yùn)算基于FPGA來實現(xiàn),F(xiàn)PGA采用的是Xilinx[104]XC5VLX110 ;擴(kuò)展算法如下已知序列P的CRC32哈希運(yùn)算的結(jié)果為A[31:0],8比特序列Q([q7,q6,…qO])的CRC32哈希運(yùn)算的結(jié)果為Y [31:0],而序列A[31:24]的CRC32哈希運(yùn)算的結(jié)果為X[31:0]。那么拓展序列{P,Q}的CRC32哈希運(yùn)算的結(jié)果為{Y[31:24]+X[31:24]+A[23:16], Y[23:16]+X[23:16]+A[15:8], Y[15:8]+X[15:8]+A[7:0],Y[7:0]+X[7:0]}。上式中的符號“ + ”表示模2運(yùn)算,符號{,}表示將兩個序列鏈接起來;進(jìn)行匹配查找。 S400.根據(jù)步驟S300中得出的當(dāng)前業(yè)務(wù)流的流ID,在流管理表中進(jìn)行匹配查找找到DDRII SDRAM中存儲的流表項,如圖2所示,在DDRII SDRAM芯片中,DDRII選用的是MT16HTF51264HZ,容量為 4GB。S500.若當(dāng)前流ID有效,查找的過程中,先看所述業(yè)務(wù)流表項的有效位指示,若為“1”,表示有效。然后進(jìn)一步比對當(dāng)前業(yè)務(wù)流的五元組信息和業(yè)務(wù)流管理表項存儲的業(yè)務(wù)信肩、OS500a.若相等,表示命中,將業(yè)務(wù)流按業(yè)務(wù)流管理表項中的路徑信息轉(zhuǎn)發(fā)輸出;S500b.若不相等,表示未命中,表明哈希沖突存在,按下一業(yè)務(wù)流流號在SDRAM(SP業(yè)務(wù)流表項中)中繼續(xù)尋址,直到五元組信息和業(yè)務(wù)流管理表項存儲的業(yè)務(wù)信息一致為止。S600.若當(dāng)前流號無效,則選擇當(dāng)前負(fù)載最輕的鏈路輸出當(dāng)前業(yè)務(wù)流。將報文數(shù)據(jù)輸入端口 /鏈路負(fù)載統(tǒng)計結(jié)構(gòu)中,輸出結(jié)果為最輕負(fù)載鏈路路徑。統(tǒng)計結(jié)構(gòu)是利用FPGA內(nèi)的distributed ram資源設(shè)計的下一跳端口負(fù)載統(tǒng)計結(jié)構(gòu)。和FPGA內(nèi)的Slice資源和Block RAM資源的高利用率相比,distributed ram資源經(jīng)常處于閑置狀態(tài),往往被設(shè)計人員所忽視。通過這樣的統(tǒng)計結(jié)構(gòu)設(shè)計,可以平衡FPGA片內(nèi)的資源使用,為輸出端口的判決提供幫助。統(tǒng)計結(jié)構(gòu)如圖4所示。步驟S600還包括S601.將TCP報文數(shù)據(jù)流表項寫入當(dāng)前SDRAM的位置,將其有效位置為O。以上所述,僅為本發(fā)明較佳的具體實施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),根據(jù)本發(fā)明的技術(shù)方案及其 發(fā)明構(gòu)思加以等同替換或改變,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種多下一跳轉(zhuǎn)發(fā)路由器中基于流保序的數(shù)據(jù)流均衡處理的方法,具有如下步驟 S100.獲取業(yè)務(wù)流數(shù)據(jù)報文,進(jìn)行TCP流和UDP流分類;在SDRAM中建立業(yè)務(wù)流流管理表項; S200.對TCP流進(jìn)行逐包解析,得出每個包的至少包含五元組和TCP標(biāo)志的信息;記錄該包的到達(dá)時間; S300.對所述TCP流的報文數(shù)據(jù)的五元組擴(kuò)展成128位帶入編碼器進(jìn)行Hash計算,得出當(dāng)前TCP流的流ID ; S400.根據(jù)步驟S300中得出的當(dāng)前業(yè)務(wù)流的流ID,在流管理表中進(jìn)行匹配查找判定當(dāng)前流ID是否有效; S500.若當(dāng)前流ID有效,則進(jìn)一步比對當(dāng)前業(yè)務(wù)流的五元組信息和業(yè)務(wù)流管理表項存儲的業(yè)務(wù)信息 S500a.若相等,表示命中,將業(yè)務(wù)流按業(yè)務(wù)流管理表項中的路徑信息轉(zhuǎn)發(fā)輸出; S500b.若不相等,表示未命中,按下一流號在SDRAM中繼續(xù)尋址,直到五元組信息和業(yè)務(wù)流管理表項存儲的業(yè)務(wù)信息一致為止; S600.若當(dāng)前流號無效,則選擇當(dāng)前負(fù)載最輕的鏈路輸出當(dāng)前業(yè)務(wù)流。
2.根據(jù)權(quán)利要求1所述的多下一跳轉(zhuǎn)發(fā)路由器中基于流保序的數(shù)據(jù)流均衡處理的方法,其特征還在于所述流管理表項中至少包含流五元組、路徑、。下一流號地址和有效位四個屬性空間,對經(jīng)過的報文數(shù)據(jù)進(jìn)行上述四個屬性的記錄。
3.根據(jù)權(quán)利要求2所述的多下一跳轉(zhuǎn)發(fā)路由器中基于流保序的數(shù)據(jù)流均衡處理的方法,其特征還在于所述流管理表項中存儲的每一條表項均有一個生存周期當(dāng)任意表項存儲時間達(dá)到生存周期時,將該表項有效位清零。
4.根據(jù)權(quán)利要求1所述的多下一跳轉(zhuǎn)發(fā)路由器中基于流保序的數(shù)據(jù)流均衡處理的方法,其特征還在于所述步驟S300具體算法如下 已知序列P的CRC32哈希運(yùn)算的結(jié)果為A [31:0],8比特序列Q ([q7, q6, ...qO])的CRC32哈希運(yùn)算的結(jié)果為Y[31:0],而序列A[31:24]的CRC32哈希運(yùn)算的結(jié)果為X[31:0]; 則拓展序列{P, Q}的CRC32哈希運(yùn)算的結(jié)果為{Y[31:24]+X[31:24]+A[23:16],Y[23:16]+X[23:16]+A[15:8], Y[15:8]+X[15:8]+A[7:0], Y[7:0]+X[7:0]}; 上式中的符號“ + ”表示模2運(yùn)算,符號{,}表示將兩個序列鏈接起來;進(jìn)行匹配查找。
5.根據(jù)權(quán)利要求1所述的多下一跳轉(zhuǎn)發(fā)路由器中基于流保序的數(shù)據(jù)流均衡處理的方法,其特征還在于所述步驟S600中,路徑的選擇計算由FPGA內(nèi)的distributed ram承擔(dān)。
6.根據(jù)權(quán)利要求1所述的多下一跳轉(zhuǎn)發(fā)路由器中基于流保續(xù)的數(shù)據(jù)流均衡處理的方法,其特征還在于所述步驟S600還包括S601.將TCP報文數(shù)據(jù)流表項寫入當(dāng)前SDRAM的位置,將其有效位置為O。
全文摘要
本發(fā)明公開了一種多下一跳轉(zhuǎn)發(fā)路由器中基于流保序的數(shù)據(jù)流均衡處理的方法,具有如下步驟S100.獲取業(yè)務(wù)流數(shù)據(jù)報文,進(jìn)行TCP流和UDP流分類;在SDRAM中建立業(yè)務(wù)流流管理表項;S200.對TCP流進(jìn)行逐包解析,得出每個包的至少包含五元組和TCP標(biāo)志的信息;記錄該包的到達(dá)時間;S300.對所述TCP流的報文數(shù)據(jù)的五元組擴(kuò)展成128位帶入編碼器進(jìn)行Hash計算,得出流ID;S400.根據(jù)步驟S300中得出的當(dāng)前業(yè)務(wù)流的流ID,在流管理表中進(jìn)行匹配查找判定當(dāng)前流ID是否有效;S500.若當(dāng)前流ID有效,則進(jìn)一步比對當(dāng)前業(yè)務(wù)流的五元組信息和業(yè)務(wù)流管理表項存儲的業(yè)務(wù)信息S500a.若相等,表示命中,將業(yè)務(wù)流按業(yè)務(wù)流管理表項中的路徑信息轉(zhuǎn)發(fā)輸出。
文檔編號H04L12/771GK103067294SQ20121059357
公開日2013年4月24日 申請日期2012年12月30日 優(yōu)先權(quán)日2012年12月30日
發(fā)明者卜佑軍, 楊凱, 王雨, 于婧, 黃慧群, 王軍 申請人:大連環(huán)宇移動科技有限公司, 中國人民解放軍信息工程大學(xué)