專利名稱:一種基于網(wǎng)絡處理器的網(wǎng)絡編碼路由器的制作方法
技術領域:
-
本發(fā)明涉及一種路由器,尤其涉及一種基于網(wǎng)絡處理器的網(wǎng)絡編碼路 由器。
背景技術:
當前網(wǎng)絡中的組播應用變得日益流行且不可或缺,但主要是面向單播
業(yè)務的傳統(tǒng)網(wǎng)絡,目前還無法對組播提供良好的支持。網(wǎng)絡編碼(network coding)為組播網(wǎng)絡的設計和應用提供了一種有效的途徑。在由各種端節(jié)點 所構建的應用層網(wǎng)絡上采用網(wǎng)絡編碼,可以利用端節(jié)點自身的存儲和計算 能力進行網(wǎng)絡編碼和轉(zhuǎn)發(fā),不需要對底層的網(wǎng)絡和設備做任何修改,此種 方案具有切實可行的優(yōu)點。但是這種方案存在一些明顯的缺點不能取得 很高的網(wǎng)絡容量;端節(jié)點通常不能清楚地知道底層網(wǎng)絡拓撲的特性任何
一條端到端的連接通??缭蕉嗵锢礞溄?,而不同的端到端連接也可能共 享同一條物理鏈接。另外,這種方案還存在端節(jié)點性能無法保障和編解碼 累計開銷大等問題。
在路由器所組成的網(wǎng)絡上實行網(wǎng)絡編碼,與在應用層上的網(wǎng)絡編碼不 同,它可以使網(wǎng)絡吞吐量更加逼近理論上界,還可以提升端到端的性能。 它采用在組播網(wǎng)絡上允許路由器對從不同輸入鏈路上接收到的幾個IP報文
(packet)的載荷進行編碼、封裝,然后把新產(chǎn)生的報文向特定的下行鏈 路發(fā)送出去。這樣可以進一步提升網(wǎng)絡吞吐量以及端到端的性能,還可以獲得其他有益效果,如網(wǎng)絡編碼算法可以集中在路由器上優(yōu)化,而不是分 散在端節(jié)點上優(yōu)化;可以很大地簡化底層分發(fā)拓撲,減少端到端的實際跳 數(shù),進而減少編碼次數(shù)和端到端延遲;避免了由于終端主機編碼相關性大 而引起的延遲。另外,如果從接入路由器到它所管轄的各個終端節(jié)點之間 再采用IP組播,還可以繼續(xù)節(jié)省接入帶寬和接入時間,網(wǎng)絡編碼不需要在 端節(jié)點進行,從而減小了端節(jié)點功能的復雜度。
但這種方案需要對當前現(xiàn)有的組網(wǎng)方式、路由協(xié)議、組管理、路由器 體系結構等進行較大的改變,這些都是很大的挑戰(zhàn)。對于組網(wǎng),為了滿足 網(wǎng)絡編碼的需要,在網(wǎng)絡規(guī)劃時就要考慮每個路由器的直接連接的相鄰路 由器的數(shù)量,以保證在信源與信宿之間存在著多條路徑。
基于當前已有應用中具有網(wǎng)絡編碼功能的路由器(如圖1中標識2所 示)及其數(shù)據(jù)分發(fā)模型(如圖l所示),如何能盡可能發(fā)揮網(wǎng)絡編碼在網(wǎng)絡 吞吐率提升方面的優(yōu)勢,以及如何盡可能地減少應用中在編解碼開銷上的 影響,采用什么樣的體系結構,如何設計網(wǎng)絡編碼流程,為本發(fā)明所要解 決的網(wǎng)絡編碼技術的問題。
發(fā)明內(nèi)容
本發(fā)明目的提供一種基于網(wǎng)絡處理器的網(wǎng)絡編碼路由器,采用單個或 多個網(wǎng)絡處理器(networkprocessor,簡稱NP)實現(xiàn)網(wǎng)絡編碼路由器結構設 計及編碼流程。能有效提升網(wǎng)絡數(shù)據(jù)吞吐量,節(jié)省接入帶寬和接入時間, 節(jié)約應用中硬件資源。
本發(fā)明基于英特爾公司的IXP2400網(wǎng)絡處理器(Internet eXchangeProcessor2400)實現(xiàn)的,包含采用單個或多個IXP2400網(wǎng)絡處理器的實現(xiàn) 方式?;趩蝹€IXP2400網(wǎng)絡處理器的路由器,包含以下內(nèi)容
IXP2400網(wǎng)絡處理器,包含XScale核、8個微引擎(ME, Microengine)、 用于連接外部設備的媒體或交換結構訪問接口 (Media or Switch Fabric Interface, MSF)單元和連接各種存儲器和總線的接口 I/O單元,用于對 數(shù)據(jù)包進行轉(zhuǎn)發(fā),實現(xiàn)路由功能。
SRAM (Static Random Access Memory),用于存放對數(shù)據(jù)包包頭進行 處理所需的重要信息和數(shù)據(jù)包的隊列描述等內(nèi)容。
DRAM (Dynamic Random-Access Memory),用于存方文需要處理和轉(zhuǎn)發(fā) 的數(shù)據(jù)包、路由表等大型數(shù)據(jù)結構。
協(xié)處理器,用于進行協(xié)同網(wǎng)絡處理器進行處理操作;它主要用于為網(wǎng) 絡處理器進行哈希和加密計算。
閃存,用于存放網(wǎng)絡處理器啟動時的初始化文件。包含3個文件一 個文件用于在IXP2400網(wǎng)絡處理器啟動時將加載到XScale上的壓縮的 VxWorks內(nèi)核二進制文件; 一個文件用于在IXP2400網(wǎng)絡處理器啟動時將 加載到各個微引擎上的指令二進制文件; 一個文件用于在IXP2400網(wǎng)絡處 理器啟動時設置各個端口的IP地址以及訪問控制等的配置文本文件。
輸入輸出接口及總線,用于外部模塊或設備與網(wǎng)絡處理器的連接。其 中,MSF用于控制對外部設備的訪問。MSF接口上連接了高速接收總線、高 速發(fā)送總線。這兩個總線分別用于從外部模塊或設備上接收、發(fā)送報文。 PCI (Peripheral Component Interconnect)總線允許網(wǎng)絡處理器連接各種遵守PCI接口標準的外圍設備。PCI總線還可以連接通用處理器(CPU)。 上述IXP2400網(wǎng)絡處理器,其XScale核執(zhí)行在慢速的控制管理層面, 用于執(zhí)行路由協(xié)議、網(wǎng)絡管理、異常處理、測量統(tǒng)計等任務;各個微引擎 執(zhí)行在快速報文通道的數(shù)據(jù)層面,用于執(zhí)行報文的識別、分類、路由表査 找、轉(zhuǎn)發(fā)等任務。各個微引擎分別承擔其中的不同子任務,并按照流水線 的方式組織在一起。8個微引擎分為兩組0組與1組。O組的微引擎分別 編號為0:0、 0:1、 0:2、 0:3。 1組的微引擎分別編號為1:0、 1:1、 1:2、 1:3。 每個微引擎上又可以運行8個線程,0:0負責從外部媒介接收物理層幀;0:1、 0:2或1:3負責分析IP報文的頭部并進行處理;0:3負責報文隊列的管理; l:O負責報文的調(diào)度;1:1、 l:2負責把物理層幀發(fā)送到外部媒介。
為支持網(wǎng)絡編碼,在負責處理IP報文的微引擎上增加網(wǎng)絡編碼模塊, 其包含代(genemtion)查找子模塊、編解碼子模塊和轉(zhuǎn)發(fā)子模塊
代査找子模塊,用于根據(jù)報文頭部的4個關鍵字段,査找報文對應的 代及其緩存;
編解碼子模塊,用于為每個代計算它相應的緩存中各個系數(shù)矢量所形 成的矩陣是否達到滿秩,如果達到滿秩,則執(zhí)行編解碼,產(chǎn)生新的數(shù)據(jù)塊, 然后用網(wǎng)絡編碼協(xié)議(Network coding protocol,簡稱NCP)與IP協(xié)議進行 封裝,生成新的IP報文,最后釋放該緩存,放入空閑鏈表中;
轉(zhuǎn)代發(fā)子模塊,用于根據(jù)網(wǎng)絡編碼專用的一張轉(zhuǎn)發(fā)表,查找出由編碼 所產(chǎn)生的新報文的輸出端口 ,并由此把這些新報文發(fā)送出去。
在XScale核上增加路由維護子模塊、組管理子模塊、緩存管理子模塊及性能預測子模塊
路由維護子模塊,用于獲取物理網(wǎng)絡拓撲信息,為每個組播連接建立 傳輸路徑,并相應在內(nèi)存中維護一張轉(zhuǎn)發(fā)表,用于決定由編碼所產(chǎn)生的新 報文的輸出端口;
組管理子模塊,用于維護組的新建和刪除、組成員的加入和退出等狀 態(tài)信息;
緩存管理子模塊,用于處理在緩存中報文停留時間過久,剩余緩存空 間不足等異常情況;
性能預測模塊,用于判斷一個報文是否有網(wǎng)絡編碼的必要性。
在上述基于單個IXP2400網(wǎng)絡處理器的路由器的發(fā)明內(nèi)容中,網(wǎng)絡編 碼協(xié)議采用在原有的IP協(xié)議頭中新增一個協(xié)議頭(NC頭),用于保存網(wǎng)絡 編碼所需的信息,其中包括全局編碼系數(shù)矢量(Global encoding coefficient vector)。 NC協(xié)議頭插在IP協(xié)議頭和傳輸層協(xié)議頭之間。
上述路由器的實現(xiàn)中,其IP有效負荷參與編碼, 一個IP報文的載荷 先被分裂為若干個等字節(jié)長度的片段,然后對于每一個片段,用NC協(xié)議頭 和IP協(xié)議頭部進行封裝,其產(chǎn)生的報文從外部看與其它普通的IP報文沒 有顯著差異。那個原始的IP報文就被稱為對應于一代,由那些片段所生成 的報文就被稱為屬于這一代,片段的數(shù)目稱為這一代的大小。只有從同一 代衍生出來的片段才可以相互編碼。
本發(fā)明還提供一種基于上述單個IXP2400網(wǎng)絡處理器的路由器,其編 碼過程,包含以下實現(xiàn)步驟-(1) 微引擎0:0從外部媒介接收物理層幀,并把這個物理層幀放入一個接收隊列等待處理IP報文的微引擎將其取走;
(2) 微引擎(0:1、 0:2或1:3)首先從接收隊列中取出一個物理層幀,如果接收隊列是空的,則微引擎繼續(xù)等待,直到有一個物理層幀被接收到;
(3) 微引擎刪除物理層的幀頭,只留下IP頭部和載荷;
(4) 從IP頭部中提取第3層協(xié)議字段,判斷是否屬于網(wǎng)絡編碼協(xié)議,如果是,則執(zhí)行網(wǎng)絡編碼的處理,進入網(wǎng)絡編碼過程;否則作為普通的IP報文進行處理;
(5) 網(wǎng)絡編碼開始,先從IP頭部中提取源IP地址、目的IP地址、第4層協(xié)議、代的編號四個字段;
(6) 以這4個字段作為關鍵詞,判斷是否已經(jīng)存在相應代的緩存;
(7) 如果相應代的緩存存在,則判斷這個緩存中各個塊的編碼系數(shù)矢量所組成的矩陣是否達到了滿秩。如果滿秩,則執(zhí)行編碼操作;如果不滿秩,則只進行存儲,等待下一塊的到達,直到緩存中達到滿秩為止。如果相應的代的緩存不存在,則要建立新的緩存。如果剩余空間不足而無法建立新的緩存,則不進行網(wǎng)絡編碼。
(8) 完成編碼之后,根據(jù)報文頭部的關鍵字段査找相關的轉(zhuǎn)發(fā)表,確定由編碼所產(chǎn)生的新報文的輸出端口。
(9) 微引擎(0:1、 0:2或1:3)把編碼后的載荷封裝為新的IP報文,并把這個IP報文的內(nèi)存地址以及其它元信息,放到對應端口的發(fā)送隊列中,等待發(fā)送微引擎(1:1或1:2)把報文取走,沿著組播路徑的指定的下行鏈路發(fā)送出去。
在上述的步驟中,需盡量減少對于IXP2400上的各種內(nèi)存的訪問次數(shù),包括片上內(nèi)存與片外內(nèi)存,以降低其消耗時間。另外,在編解碼算法中涉及到的伽羅瓦域(Galois field)上兩個字節(jié)相乘的運算,可以通過一個字節(jié)乘法表來快速地獲取乘積。
本發(fā)明還提供一種基于多個IXP2400網(wǎng)絡處理器的路由器,包含以下內(nèi)容
一個交換矩陣(Switch fabric),連接主CPU、備CPU及所有IXP2400,用于在不同IXP2400之間或者主、備CPU與IXP2400之間進行報文的交換;
一個主控處理器(主CPU),用于控制管理層面任務;
一個備用處理器(備CPU),用于在主CPU發(fā)生故障時,接替主CPU工作,以維持整個路由器正常的工作;
多個IXP2400網(wǎng)絡處理器,每個IXP2400負責某一部分端口上報文的接收與發(fā)送,所有IXP都處于數(shù)據(jù)平面。
本發(fā)明中,為支持網(wǎng)絡編碼,在交換矩陣上還連接了一個專用的IXP2400網(wǎng)絡處理器,專門用于網(wǎng)絡編碼協(xié)議的處理。專用于網(wǎng)絡編碼的IXP2400,其微引擎包括以下子模塊代查找子模塊、載荷編解碼子模塊、轉(zhuǎn)發(fā)表査找子模塊及報文轉(zhuǎn)發(fā)子模塊。其XScale核包括了以下子模塊網(wǎng)絡編碼的路由維護子模塊、組管理子模塊、緩存管理子模塊、性能預測子模塊。
基于上述多個IXP2400網(wǎng)絡處理器的路由器內(nèi)容,本發(fā)明還提供一種基于多個IXP2400的路由器網(wǎng)絡編碼的實現(xiàn)方法,包含以下步驟-
(1) 從輸入端接口接收報文,并存放于IXP2400的內(nèi)存中;
(2) 根據(jù)IP頭部的第3層協(xié)議字段確定這個報文中是否包含網(wǎng)絡編碼協(xié)議;
(3) 如果不包含網(wǎng)絡編碼協(xié)議,那么按傳統(tǒng)的"存儲-轉(zhuǎn)發(fā)"方式對報文進行處理;如果包含網(wǎng)絡編碼協(xié)議,那么把這個報文發(fā)送到專用于網(wǎng)絡編碼的IXP2400上,由此IXP2400進行專門的處理;
(4) 判斷專用IXP2400上與代相應的緩存是否存在,如果不存在為該代建立新的緩存,并在該代相應的緩存中存入新到達的塊;如果與代相應的緩存存在,在該代相應的緩存中存入新到達的塊;
(5) 判斷該緩存中是否達到滿秩,如果不滿秩則只進行存儲,等待下一塊的到達,直到緩存中達到滿秩為止;如果達到滿秩,則進行網(wǎng)絡編碼;
(6) 網(wǎng)絡編碼完成后,根據(jù)網(wǎng)絡編碼專用的轉(zhuǎn)發(fā)表,決定編碼后新產(chǎn)生的報文要被輸出到其它哪個IXP2400的哪個端口上;
(7) 通過交換矩陣將該報文傳送到指定的IXP2400,最后通過該指定IXP2400的端口,把報文輸出到外部的傳輸鏈路上。
本發(fā)明基于上述IXP2400網(wǎng)絡處理器的路由器及其編碼的實現(xiàn)過程中,在網(wǎng)絡編碼的緩存上,當報文在緩存中停留過久,超過指定的時間,且其它報文仍然沒有到達時,應立刻將這些停留超時的報文發(fā)送出去,避免因過長的報文延遲給網(wǎng)絡編碼造成時間較長的不利影響。另外,當一個代的報文到達路由器時,如果這個路由器上所有網(wǎng)絡編碼專用的緩存全部被其它代的報文占用,新到達的報文將無法獲取緩存,則可以選擇將那些占用緩存時間最長的代的報文立刻發(fā)出去,而不再等待編碼,釋放相應的緩存;或者將新到達的代的報文立刻發(fā)出去,而不再申請網(wǎng)絡編碼專用的緩存,以避免緩存時間較長給網(wǎng)絡編碼帶來的影響。
-
圖l支持網(wǎng)絡編碼的路由器組網(wǎng)示意圖2路由器上報文的分段與重封裝、編碼、解碼示意圖3基于單個IXP2400網(wǎng)絡處理器的路由器的結構圖4基于單個IXP2400網(wǎng)絡處理器的路由器編碼過程示意圖5基于多個IXP2400網(wǎng)絡處理器的路由器的結構圖6基于多個IXP2400網(wǎng)絡處理器的路由器編碼過程示意圖中標識
l為一個支持網(wǎng)絡編碼的自治網(wǎng)絡;2為一個支持網(wǎng)絡編碼的路由器;3為一個信源主機發(fā)出的原始報文p; 4為路由器上的分段與重封裝操作;5為報文P分段與重封裝后產(chǎn)生的一個新報文P3; 6為路由器上的編碼操作;
7為報文pl、 p2、 p3編碼后產(chǎn)生的一個新報文p7; 8為路由器上的解碼操作;9為XScale核;10為微引擎;11為IXP2400處理器;12為報文接收微引擎;13為IP報文處理微引擎;14為網(wǎng)絡編碼的緩存區(qū);15為隊列管理微引擎;16為隊列調(diào)度微引擎;17為報文發(fā)送微引擎;18為主CPU; 19為備CPU; 20為專用于網(wǎng)絡編碼的網(wǎng)絡處理器;21為交換矩陣;22為非專用的網(wǎng)絡處理器與I/O;具體實施方案
基于本發(fā)明提出的單個IXP2400網(wǎng)絡處理器的路由器及其網(wǎng)絡編碼的實現(xiàn)方法,具體的實施方案如下
考慮一個單源多宿的組播網(wǎng)絡,它是由信源端節(jié)點、信宿端節(jié)點、支持網(wǎng)絡編碼的路由器所構成,進行分割和編碼。數(shù)據(jù)報的不同片段被轉(zhuǎn)發(fā)到不同的網(wǎng)絡分支,并在之后經(jīng)過的路由器上進行編碼或者解碼。最終信宿主機將收到這些數(shù)據(jù)報。
下面的例子進一步說明了本發(fā)明中的基于網(wǎng)絡編碼的報文傳輸?shù)倪^程。信源端節(jié)點向信宿端節(jié)點發(fā)送一個IP報文P (圖2中標識3),傳輸過程分為如下3個階段(如圖2所示)
(1)分割與封裝(圖2中標識4)
首先,信源把報文p發(fā)送到與之直接相連的路由器,在這個路由器上,
把報文p的載荷分割為幾個字節(jié)數(shù)相等的片段(現(xiàn)假設等分為3段),然后用網(wǎng)絡編碼協(xié)議把這3段分別進行封裝,接著再用IP協(xié)議進行封裝,結果產(chǎn)生3個新的IP報文pl、 p2、 p3 (圖2中標識5),從外部看來它們與別的普通IP報文沒有顯著區(qū)別。如果在組播連接上信源與信宿之間存在著多條不相交的傳輸路徑,那么就把這些報文pl、 P2、 p3分別沿著3條不同的傳輸路徑向信宿方向發(fā)送。這個階段稱為分割與封裝(SE, Segmentation &Encapsulation),執(zhí)行這個功能的路由器稱為SE路由器。
SE路由器決定來自信源的IP報文p是否需要編碼。滿足以下條件的IP報文才需要編碼第一,IP報文是組播的;第二, IP報文的載荷是足夠大。IP載荷在整個數(shù)據(jù)包中應該占有較高的比重。否則,如果這個比重過低而使網(wǎng)絡編碼協(xié)議頭所占的開銷過大,則應該停止編碼。如果不需要編碼,則按照傳統(tǒng)方式,直接根據(jù)路由表轉(zhuǎn)發(fā)。以下內(nèi)容以報文P需要進行網(wǎng)絡編碼為例進行描述。
此功能不只用于路由器,也可以用于端節(jié)點。如果這個功能用于端節(jié)
點,那么用于編碼的IP載荷的長度,不受最大傳送單元(MTU, MaximumTransmission Unit)的限制,最高可以達到64KB。這樣提高了編碼的封裝效率。
(2)編碼(圖2中標識6)
在傳輸路徑上,不是所有的路由器上需要支持編碼。只有那些處于瓶頸鏈路上的路由器才需要編碼,這種路由器稱為EC路由器(EnCoding)。在那些不需要執(zhí)行編碼的路由器上,只需要對于接收到的報文按照指定方向轉(zhuǎn)發(fā)即可。而在EC路由器上,對于從不同路徑上到達的各個報文,把它們的載荷進行編碼、重封裝,產(chǎn)生新的IP報文(如p4、 p5、 p6、 p7、......)
(圖2中標識7),然后再分別沿著幾條不相交的路徑朝信宿的方向發(fā)送。之后,這些編碼的新IP報文在傳輸路徑上可能還會遇到另一些路由器。同樣,這些路由器也將分別根據(jù)不同情況,或者對報文執(zhí)行編碼,或者只進行指定方向的轉(zhuǎn)發(fā)。這個階段稱為編碼(Encoding),執(zhí)行這個功能的路由器稱為EC路由器。
在EC路由器上,接收的具有NC協(xié)議的IP報文,根據(jù)它們的代的編號,被收集到相應的緩存中。在一個代中收集到足夠數(shù)目的報文之后,EC路由器使用線性編碼把這些報文進行編碼,編碼系數(shù)是從伽羅瓦域中隨機選取
的。然后,它修改報文的NCP協(xié)議頭的字段,把編碼后產(chǎn)生的報文發(fā)送到
輸出鏈路上。
(3)解碼(圖2中標識8)
最后,當編碼的報文(如p4、 p5、 p6、 p7、......)到達組播連接末端
的路由器上時,需要執(zhí)行解碼,把原始報文p恢復出來,然后把報文p發(fā)送給與之相連的信宿。這種路由器只有收集到足夠多的由原始報文P衍生的線性無關的編碼報文,才能恢復出原始報文P。如果一些編碼的報文在到達路徑末端的路由器之前發(fā)生了丟失、錯誤等異常情況,那么將有可能不能恢復出P。這個階段稱為解碼(DeCoding),執(zhí)行這個功能的路由器稱為DC路由器。解碼只用于與一些信宿直接相連的路由器上。
在DC路由器上,到達的報文先被存儲在對應于它們的代的編號的緩存中。在收到足夠的線性無關的編碼塊之后,根據(jù)NC協(xié)議頭中保存的全局編碼矢量,它使用高斯消元法來解碼這些數(shù)據(jù)塊。在成功解碼之后,DC路由器把NC協(xié)議頭從IP協(xié)議頭中刪除。此后DC路由器把源報文p發(fā)送到它所連接的作為該組播組成員的信宿端節(jié)點。
上述的報文的分割與重新組裝、編解碼等都是在路由器上進行的,對信源和信宿都是完全透明的。
權利要求
1、一種基于單個IXP2400網(wǎng)絡處理器的路由器,由IXP2400網(wǎng)絡處理器、SRAM、DRAM、協(xié)處理器、閃存、輸入輸出接口及總線構成,其特征在于IXP2400網(wǎng)絡處理器中負責處理IP報文的微引擎上增加網(wǎng)絡編碼模塊,在XP2400網(wǎng)絡處理器的XScale核上增加路由維護子模塊、組管理子模塊、緩存管理子模塊及性能預測子模塊。
2、 如權利要求1所述的一種基于單個IXP2400網(wǎng)絡處理器的路由器,其特 征在于所述網(wǎng)絡編碼模塊由代查找子模塊、編解碼子模塊和轉(zhuǎn)發(fā)子模塊 構成。
3、 一種基于單個IXP2400網(wǎng)絡處理器的路由器網(wǎng)絡編碼的實現(xiàn)方法,包含 以下步驟(1) 微引擎O:O從外部媒介接收物理層幀,并把這個物理層幀放入一 個接收隊列等待處理IP報文的微引擎將其取走;(2) 微引擎(0:1、 0:2或1:3)首先從接收隊列中取出一個物理層幀, 如果接收隊列是空的,則微引擎繼續(xù)等待,直到有一個物理層幀被接收到;(3) 微引擎刪除物理層的幀頭,只留下IP頭部和載荷;(4) 從IP頭部中提取第3層協(xié)議字段,判斷是否屬于網(wǎng)絡編碼協(xié)議。 如果是,則執(zhí)行網(wǎng)絡編碼的處理,進入網(wǎng)絡編碼過程;否則作為普通的IP 報文進行處理;(5) 網(wǎng)絡編碼開始,先從IP頭部中提取源IP地址、目的IP地址、 第4層協(xié)議、代的編號四個字段;(6) 以這4個字段作為關鍵詞,判斷是否已經(jīng)存在相應代的緩存;(7) 如果相應代的緩存存在,則判斷這個緩存中各個塊的編碼系數(shù)矢 量所組成的矩陣是否達到了滿秩。如果滿秩,則執(zhí)行編碼操作;如果不滿 秩,則只進行存儲,等待下一塊的到達,直到緩存中達到滿秩為止。如果 相應的代的緩存不存在,則要建立新的緩存。如果剩余空間不足而無法建 立新的緩存,則不進行網(wǎng)絡編碼;(8) 完成編碼之后,根據(jù)報文頭部的關鍵字段查找相關的轉(zhuǎn)發(fā)表,確 定由編碼所產(chǎn)生的新報文的輸出端口;(9) 微引擎(0:1、 0:2或1:3)把編碼后的載荷封裝為新的IP報文, 并把這個IP報文的內(nèi)存地址以及其它元信息,放到對應端口的發(fā)送隊列中, 等待發(fā)送微引擎(1:1或1:2)把報文取走,沿著組播路徑的指定的下行鏈 路發(fā)送出去。
4、 如權利要求3所述的一種基于單個IXP2400網(wǎng)絡處理器的路由器網(wǎng)絡編 碼的實現(xiàn)方法,其特征在于所述網(wǎng)絡編碼協(xié)議采用在原有的IP協(xié)議頭中 新增一個協(xié)議頭,用于保存網(wǎng)絡編碼所需的信息,NC協(xié)議頭插在IP協(xié)議頭 和傳輸層協(xié)議頭之間的實現(xiàn)方式。
5、 一種基于多個IXP2400網(wǎng)絡處理器的路由器,由一個交換矩陣、 一個主 控處理器、 一個備用處理器及多個IXP2400網(wǎng)絡處理器構成,其特征在于 其交換矩陣上還連接一個專用IXP2400網(wǎng)絡處理器,專門用于網(wǎng)絡編碼協(xié) 議的處理。
6、 如權利要求5所述的一種基于多個IXP2400網(wǎng)絡處理器的路由器,其特 征在于所述專用IXP2400網(wǎng)絡處理器的微引擎包含代査找子模塊、載荷 編解碼子模塊、轉(zhuǎn)發(fā)表查找子模塊及報文轉(zhuǎn)發(fā)子模塊;所述專用IXP2400網(wǎng)絡處理器的XScale核包含網(wǎng)絡編碼的路由維護子模塊、組管理子模塊、 緩存管理子模塊及性能預測子模塊。
7、 一種基于多個IXP2400的路由器網(wǎng)絡編碼的實現(xiàn)方法,包含以下步驟(1) 從輸入端接口接收報文,并存放于IXP2400網(wǎng)絡處理器的內(nèi)存中;(2) 根據(jù)IP頭部的第3層協(xié)議字段確定這個報文中是否包含網(wǎng)絡編 碼協(xié)議;(3) 如果不包含網(wǎng)絡編碼協(xié)議,則按傳統(tǒng)的"存儲-轉(zhuǎn)發(fā)"方式對報 文進行處理;如果包含網(wǎng)絡編碼協(xié)議,那么把這個報文發(fā)送到專用于網(wǎng)絡 編碼的IXP2400網(wǎng)絡處理器上,由此IXP2400網(wǎng)絡處理器進行專門的處理;(4) 判斷專用IXP2400網(wǎng)絡處理器上與代相應的緩存是否存在,如 果不存在為該代建立新的緩存,并在該代相應的緩存中存入新到達的塊; 如果與代相應的緩存存在,在該代相應的緩存中存入新到達的塊;(5) 判斷該緩存中是否達到滿秩,如果不滿秩則只進行存儲,等待 下一塊的到達,直到緩存中達到滿秩為止;如果達到滿秩,則進行網(wǎng)絡編 碼;(6) 網(wǎng)絡編碼完成后,根據(jù)網(wǎng)絡編碼專用的轉(zhuǎn)發(fā)表,決定編碼后新 產(chǎn)生的報文要被輸出到其它哪個IXP2400網(wǎng)絡處理器的哪個端口上;(7) 通過交換矩陣將該報文傳送到指定的IXP2400網(wǎng)絡處理器,最 后通過該指定IXP2400網(wǎng)絡處理器的端口,把報文輸出到外部的傳輸鏈路 上。
8、 如權利要求3和權利要求7中所述的路由器編碼的實現(xiàn)方法,其特征在于當所述報文在緩存中停留過久,超過指定的時間,且其它報文仍然沒 有到達時,應立刻將這些停留超時的報文發(fā)送出去。
9、如權利要求3、權利要求7和權利要求8中所述的路由器編碼的實現(xiàn)方法,其特征在于當一個代的報文到達路由器,如果此路由器上所有網(wǎng)絡 編碼專用的緩存全部被其它代的報文占用,新到達的報文需獲取緩存時, 可以選擇將那些占用緩存時間最長的代的報文立刻發(fā)出去,釋放相應的緩 存或者將新到達的代的報文立刻發(fā)出去,不再申請網(wǎng)絡編碼專用的緩存。
全文摘要
本發(fā)明提供一種基于單個和多個網(wǎng)絡處理器的網(wǎng)絡編碼路由器及其實現(xiàn)網(wǎng)絡編碼的方法。采用英特爾IXP2400網(wǎng)絡處理器作為處理器設計架構,為支持網(wǎng)絡編碼,在負責處理IP報文的微引擎上增加網(wǎng)絡編碼模塊,網(wǎng)絡編碼模塊包含代查找子模塊、編解碼子模塊和轉(zhuǎn)發(fā)子模塊,在XScale核上增加路由維護子模塊、組管理子模塊、緩存管理子模塊及性能預測子模塊的實現(xiàn)方式。同時本發(fā)明還分別提供了基于單個或多個網(wǎng)絡處理器的路由器的編碼實現(xiàn)流程。采用本發(fā)明提供的解決方案,能有效提高網(wǎng)絡編碼在網(wǎng)絡吞吐率提升方面的優(yōu)勢,降低在應用中編解碼上的開銷,滿足網(wǎng)絡應用中路由器設計的需求。
文檔編號H04L12/56GK101656681SQ200910194978
公開日2010年2月24日 申請日期2009年9月2日 優(yōu)先權日2009年9月2日
發(fā)明者珉 林, 新 王, 薛向陽, 進 趙 申請人:復旦大學