两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種交換機數(shù)據(jù)包切分與重組的方法與裝置制造方法

文檔序號:7811968閱讀:289來源:國知局
一種交換機數(shù)據(jù)包切分與重組的方法與裝置制造方法
【專利摘要】該發(fā)明公開了一種交換機數(shù)據(jù)包切分與重組的方法與裝置,屬于通信【技術領域】,本發(fā)明提供的方法包括:切分方法和重組方法。其中切分方法包括:將數(shù)據(jù)包預切分再緩存,采用信息緩存與數(shù)據(jù)緩存的數(shù)據(jù)管理方式,當緩存了一個內(nèi)部信元凈荷大小的數(shù)據(jù)即開始生成并發(fā)送信元;重組方法包括:采用信息緩存和VIQ緩存的數(shù)據(jù)管理方式,在將信元凈荷分別存入VIQ緩存的過程中即完成了數(shù)據(jù)包重組。本發(fā)明提供的裝置,包括:交換機中的切分模塊和重組模塊,以實現(xiàn)上述方法。該方法和裝置能高效完成數(shù)據(jù)包切分與重組,數(shù)據(jù)管理簡單易行,能有效減少切分延遲和延遲抖動,提高交換效率。
【專利說明】一種交換機數(shù)據(jù)包切分與重組的方法與裝置

【技術領域】
[0001] 本發(fā)明屬于通信【技術領域】,特別是涉及一種交換機數(shù)據(jù)包切分與重組的方法與裝 置。

【背景技術】
[0002] 交換機是現(xiàn)代大型網(wǎng)絡的基礎。在目前的交換機設計中,為了提高交換系統(tǒng)的性 能,對數(shù)據(jù)包的處理廣泛采用定長分組交換技術。定長分組交換技術,要求將變長數(shù)據(jù)包在 交換機輸入端切分成固定長度的信元,再通過交換結構進行交換,最后在輸出端將信元重 組為原始數(shù)據(jù)包再進行轉發(fā)。定長分組交換使得整個交換結構的各個交換單元都同步操 作,實現(xiàn)簡單,交換的信元顆粒小,交換時延短。
[0003] 現(xiàn)行的交換機一般包括交換模塊和對應于每個端口的切分模塊、重組模塊和網(wǎng)絡 接口模塊。網(wǎng)絡接口模塊,根據(jù)協(xié)議完成物理介質中的物理信號和并行傳輸?shù)臄?shù)據(jù)包之間 的相互轉換,并維護鏈路。網(wǎng)絡接口模塊收到物理介質傳來的數(shù)據(jù)后得到有效的數(shù)據(jù)包,發(fā) 給切分模塊。切分模塊根據(jù)數(shù)據(jù)包頭部中的信息生成信元頭部,將目的地址對應為目的端 口號,并將數(shù)據(jù)包切分為定長信元,發(fā)給交換模塊。交換模塊根據(jù)信元頭部中的目的端口 號,將信元轉發(fā)給目的端口的重組模塊。重組模塊將交換模塊發(fā)送來的信元重組為原始數(shù) 據(jù)包,并發(fā)送到網(wǎng)絡接口模塊。網(wǎng)絡接口模塊根據(jù)協(xié)議將數(shù)據(jù)包發(fā)送出去。
[0004] 現(xiàn)有的切分技術大都是接收數(shù)據(jù)包并存儲于RAM中,當接收并存儲一個完整的數(shù) 據(jù)包后,從RAM讀出該數(shù)據(jù)包再切分為信元。這種方法存在以下問題:
[0005] 1.在數(shù)據(jù)包較長時,導致數(shù)據(jù)包切分延時很大?,F(xiàn)有切分技術采用等待一個數(shù)據(jù) 包被完整地接收并存儲之后,再開始切分并發(fā)送信元。因此數(shù)據(jù)包較長時,需要等待的時間 較長,導致切分延時大。
[0006] 2.在數(shù)據(jù)包長度變化大的情況下延遲抖動明顯。當數(shù)據(jù)包較短時,延時較小,數(shù)據(jù) 包較大時延遲大。如光纖通道協(xié)議中最長幀為2148字節(jié),最短幀為36字節(jié),采用現(xiàn)有切分 技術在切分模塊延時相差數(shù)十倍。
[0007] 3.需要大量存儲資源,地址管理復雜?,F(xiàn)有技術采用RAM存儲,需要專門的地址管 理模塊。
[0008] 專利"一種星上交換模塊的數(shù)據(jù)報分段與重組系統(tǒng)及實現(xiàn)方法"中,在"分段器"模 塊采用兩倍于內(nèi)部信元凈荷長度大小的RAM,用乒乓操作的方式每存入一個信元凈荷長度 的數(shù)據(jù),則讀出并生成一個內(nèi)部信元。此技術方案緩解了上述延時大和延時抖動問題,但存 在以下問題:
[0009] 1.采用兩級緩存,存儲利用率不高。先將數(shù)據(jù)包存儲在"輸入緩存器",然后從"輸 入緩存器"中讀出,提取信息,然后在"分段器"中完成切分操作。其中"分段器"中包含兩 倍于內(nèi)部信元凈荷長度大小的緩存,用乒乓操作的方式完成切分。
[0010] 2.數(shù)據(jù)包存入"輸入緩存器"到讀出"輸入緩存器"仍然存在長數(shù)據(jù)包延時較大和 數(shù)據(jù)包長度變化大時延時抖動較大的情況。
[0011] 3.在交換機內(nèi)發(fā)生數(shù)據(jù)堵塞時,數(shù)據(jù)不能從"分段器"中的切分緩存中被及時讀 出,而切分緩存不足以存儲完整數(shù)據(jù)包,因此可能會在此部分發(fā)生數(shù)據(jù)包內(nèi)容丟失。解決此 問題需要在其"輸入緩存器"和"分段器"間添加復雜的流量控制。
[0012] 4.在"分段器"中地址管理復雜,需要專門的地址管理模塊。
[0013] 現(xiàn)有的交換機的內(nèi)部信元重組技術主要采用RAM存儲,通過對地址的處理達到重 組的目的,此技術地址管理復雜。


【發(fā)明內(nèi)容】

[0014] 本發(fā)明的目的在于針對現(xiàn)有技術的不足之處,提供一種交換機數(shù)據(jù)包切分與重組 的方法與裝置,從而達到高效可靠,延遲低,抖動小,數(shù)據(jù)管理簡單的目的。
[0015] 本發(fā)明的解決方案為一種交換機數(shù)據(jù)包切分與重組的方法,該方法包括數(shù)據(jù)包切 分和數(shù)據(jù)包重組。
[0016] 數(shù)據(jù)包切分,接收由網(wǎng)絡接口模塊發(fā)來的數(shù)據(jù)包并緩存,提取數(shù)據(jù)包頭部中的信 息生成信元頭部,將數(shù)據(jù)包切分為定長信元,與信元頭部組成完整信元后發(fā)送到交換模 塊;
[0017] 數(shù)據(jù)包重組,接收由交換模塊發(fā)來的信元并緩存,提取信元中的有效凈荷數(shù)據(jù)將 其重組為完整的數(shù)據(jù)包,并發(fā)送到網(wǎng)絡接口模塊。
[0018] 在所述交換機數(shù)據(jù)包切分與重組的方法中,數(shù)據(jù)包切分具體包括以下步驟:
[0019] 步驟11 :接收到由網(wǎng)絡接口模塊發(fā)來的數(shù)據(jù)包后,提取數(shù)據(jù)包頭部中的源地址信 息、目的地址信息,生成信元頭部所需的交換機中的源端口號、目的端口號信息;
[0020] 步驟12 :將數(shù)據(jù)包數(shù)據(jù)依次存入數(shù)據(jù)緩存中;
[0021] 步驟13 :生成信元頭部所需的其他信息,如信元的有效凈荷長度、信元在所屬數(shù) 據(jù)包中的編號等,利用這些信息和步驟11生成的信息生成信元頭部,并將其存入信息緩存 中;
[0022] 步驟14,若信息緩存非空,則從信息緩存中取出首個信元頭部;
[0023] 步驟15,根據(jù)步驟14信元頭部中的有效凈荷長度,從數(shù)據(jù)緩存中取出對應有效凈 荷長度大小的數(shù)據(jù)包數(shù)據(jù),即為信元的有效凈荷數(shù)據(jù);
[0024] 步驟16,利用信元的有效凈荷數(shù)據(jù)和信元頭部,組成一個完整的信元并發(fā)送到交 換模塊。
[0025] 所述步驟13的具體方法為:
[0026] (1)在接收數(shù)據(jù)包的過程中,若數(shù)據(jù)包未結束且當步驟12緩存的數(shù)據(jù)大小達到一 個信元的最大凈荷長度時,則生成信元頭部所需的其他信息,如信元的有效凈荷長度、信元 在所屬數(shù)據(jù)包中的編號等,然后按照所采用的信元頭部格式生成一個信元頭部,并將其存 入信息緩存中,用于組成一個信元;
[0027] (2)若數(shù)據(jù)包結束,此時步驟12中緩存的是最后一個信元的有效凈荷數(shù)據(jù),其長 度可能小于最大凈荷長度,則將該信元的有效凈荷長度、信元在數(shù)據(jù)包中的編號和尾信元 標志等信息組成信元頭部,并存入信息緩存中。
[0028] 所述步驟16的具體方法為:
[0029] (1)若信元的有效凈荷長度為最大凈荷長度,則直接將信元頭部和有效凈荷數(shù)據(jù) 組成完整的信元,并發(fā)送到交換模塊;
[0030] (2)若信元的有效凈荷長度小于最大凈荷長度,則需要在有效凈荷數(shù)據(jù)后添加填 充數(shù)據(jù),長度為最大凈荷長度減去有效凈荷長度,以達到最大凈荷長度,再將信元頭部、有 效凈荷數(shù)據(jù)和填充數(shù)據(jù)組成完整的信元,并發(fā)送到交換模塊。
[0031] 在所述交換機數(shù)據(jù)包切分與重組的方法中,數(shù)據(jù)包重組具體包括以下步驟:
[0032] 步驟21,接收到由交換模塊發(fā)來的信元,提取信元頭部中的源端口號、有效凈荷長 度和尾信元標志;
[0033] 步驟22,分離信元中的信元頭部和有效凈荷數(shù)據(jù),將有效凈荷數(shù)據(jù)依次存入步驟 21中源端口號對應的虛擬輸入隊列(Virtual Input Queue, VIQ)中,并產(chǎn)生每個數(shù)據(jù)包對 應的信息,存入信息緩存中。其中虛擬輸入隊列為數(shù)據(jù)緩存,每一個虛擬輸入隊列對應交換 機的一個輸入端口,存儲此端口發(fā)來的數(shù)據(jù)包數(shù)據(jù);
[0034] 步驟23,若信息緩存非空,則從信息緩存中取出首個數(shù)據(jù)包信息;
[0035] 步驟24,根據(jù)數(shù)據(jù)包信息中的源端口號,從對應的虛擬輸入隊列中取出大小等于 數(shù)據(jù)包信息中數(shù)據(jù)包長度的數(shù)據(jù),即完整的數(shù)據(jù)包,并將數(shù)據(jù)包發(fā)送到網(wǎng)絡接口模塊。
[0036] 所述步驟22的具體方法為:
[0037] (1)若尾信元標志為無效,即此信元不為此數(shù)據(jù)包的最后一個信元,則根據(jù)信元格 式和有效凈荷長度,拆去信元頭部,提取出信元中的有效凈荷數(shù)據(jù),再根據(jù)源端口號將有效 凈荷數(shù)據(jù)依次存入對應的虛擬輸入隊列中,同時對存入此虛擬輸入隊列的此信元所屬的數(shù) 據(jù)包長度進行計數(shù);
[0038] (2)若尾信元標志為有效,即此信元為此數(shù)據(jù)包的最后一個信元,則拆去信元頭部 和填充數(shù)據(jù),提取出信元中的有效凈荷數(shù)據(jù),將有效凈荷數(shù)據(jù)存入虛擬輸入隊列,再將源端 口號和通過計數(shù)所得的此數(shù)據(jù)包長度組成一個數(shù)據(jù)包信息,并存入信息緩存中,與對應虛 擬輸入隊列中的此數(shù)據(jù)包相對應,并將此虛擬輸入隊列數(shù)據(jù)包長度的計數(shù)進行清零。
[0039] 本發(fā)明基于此方法提出了一種交換機數(shù)據(jù)包切分與重組的裝置,該裝置包括:切 分模塊,重組模塊,切分模塊用于接收網(wǎng)絡接口模塊發(fā)來的數(shù)據(jù)包并緩存,將其切分為若干 個信元,并發(fā)送給交換模塊;重組模塊用于接收交換模塊發(fā)來的若干信元并緩存,將這些信 元的有效載荷數(shù)據(jù)重組為一個完整的數(shù)據(jù)包,并發(fā)送到網(wǎng)絡接口模塊。
[0040] 在上述交換機數(shù)據(jù)包切分與重組的裝置中,切分模塊包括數(shù)據(jù)包預切分單元、路 由表單元、信息緩存單元、數(shù)據(jù)緩存單元和信元生成與發(fā)送單元;
[0041] 所述路由表單元,實現(xiàn)對數(shù)據(jù)包頭部中的源地址、目的地址與交換機端口號對應 關系的存儲,可采用CAM(Content Addressable Memory,內(nèi)容可尋址存儲器)實現(xiàn);
[0042] 所述數(shù)據(jù)包預切分單元,用于提取數(shù)據(jù)包頭部中生成信元頭部所需的信息,通過 查找路由表單元將源地址、目的地址信息對應為交換機中源端口號和目的端口號,并生成 信元頭部所需的其他信息,利用這些信息生成信元頭部并存入信息緩存單元中,將數(shù)據(jù)包 數(shù)據(jù)存入數(shù)據(jù)緩存單元中;
[0043] 所述信息緩存單元,用于存儲數(shù)據(jù)包預切分單元所生成的信元頭部,采用 FIFO (First-Input First-Output,先入先出存儲隊列)實現(xiàn);
[0044] 所述數(shù)據(jù)緩存單元,用于存儲完整的數(shù)據(jù)包數(shù)據(jù),采用FIFO (First-Input First-Output,先入先出存儲隊列)實現(xiàn);
[0045] 所述信元生成與發(fā)送單元,用于從信息緩存單元中取出信元頭部,從數(shù)據(jù)緩存單 元中取出大小等于信元頭部中有效凈荷長度的數(shù)據(jù),即信元的有效凈荷數(shù)據(jù),利用有效凈 荷數(shù)據(jù)和信元頭部,組成一個完整的信元并發(fā)送給交換模塊。
[0046] 在上述交換機數(shù)據(jù)包切分與重組的裝置中,重組模塊包括信元處理單元、信息緩 存單元、若干虛擬輸入隊列(Virtual Input Queue, VIQ)和數(shù)據(jù)包生成與發(fā)送單元;
[0047] 所述信元處理單元,用于將接收到的信元中的信元頭部和有效凈荷數(shù)據(jù)分離,根 據(jù)信元頭部中的源端口號,將有效凈荷數(shù)據(jù)存入對應的虛擬輸入隊列中,將源端口號和通 過計數(shù)所得的數(shù)據(jù)包長度組成數(shù)據(jù)包對應的信息,并存入信息緩存單元中;
[0048] 所述信息緩存單元,用于存儲每個數(shù)據(jù)包對應的信息,采用FIFO(First_Input First-Output,先入先出存儲隊列)實現(xiàn);
[0049] 所述虛擬輸入隊列,用于存儲經(jīng)過信元處理單元得到的信元的有效凈荷數(shù)據(jù),每 一個虛擬輸入隊列對應交換機的一個輸入端口,采用FIFO (First-Input First-Output,先 入先出存儲隊列)實現(xiàn);
[0050] 所述數(shù)據(jù)包生成與發(fā)送單元,用于利用信息緩存單元中的數(shù)據(jù)包對應的信息,從 對應的虛擬輸入隊列中取出完整的數(shù)據(jù)包,并發(fā)送給網(wǎng)絡接口模塊。
[0051] 本發(fā)明提出的交換機數(shù)據(jù)包切分與重組的方法與裝置,高效可靠,延遲低,抖動 小,數(shù)據(jù)管理簡單。在切分模塊,與現(xiàn)有技術的先緩存再處理相比,本發(fā)明在緩存數(shù)據(jù)包前 采用預切分的技術提前處理數(shù)據(jù)包;在數(shù)據(jù)緩存方面,與現(xiàn)有技術的二級緩存相比,采用 FIFO實現(xiàn)的信息緩存和數(shù)據(jù)緩存管理數(shù)據(jù),在緩存中數(shù)據(jù)足以生成一個內(nèi)部信元時即開始 生成并發(fā)送信元。在重組模塊,采用FIFO實現(xiàn)的VIQ緩存和信息緩存實現(xiàn)重組并管理數(shù) 據(jù),操作簡單,易于實施。并且本發(fā)明采用異步FIFO隔開內(nèi)部信元處理部分和數(shù)據(jù)包處理 部分,因此方便應用于內(nèi)部信元交換需要加速的交換機設計。

【專利附圖】

【附圖說明】
[0052] 圖1為本發(fā)明一種實施方式中交換機整體系統(tǒng)框圖;
[0053] 圖2為FC幀格式示意圖;
[0054] 圖3為本發(fā)明一種實施方式中光纖通道交換機內(nèi)部信元格式示意圖;
[0055] 圖4為切分模塊的內(nèi)部框圖;
[0056] 圖5為圖4中的數(shù)據(jù)包預切分處理單元具體處理流程圖;
[0057] 圖6為圖4中的信元生成與發(fā)送單元具體處理流程圖;
[0058] 圖7為重組模塊的內(nèi)部框圖;
[0059] 圖8為圖7中的信息緩存內(nèi)存儲的信息格式示意圖;
[0060] 圖9為圖7中的信元處理單元具體處理流程圖;
[0061] 圖10為圖7中的數(shù)據(jù)包生成與發(fā)送單元具體處理流程圖。

【具體實施方式】
[0062] 為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對 本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并 不用于限定本發(fā)明。
[0063] 本發(fā)明一實施方式中的交換機整體系統(tǒng)框圖如圖1所示,包括網(wǎng)絡接口模塊1(對 應于每個端口),切分模塊2 (對應于每個端口),交換模塊3和重組模塊4 (對應于每個端 □)。
[0064]網(wǎng)絡接口模塊1,實現(xiàn)協(xié)議交互,接收端接收來自物理介質上的信號,得到有效的 數(shù)據(jù)包發(fā)給切分模塊2 ;發(fā)送端將待發(fā)送的數(shù)據(jù)包按照協(xié)議通過物理介質發(fā)出,并按協(xié)議 維護鏈路。
[0065] 切分模塊2,接收網(wǎng)絡接口模塊1發(fā)來的數(shù)據(jù)包,將其緩存并切分為預定格式的定 長信元,發(fā)送到交換模塊3。
[0066] 交換模塊3,根據(jù)信元頭部中的目的端口號,將信元轉發(fā)給目的端口的重組模塊 4。
[0067] 重組模塊4,收到交換模塊3發(fā)來的信元并緩存,將信元的有效凈荷數(shù)據(jù)重組為完 整的數(shù)據(jù)包,并發(fā)送到網(wǎng)絡接口模塊1。
[0068] 具體地,本發(fā)明一種實施方式針對在光纖通道(Fibre Channel,F(xiàn)C)交換機中實現(xiàn) 的情況,此時數(shù)據(jù)包即為FC幀。FC幀格式示意圖如圖2所示,其中包括4字節(jié)的幀起始符 S0F,24字節(jié)的FC幀頭,0-2112字節(jié)的載荷,4字節(jié)的CRC校驗,4字節(jié)的幀結束符EOF。FC 幀最長為2148字節(jié),最短為36字節(jié)。但本發(fā)明應用并不局限于光纖通道交換機。
[0069] 圖3所示為本發(fā)明一種實施方式中光纖通道交換機內(nèi)部信元格式示意圖。信元大 小為64字節(jié),首個32位(4字節(jié))為信元頭部,之后的15個32位(60字節(jié))為凈荷。
[0070] 所述信元頭部中,包括 FLAG、P_ID、V_Len、S_ID、D_ID 和 Priority 位段。
[0071] FLAG (2位),為首尾信元標志,其第一位為尾信元標志位,為1表示本信元為本FC 中貞的最后一個信元,為〇表示不是尾信元;其第二位為首信元標志位,為1表示本信元為本 FC巾貞的首個信元,為0表示不是首信元。特殊的,F(xiàn)LAG為00表示本信元非首尾信元,11表 示本信元為本FC幀所含的唯一信元,本FC幀不超過60字節(jié)。
[0072] P_ID(6位),為本信元在所屬FC幀中的信元編號。
[0073] V_Len (4位),為本信元的有效凈荷長度,以位寬(32位)為單位,滿負載時即為 15(11112)。
[0074] S_ID(5 位),為源端口號。
[0075] D_ID(5位),為目的端口號。
[0076] Priority (7位),為優(yōu)先級,用于交換模塊進行有優(yōu)先級的信元交換。
[0077] 圖4所示為本發(fā)明一實施方式中切分模塊2的內(nèi)部框圖,切分模塊2采用32位位 寬。切分模塊2接收來自網(wǎng)絡接口模塊1的FC幀,緩存并添加信元頭部,切分為定長的信 元,發(fā)送到交換模塊3。該模塊具體包括:路由表單元21,數(shù)據(jù)包預切分處理單元22,信息 緩存單元23,數(shù)據(jù)緩存單元24和信元生成與發(fā)送單元25。
[0078] 路由表單元21,存儲著FC幀頭中源地址、目的地址與交換機端口號的對應關系, 采用CAM實現(xiàn),輸入一個地址則返回其對應的端口號。
[0079] 數(shù)據(jù)包預切分處理單元22,對接收到的FC幀進行預切分,并將FC幀存入數(shù)據(jù)緩存 單元24,將預切分所得的信元頭部存入信息緩存單元23。
[0080] 信息緩存單元23,存儲數(shù)據(jù)包預切分處理單元22所生成的信元頭部,采用FIFO實 現(xiàn),F(xiàn)IFO位寬為32位。
[0081] 數(shù)據(jù)緩存單元24,存儲完整的FC幀數(shù)據(jù),采用FIFO實現(xiàn),F(xiàn)IFO位寬為32位。
[0082] 信元生成與發(fā)送單元25,根據(jù)信息緩存單元23中的信元頭部和數(shù)據(jù)緩存單元24 中的數(shù)據(jù),完成信元的生成并發(fā)送到交換模塊3。
[0083] 所述的數(shù)據(jù)包預切分處理單元的具體處理流程圖如圖5所示,具體包括以下步 驟:
[0084] 步驟51 :提取FC幀頭中所需的信息,并生成信元頭部中所需的信息。當收到FC 幀,提取FC幀頭中的目的地址、源地址,通過路由表單元21將其對應為交換機中目的端口 號D_ID和源端口號S_ID,根據(jù)FC幀頭中的優(yōu)先級信息生成優(yōu)先級Priority。
[0085] 步驟52 :將FC幀依次存入數(shù)據(jù)緩存單元24。
[0086] 步驟53 :如果未收到E0F,則FC幀未結束。每收到并緩存一個信元最大凈荷長度 大小的數(shù)據(jù)(60字節(jié)),生成此信元的信元頭部所需的其他信息,包括信元的有效凈荷長度 V_Len、信元在所屬FC幀中的編號P_ID和首尾信元標志FLAG ;結合步驟51得到的目的端口 號0_10、源端口號S_ID和優(yōu)先級信息Priority,按照所采用信元頭部格式組成信元頭部, 將信元頭部依次存儲在信息緩存單元23中。
[0087] 步驟54 :如果收到E0F,則FC幀結束,此時存入數(shù)據(jù)緩存單元24的是最后一個信 元的有效凈荷數(shù)據(jù),可能小于最大凈荷長度(60字節(jié)),生成此信元的有效凈荷長度V_Len、 此信元在FC幀中的編號P_ID和首尾信元標志FLAG信息,結合步驟51得到的其他信息組 成信元頭部,將信元頭部依次存入信息緩存單元23中。
[0088] 所述的信元生成與發(fā)送單元的具體處理流程圖如圖6所示,具體包括以下步驟:
[0089] 步驟61 :如果信息緩存單元23非空,則從信息緩存單元23中讀出首個信元頭部, 即其中首個32位數(shù)據(jù)。
[0090] 步驟62 :根據(jù)信元頭部中有效凈荷長度V_Len,從數(shù)據(jù)緩存單元24中讀出對應大 小的數(shù)據(jù),即為信元的有效凈荷數(shù)據(jù)。
[0091] 步驟63 :如果信元的有效凈荷長度V_Len為15,為滿負載,則直接將信元頭部和有 效凈荷數(shù)據(jù)拼接為完整信元,并發(fā)送到交換模塊3。
[0092] 步驟64 :如果信元的有效凈荷長度V_Len小于15,則需要在有效凈荷數(shù)據(jù)后填充 (15-V_Len)個32位的填充數(shù)據(jù),以達到最大凈荷長度,優(yōu)選的全部填充0。將信元頭部、有 效凈荷數(shù)據(jù)和填充數(shù)據(jù)拼接為完整信元,并發(fā)送到交換模塊3。
[0093] 圖7所示為本發(fā)明一實施方式中重組模塊4的內(nèi)部框圖,重組模塊4采用32位位 寬。該模塊收到交換模塊3發(fā)來的信元并緩存,將信元的有效凈荷數(shù)據(jù)重組為完整的FC幀, 并發(fā)送到網(wǎng)絡接口模塊1。重組模塊4包括:信元處理單元41,信息緩存單元42, N個VIQ 緩存43,數(shù)據(jù)包生成與發(fā)送單元44。
[0094] 信元處理單元41,將接收到信元的有效凈荷數(shù)據(jù)存入VIQ緩存43,并產(chǎn)生每個FC 幀對應的信息,存入信息緩存單元42。
[0095] 信息緩存單元42,存入每個FC幀對應的信息,其信息格式如圖8所示,包括源端口 號5_10和FC幀長度。其中,F(xiàn)C幀長度以數(shù)據(jù)位寬(32位)為單位,信息緩存單元42采用 FIFO實現(xiàn)。
[0096] VIQ43,虛擬輸入隊列,共有N個,VIQi對應第i個端口,用于存儲端口 i通過交換 模塊3發(fā)來的數(shù)據(jù)。經(jīng)過信元處理單元41處理后,存入VIQi的只有每個信元的有效凈荷 數(shù)據(jù),若已經(jīng)存入了 FC幀最后一個信元的有效凈荷數(shù)據(jù),則此VIQi中完整存儲了此FC幀。 VIQ43采用FIFO實現(xiàn)。
[0097] 數(shù)據(jù)包生成與發(fā)送單元44,根據(jù)信息緩存單元42中的FC幀對應的信息,讀取對應 VIQ43中完整的FC幀,并發(fā)送到網(wǎng)絡接口模塊1。
[0098] 所述的信元處理單元的具體處理流程圖如圖9所示,具體包括以下步驟:
[0099] 步驟91 :提取信元頭部中的源端口號S_ID,有效凈荷長度V_Len和首尾信元標志 FLAG。
[0100] 步驟92 :如果尾信元標志位為無效,即此信元不為此FC幀的最后一個信元,則根 據(jù)有效凈荷長度¥_1^11,將有效凈荷數(shù)據(jù)即信元中第2個字到第(V_Len+l)個字,依次存入 源端口號SID對應的緩存VIQi43中;同時對存入VIQi43的此信元所屬FC幀的長度以32 位為單位進行計數(shù)。
[0101] 步驟93 :如果尾信元標志位為有效,則此信元為此FC巾貞的最后一個信元,將其有 效凈荷數(shù)據(jù)存入VIQi43后,則此FC幀全部收到且存入對應VIQi43。將其源端口號和通過 計數(shù)所得的FC幀長度組成一個信息,依次存入信息緩存單元42中,與VIQi43中的此FC幀 所對應;清零此VIQi43中FC幀長度的計數(shù)。
[0102] 所述的數(shù)據(jù)包生成與發(fā)送單元的具體處理流程圖如圖10所示,具體包括以下步 驟:
[0103] 步驟101 :如果信息緩存單元42非空,則讀出首個32位的信息得到其對應FC幀 的源端口號S_ID與FC幀長度。
[0104] 步驟102 :從源端口號S_ID對應的VIQi43中讀取所述長度的FC幀,得到完整的 FC幀,并將FC幀發(fā)送到網(wǎng)絡接口模塊1。
[0105] 相比與現(xiàn)有技術的缺點和不足,本發(fā)明有以下有益效果:
[0106] (1)本發(fā)明提出的交換機數(shù)據(jù)包切分與重組的方法與裝置,高效可靠,延時低,抖 動小,數(shù)據(jù)管理簡單。
[0107] (2)在切分模塊,與現(xiàn)有技術的先緩存再處理相比,本發(fā)明在緩存數(shù)據(jù)包前采用預 切分的技術提前處理數(shù)據(jù)包;在數(shù)據(jù)緩存方面,與現(xiàn)有技術的二級緩存相比,采用FIFO實 現(xiàn)的信息緩存和數(shù)據(jù)緩存管理數(shù)據(jù),在緩存中數(shù)據(jù)足以生成一個內(nèi)部信元時即開始生成并 發(fā)送信元。
[0108] (3)在重組模塊,采用FIFO實現(xiàn)的VIQ緩存和信息緩存實現(xiàn)重組并管理數(shù)據(jù),操作 簡單,易于實施。并且本發(fā)明采用異步FIFO隔開內(nèi)部信元處理部分和數(shù)據(jù)包處理部分,因 此方便應用于內(nèi)部信元交換需要加速的交換機設計。
[0109] 以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明??蓪⒋朔桨感薷?為應用于其他協(xié)議;信元格式和信息緩存中信息格式可以按具體需求設置;數(shù)據(jù)位寬亦可 根據(jù)所應用具體系統(tǒng)而更改。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換等, 均應包含在本發(fā)明的保護范圍之內(nèi)。
【權利要求】
1. 一種交換機數(shù)據(jù)包切分與重組的方法,該方法包括數(shù)據(jù)包切分和數(shù)據(jù)包重組: 數(shù)據(jù)包切分,接收由網(wǎng)絡接口模塊發(fā)來的數(shù)據(jù)包并緩存,提取數(shù)據(jù)包頭部中的信息生 成信元頭部,將數(shù)據(jù)包切分為定長信元,與信元頭部組成完整信元后發(fā)送到交換模塊; 數(shù)據(jù)包重組,接收由交換模塊發(fā)來的信元并緩存,提取信元中的有效凈荷數(shù)據(jù)將其重 組為完整的數(shù)據(jù)包,并發(fā)送到網(wǎng)絡接口模塊; 其特征在于在所述數(shù)據(jù)包切分具體包括以下步驟: 步驟11 :接收到由網(wǎng)絡接口模塊發(fā)來的數(shù)據(jù)包后,提取數(shù)據(jù)包頭部中的源地址信息、 目的地址信息,生成信元頭部所需的交換機中的源端口號、目的端口號信息; 步驟12 :將數(shù)據(jù)包數(shù)據(jù)依次存入數(shù)據(jù)緩存中; 步驟13 :生成信元頭部所需的其他信息,如信元的有效凈荷長度、信元在所屬數(shù)據(jù)包 中的編號等,利用這些信息和步驟11生成的信息生成信元頭部,并將其存入信息緩存中; 步驟14,若信息緩存非空,則從信息緩存中取出首個信元頭部; 步驟15,根據(jù)步驟14信元頭部中的有效凈荷長度,從數(shù)據(jù)緩存中取出對應有效凈荷長 度大小的數(shù)據(jù)包數(shù)據(jù),即為信元的有效凈荷數(shù)據(jù); 步驟16,利用信元的有效凈荷數(shù)據(jù)和信元頭部,組成一個完整的信元并發(fā)送到交換模 塊; 在所述數(shù)據(jù)包重組具體包括以下步驟: 步驟21,接收到由交換模塊發(fā)來的信元,提取信元頭部中的源端口號、有效凈荷長度和 尾信元標志; 步驟22,分離信元中的信元頭部和有效凈荷數(shù)據(jù),將有效凈荷數(shù)據(jù)依次存入源端口號 對應的虛擬輸入隊列中,并產(chǎn)生每個數(shù)據(jù)包對應的信息,存入信息緩存中,其中虛擬輸入 隊列為數(shù)據(jù)緩存,每一個虛擬輸入隊列對應交換機的一個輸入端口,存儲此端口發(fā)來的數(shù) 據(jù)包數(shù)據(jù); 步驟23,若信息緩存非空,則從信息緩存中取出首個數(shù)據(jù)包信息; 步驟24,根據(jù)數(shù)據(jù)包信息中的源端口號,從對應的虛擬輸入隊列中取出大小等于數(shù)據(jù) 包信息中數(shù)據(jù)包長度的數(shù)據(jù),即完整的數(shù)據(jù)包,并將數(shù)據(jù)包發(fā)送到網(wǎng)絡接口模塊。
2. 如權利要求1所述的一種交換機數(shù)據(jù)包切分與重組的方法,其特征在于所述步驟13 的具體方法為: (1) 在接收數(shù)據(jù)包的過程中,若數(shù)據(jù)包未結束且當步驟12緩存的數(shù)據(jù)大小達到一個信 元的最大凈荷長度時,則生成信元頭部所需的其他信息,如信元的有效凈荷長度、信元在所 屬數(shù)據(jù)包中的編號等,然后按照所采用的信元頭部格式生成一個信元頭部,并將其存入信 息緩存中,用于組成一個信元; (2) 若數(shù)據(jù)包結束,此時步驟12中緩存的是最后一個信元的有效凈荷數(shù)據(jù),其長度可 能小于最大凈荷長度,則將該信元的有效凈荷長度、信元在數(shù)據(jù)包中的編號和尾信元標志 等信息組成信元頭部,并存入信息緩存中。
3. 如權利要求1所述的一種交換機數(shù)據(jù)包切分與重組的方法,其特征在于所述步驟16 的具體方法為: (1)若信元的有效凈荷長度為最大凈荷長度,則直接將信元頭部和有效凈荷數(shù)據(jù)組成 完整的信元,并發(fā)送到交換模塊; (2)若信元的有效凈荷長度小于最大凈荷長度,則需要在有效凈荷數(shù)據(jù)后添加填充數(shù) 據(jù),長度為最大凈荷長度減去有效凈荷長度,以達到最大凈荷長度,再將信元頭部、有效凈 荷數(shù)據(jù)和填充數(shù)據(jù)組成完整的信元,并發(fā)送到交換模塊。
4. 如權利要求1所述的一種交換機數(shù)據(jù)包切分與重組的方法,其特征在于所述步驟22 的具體方法為: (1) 若尾信元標志為無效,即此信元不為此數(shù)據(jù)包的最后一個信元,則根據(jù)信元格式和 有效凈荷長度,拆去信元頭部,提取出信元中的有效凈荷數(shù)據(jù),再根據(jù)源端口號將有效凈荷 數(shù)據(jù)依次存入對應的虛擬輸入隊列中,同時對存入此虛擬輸入隊列的此信元所屬的數(shù)據(jù)包 長度進行計數(shù); (2) 若尾信元標志為有效,即此信元為此數(shù)據(jù)包的最后一個信元,則拆去信元頭部和填 充數(shù)據(jù),提取出信元中的有效凈荷數(shù)據(jù),將有效凈荷數(shù)據(jù)存入虛擬輸入隊列,再將源端口號 和通過計數(shù)所得的此數(shù)據(jù)包長度組成一個數(shù)據(jù)包信息,并存入信息緩存中,與對應虛擬輸 入隊列中的此數(shù)據(jù)包相對應,并將此虛擬輸入隊列數(shù)據(jù)包長度的計數(shù)進行清零。
5. -種交換機數(shù)據(jù)包切分與重組的裝置,該裝置包括:切分模塊,重組模塊,切分模塊 用于接收網(wǎng)絡接口模塊發(fā)來的數(shù)據(jù)包并緩存,將其切分為若干個信元,并發(fā)送給交換模塊; 重組模塊用于接收交換模塊發(fā)來的若干信元并緩存,將這些信元的有效載荷數(shù)據(jù)重組為一 個完整的數(shù)據(jù)包,并發(fā)送到網(wǎng)絡接口模塊; 在上述交換機數(shù)據(jù)包切分與重組的裝置中,切分模塊包括數(shù)據(jù)包預切分單元、路由表 單元、信息緩存單元、數(shù)據(jù)緩存單元和信元生成與發(fā)送單元; 所述路由表單元,實現(xiàn)對數(shù)據(jù)包頭部中的源地址、目的地址與交換機端口號對應關系 的存儲; 所述數(shù)據(jù)包預切分單元,用于提取數(shù)據(jù)包頭部中生成信元頭部所需的信息,通過查找 路由表單元將源地址、目的地址信息對應為交換機中源端口號和目的端口號,并生成信元 頭部所需的其他信息,利用這些信息生成信元頭部并存入信息緩存單元中,將數(shù)據(jù)包數(shù)據(jù) 存入數(shù)據(jù)緩存單元中; 所述信息緩存單元,用于存儲數(shù)據(jù)包預切分單元所生成的信元頭部; 所述數(shù)據(jù)緩存單元,用于存儲完整的數(shù)據(jù)包數(shù)據(jù); 所述信元生成與發(fā)送單元,用于從信息緩存單元中取出信元頭部,從數(shù)據(jù)緩存單元中 取出大小等于信元頭部中有效凈荷長度的數(shù)據(jù),即信元的有效凈荷數(shù)據(jù),利用有效凈荷數(shù) 據(jù)和信元頭部,組成一個完整的信元并發(fā)送給交換模塊。 在上述交換機數(shù)據(jù)包切分與重組的裝置中,重組模塊包括信元處理單元、信息緩存單 元、若干虛擬輸入隊列和數(shù)據(jù)包生成與發(fā)送單元; 所述信元處理單元,用于將接收到的信元中的信元頭部和有效凈荷數(shù)據(jù)分離,根據(jù)信 元頭部中的源端口號,將有效凈荷數(shù)據(jù)存入對應的虛擬輸入隊列中,將源端口號和通過計 數(shù)所得的數(shù)據(jù)包長度組成數(shù)據(jù)包對應的信息,并存入信息緩存單元中; 所述虛擬輸入隊列,用于存儲經(jīng)過信元處理單元得到的信元的有效凈荷數(shù)據(jù),每一個 虛擬輸入隊列對應交換機的一個輸入端口; 所述數(shù)據(jù)包生成與發(fā)送單元,用于利用信息緩存單元中的數(shù)據(jù)包對應的信息,從對應 的虛擬輸入隊列中取出完整的數(shù)據(jù)包,并發(fā)送給網(wǎng)絡接口模塊。
6. 如權利要求5所述的一種交換機數(shù)據(jù)包切分與重組的裝置,其特征在于所述路由表 單元采用內(nèi)容可尋址存儲器實現(xiàn)。
7. 如權利要求5所述的一種交換機數(shù)據(jù)包切分與重組的裝置,其特征在于所述信息緩 存單元、數(shù)據(jù)緩存單元、虛擬輸入隊列采用先入先出存儲隊列實現(xiàn)。
【文檔編號】H04L12/931GK104158770SQ201410413780
【公開日】2014年11月19日 申請日期:2014年8月20日 優(yōu)先權日:2014年8月20日
【發(fā)明者】王憶文, 胡浩, 張微, 彭春, 郭華儉, 王曉婷, 李輝 申請人:電子科技大學
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
昌图县| 郸城县| 宜兰市| 云阳县| 玉林市| 深泽县| 孝感市| 屯留县| 梓潼县| 平乐县| 阆中市| 南郑县| 台东县| 岗巴县| 吴旗县| 同心县| 和顺县| 苍南县| 忻城县| 葵青区| 浮梁县| 辽阳市| 抚顺县| 大丰市| 沙坪坝区| 惠水县| 武平县| 康平县| 东阳市| 宜春市| 浠水县| 延安市| 阿荣旗| 正定县| 青州市| 湛江市| 会昌县| 汨罗市| 旺苍县| 常州市| 额敏县|