專利名稱:基于網(wǎng)絡(luò)處理器實(shí)現(xiàn)ip報(bào)文分片重組的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種IP(Internet Protocol,即網(wǎng)際協(xié)議)分片報(bào)文重組的方法,尤其涉及采用網(wǎng)絡(luò)處理器實(shí)現(xiàn)IP分片報(bào)文重組的方法。
背景技術(shù):
網(wǎng)絡(luò)與通信是當(dāng)今最熱和發(fā)展最快的領(lǐng)域之一,為了應(yīng)付日益繁忙的信息流,網(wǎng)絡(luò)的速度由幾年前的155Mb/s,發(fā)展到現(xiàn)在的10Gb/s,在未來的2~3年內(nèi)將會提高到40Gb/s。由于有了光纖,傳輸媒介的速度已不成問題,唯一的瓶頸則出現(xiàn)在通用處理器的處理速度上。當(dāng)網(wǎng)絡(luò)速度比較慢時(shí),通用的處理器完全趕得上數(shù)據(jù)流,并不需要專門的網(wǎng)絡(luò)處理器。后來,通用處理器不夠快了,設(shè)計(jì)者就轉(zhuǎn)向?qū)S眉呻娐?Application Specific Integrated Circuit,簡稱ASIC)。ASIC在完成規(guī)定的處理工作方面是非常卓越的,但它有兩個缺點(diǎn)一是開發(fā)的周期太長,如路由器或交換機(jī)要增加新的功能,就需要等待較長的時(shí)間;二是ASIC不是可編程的,要修改就必須經(jīng)歷一個設(shè)計(jì)和制造的周期,適應(yīng)不了當(dāng)今越來越短的開發(fā)周期。
選擇專用的網(wǎng)絡(luò)處理器替代通用處理器是一個比較好的解決辦法。網(wǎng)路處理器是專為優(yōu)化包處理而設(shè)計(jì)的。它采用多中央處理器(Central ProcessionUnit,簡稱CPU)機(jī)制,如圖1所示,包括一個用于控制面處理的主中央處理器(Host CPU)和若干個用于數(shù)據(jù)面處理的精簡指令結(jié)構(gòu)(Reduction InstructionSet Computer Architecture,簡稱RISC結(jié)構(gòu))的CPU,即RISC CPU。我們通過編程在RISC CPU上實(shí)現(xiàn)各種網(wǎng)絡(luò)協(xié)議的處理,使若干個RISC CPU可對數(shù)據(jù)面報(bào)文進(jìn)行實(shí)時(shí)并行處理,從而能夠?qū)?shù)據(jù)面的報(bào)文以其到達(dá)的速度(線速)送到下一節(jié)點(diǎn)。但由于RISC CPU是用專用的匯編指令開發(fā),且指令功能簡單,難于實(shí)現(xiàn)復(fù)雜的運(yùn)算操作,故目前網(wǎng)絡(luò)處理器主要用于IP路由設(shè)備中,而對網(wǎng)絡(luò)協(xié)議只處理到IP層,而將其用于邊緣網(wǎng)絡(luò)設(shè)備進(jìn)行高層協(xié)議處理較為困難。
實(shí)現(xiàn)IP分片重組功能是對IP上層協(xié)議進(jìn)行處理的基礎(chǔ)。目前在通用處理器上是通過遍歷鏈表的方式定位同一組分片以實(shí)現(xiàn)重組功能的,并定時(shí)器來管理用于存儲分片報(bào)文的內(nèi)存單元的使用,當(dāng)定時(shí)器到期后即將未重組完的IP報(bào)文丟棄以釋放其占用的內(nèi)存單元。在實(shí)現(xiàn)重組的過程中,每一個分片報(bào)文首先要從MAC(Media Access Control,即媒體訪問控制)芯片的緩存中拷貝的內(nèi)存中的一個臨時(shí)存儲區(qū),然后再拷貝到用于重組報(bào)文的緩沖存儲單元(buffer)中進(jìn)行重組,即通用處理器在實(shí)現(xiàn)IP分片重組時(shí)不是原位重組,必須拷貝兩次才能完成。
在網(wǎng)絡(luò)處理器上實(shí)現(xiàn)IP分片報(bào)文重組最簡單的方法就是在Host CPU上采用上述通用處理器的處理方式實(shí)現(xiàn),但這種方式?jīng)]有實(shí)際發(fā)揮網(wǎng)絡(luò)處理器的任何優(yōu)勢,因?yàn)榫W(wǎng)絡(luò)處理器的Host CPU主頻比通用處理器要低很多,且其硬件結(jié)構(gòu)的限制使得Host CPU通常不能直接對數(shù)據(jù)面報(bào)文操作,因此只有在RISCCPU上實(shí)現(xiàn)IP分片報(bào)文的重組功能才能發(fā)揮網(wǎng)絡(luò)處理器的優(yōu)勢。但由于RISCCPU采用匯編指令開發(fā),不適于采用遍歷鏈表的方式實(shí)現(xiàn)IP分片的重組,也很難通過復(fù)雜的算法來維護(hù)一個定時(shí)器隊(duì)列,因此實(shí)現(xiàn)IP分片報(bào)文的重組比較困難。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種基于網(wǎng)絡(luò)處理器實(shí)現(xiàn)IP報(bào)文分片重組的方法,以克服當(dāng)前的網(wǎng)絡(luò)處理器不適用于邊緣網(wǎng)絡(luò)設(shè)備進(jìn)行高層應(yīng)用協(xié)議處理的技術(shù)問題。
實(shí)現(xiàn)本發(fā)明所要解決的技術(shù)問題而采取的技術(shù)方案概括如下,提供一種基于網(wǎng)絡(luò)處理器實(shí)現(xiàn)IP報(bào)文分片重組的方法,包括以下步驟(1)創(chuàng)建哈希索引表;(2)分配兩片用于存儲分片IP報(bào)文的緩沖存儲區(qū);(3)從接收到的一個新的IP分片報(bào)文的IP首部中提取源IP地址、目的IP地址、標(biāo)識、片偏移和長度信息;(4)利用所述源IP地址、目的IP地址、標(biāo)識作為輸入進(jìn)行哈希運(yùn)算,根據(jù)運(yùn)算結(jié)果申請一個哈希單元;(5)從所述的其中一片緩沖存儲區(qū)中申請一個緩沖存儲單元,并判斷該片緩沖存儲區(qū)是否被申請完畢,若申請完畢,則申請使用所述的另一片緩沖存儲區(qū);(6)將IP首部保存到所述的緩沖存儲單元中;(7)根據(jù)所述接收到的IP分片報(bào)文的片偏移信息將該IP分片報(bào)文保存到所述緩沖存儲單元的相應(yīng)位置,并將該緩沖存儲單元的首地址保存到所述哈希單元中;(8)判斷所接收到的IP分片報(bào)文是否為最后一片,若是,則計(jì)算所有需要重組的IP分片報(bào)文對應(yīng)的IP報(bào)文總長度,并將IP報(bào)文總長度信息存儲到哈希單元中;(9)計(jì)算當(dāng)前已經(jīng)收到的IP分片報(bào)文的總長度,將所述總長度信息更新到哈希單元中;(10)將所述計(jì)算當(dāng)前已經(jīng)收到的IP分片報(bào)文的總長度與所述IP報(bào)文總長度比較,若不相等,繼續(xù)接收后續(xù)分片,若相等,則本組IP分片報(bào)文全部收到,重組完畢,執(zhí)行步驟(13);(11)接收后續(xù)的IP分片報(bào)文,利用其IP首部中的源IP地址、目的IP地址和標(biāo)識進(jìn)行哈希運(yùn)算,定位到相應(yīng)的哈希單元中;(12)從哈希單元中取出緩沖存儲單元首地址,根據(jù)該IP分片報(bào)文的片偏移信息將該分片報(bào)文的數(shù)據(jù)凈負(fù)荷拷貝到所述緩沖存儲單元的相應(yīng)位置,執(zhí)行步驟(8);(13)釋放該IP報(bào)文所使用的哈希Hash索引單元,釋放其占用的兩片緩沖存儲單元。
采用本發(fā)明的技術(shù)方案,與現(xiàn)有的技術(shù)相比,不僅提高了IP分片報(bào)文重組的速度和效率,而且還具有分片定位準(zhǔn)確的優(yōu)點(diǎn)。同時(shí)通過兩片緩沖存儲區(qū)機(jī)制,使在網(wǎng)絡(luò)處理器上實(shí)現(xiàn)IP分片重組成為可能,并使重組過程更為簡單有效。通過該方法可以在網(wǎng)絡(luò)處理器上進(jìn)行IP上層協(xié)議處理,從而使網(wǎng)絡(luò)處理器能夠替代通用處理器應(yīng)用于邊緣網(wǎng)絡(luò)設(shè)備中,發(fā)揮其重要作用。
圖1示出了網(wǎng)絡(luò)處理器功能結(jié)構(gòu)原理圖;圖2示出了IP報(bào)文首部格式;圖3示出了本發(fā)明IP報(bào)文分片過程示意圖;圖4示出了本發(fā)明在緩沖存儲單元中實(shí)現(xiàn)IP分片報(bào)文重組過程示意圖。
具體實(shí)施例方式
下面將結(jié)合附圖,舉例說明本發(fā)明的具體實(shí)施的方式。
圖2給出了IP報(bào)文首部格式,其中標(biāo)識、標(biāo)志和片偏移三個字段用來控制IP數(shù)據(jù)報(bào)文的分片和重組。分片后的IP分片報(bào)文的分片首部具有相同的標(biāo)識字段,且通過標(biāo)志比特位表征該報(bào)文是一個分片,而分片的順序則由片偏移來決定。IP報(bào)文的分片過程如圖3所示。
在網(wǎng)絡(luò)處理器上采用本發(fā)明方法實(shí)現(xiàn)IP分片報(bào)文重組開始時(shí),首先進(jìn)行分片重組的初始化準(zhǔn)備工作,主要完成兩個任務(wù)
1)創(chuàng)建一張哈希(Hash)索引表;2)創(chuàng)建兩個管理緩沖(buffer)存儲區(qū)的索引隊(duì)列,負(fù)責(zé)緩沖存儲單元的申請和釋放。
哈希索引表是一張信息索引表,每個哈希單元對應(yīng)一組待重組的分片報(bào)文,該單元中保存著與重組相關(guān)的關(guān)鍵信息,在本發(fā)明方法中哈希單元中保存了如下信息●IP分片報(bào)文的源IP地址;●IP分片報(bào)文的目的IP地址;●IP分片報(bào)文的16位標(biāo)識;●當(dāng)前已經(jīng)收到的IP分片報(bào)文的總長度;●所有本組分片報(bào)文重組后對應(yīng)的IP報(bào)文的總長度;●緩沖存儲單元首地址。
其中當(dāng)前已經(jīng)收到的分片報(bào)文的總長度和所有本組分片報(bào)文重組后對應(yīng)的IP報(bào)文的總長度的初始值均為0。
當(dāng)哈希單元中保存的當(dāng)前已經(jīng)收到的分片報(bào)文的總長度信息為零時(shí)表示該單元未被占用,同時(shí)說明收到的IP分片報(bào)文為一組新的分片報(bào)文;而當(dāng)該信息不為零時(shí)則說明該分片可能是一個后續(xù)分片。
當(dāng)收到一個IP分片報(bào)文時(shí),首先從該分片的IP首部中取出源IP地址、目的IP地址、標(biāo)識、片偏移及長度信息,其中源IP地址、目的IP地址和標(biāo)識能唯一標(biāo)識一組IP分片報(bào)文。利用源、目的IP地址和標(biāo)識作為輸入?yún)?shù)進(jìn)行哈希運(yùn)算,并根據(jù)哈希運(yùn)算結(jié)果定位到一個哈希單元。通過判斷當(dāng)前已經(jīng)收到的IP分片報(bào)文的總長度是否為零來確定是否為一個新的哈希單元,根據(jù)判斷的結(jié)果不同具體分為以下三種情況第一種情況是當(dāng)前已經(jīng)收到的IP報(bào)文的總長度為零,即收到一個新的IP分片報(bào)文,處理步驟如下a)將該報(bào)文的源IP地址、目的IP地址、標(biāo)識和長度信息保存到哈希單元中;b)通過索引隊(duì)列為其申請一個緩沖存儲單元,將IP首部保存到緩沖存儲單元中,并將數(shù)據(jù)凈負(fù)荷根據(jù)片偏移信息保存到存儲區(qū)的相應(yīng)位置。
保存拷貝過程是由RISC CPU直接控制的,根據(jù)片偏移信息決定數(shù)據(jù)凈荷在緩沖存儲單元中的位置。當(dāng)一片緩沖存儲區(qū)中的存儲單元被申請完后,立即通過另一索引隊(duì)列從另一片緩沖存儲區(qū)申請緩沖存儲單元;c)更新哈希單元中當(dāng)前已經(jīng)收到的分片報(bào)文總長度信息;
d)通過該分片報(bào)文的IP首部的標(biāo)志位判斷該分片是否為最后一個分片,若是,則根據(jù)片偏移計(jì)算重組后整個IP報(bào)文的總長度,并將該長度信息保存到哈希單元的所有本組分片報(bào)文重組后對應(yīng)的IP報(bào)文的總長度的位置。
第二種情況是當(dāng)前已經(jīng)收到的報(bào)文的總長度不為零,則比較該IP分片報(bào)文IP首部中的源、目的IP地址和標(biāo)識與哈希單元中保存的源、目的IP地址和標(biāo)識是否全部相等,若全部相等,則該分片報(bào)文為本組后續(xù)的IP分片報(bào)文,處理步驟如下a)計(jì)算該IP分片報(bào)文數(shù)據(jù)凈負(fù)荷的長度,累加到哈希單元中的當(dāng)前已經(jīng)收到分片報(bào)文總長度的信息位;b)從哈希單元中取出緩沖存儲單元首地址,并根據(jù)該片報(bào)文的片偏移將數(shù)據(jù)凈負(fù)荷保存到存儲單元的相應(yīng)位置,保存拷貝過程是由RISC CPU直接控制的,根據(jù)片偏移信息決定數(shù)據(jù)凈荷在緩沖存儲單元中的位置,拷貝的同時(shí)完成分片的重組;c)通過該分片報(bào)文的IP首部的標(biāo)志位判斷該分片報(bào)文是否為最后一個分片,若是,則根據(jù)片偏移計(jì)算重組后整個IP報(bào)文的總長度,并將該長度信息保存到哈希單元的所有本組分片報(bào)文重組后對應(yīng)的IP報(bào)文的總長度的位置;d)判斷哈希單元中的當(dāng)前收到分片報(bào)文總長度與重組后報(bào)文總長度是否相等,如果相等,則表示本組所有的IP分片報(bào)文全部收齊,重組完成,將當(dāng)前已經(jīng)收到分片報(bào)文總長度信息和所有本組分片報(bào)文重組后對應(yīng)的IP報(bào)文的總長度信息清零以釋放哈希單元。
第三種情況是當(dāng)前已經(jīng)收到的報(bào)文的總長度不為零,比較該分片報(bào)文IP首部中的源、目的IP地址和標(biāo)識與哈希單元中存儲的源、目的IP地址和標(biāo)識,如不全相等或全不相等,則表明產(chǎn)生哈希沖突,并確定該分片報(bào)文為一個新的分片報(bào)文,處理步驟如下a)將哈希單元中的當(dāng)前已經(jīng)收到分片報(bào)文總長度信息和所有本組分片報(bào)文重組后對應(yīng)的IP報(bào)文的總長度信息清零;b)將其作為一個新的分片報(bào)文,按上述第一種情況處理。
從以上的描述可以看出每個IP分片報(bào)文在整個重組過程只拷貝了一次,即從MAC外設(shè)拷貝到緩沖存儲單元中。在拷貝過程中根據(jù)報(bào)文的片偏移信息將數(shù)據(jù)凈荷存放到緩沖存儲單元的相應(yīng)位置,從而在實(shí)現(xiàn)原位重組。圖4給出了本發(fā)明在緩沖存儲單元中實(shí)現(xiàn)原位重組的應(yīng)用過程示意圖。我們以以太網(wǎng)傳輸為例,如圖中所示標(biāo)準(zhǔn)MAC頭長度為14字節(jié),IP頭典型長度為20字節(jié),因?yàn)镮P分片報(bào)文的凈荷長度是以8字節(jié)為單位的,故為描述方便,圖4中舉例給出的緩沖存儲器(buffer)亦為8字節(jié)。
綜上所述,本發(fā)明提供的一種基于網(wǎng)絡(luò)處理器實(shí)現(xiàn)IP報(bào)文分片重組的方法,包括以下步驟(1)創(chuàng)建哈希索引表;(2)分配兩片用于存儲分片IP報(bào)文的緩沖存儲區(qū);(3)從接收到的一個新的IP分片報(bào)文的IP首部中提取源IP地址、目的IP地址、標(biāo)識、片偏移和長度信息;(4)利用所述源IP地址、目的IP地址、標(biāo)識作為輸入進(jìn)行哈希運(yùn)算,根據(jù)運(yùn)算結(jié)果申請一個哈希單元;(5)從所述的其中一片緩沖存儲區(qū)中申請一個緩沖存儲單元,并判斷該片緩沖存儲區(qū)是否被申請完畢,若申請完畢,則申請使用所述的另一片緩沖存儲區(qū);(6)將IP首部保存到所述的緩沖存儲單元中;(7)根據(jù)所述接收到的IP分片報(bào)文的片偏移信息將該IP分片報(bào)文保存到所述緩沖存儲單元的相應(yīng)位置,并將該緩沖存儲單元的首地址保存到所述哈希單元中;(8)判斷所接收到的IP分片報(bào)文是否為最后一片,若是,則計(jì)算所有需要重組的IP分片報(bào)文對應(yīng)的IP報(bào)文總長度,并將IP報(bào)文總長度信息存儲到哈希單元中;(9)計(jì)算當(dāng)前已經(jīng)收到的IP分片報(bào)文的總長度,將所述總長度信息更新到哈希單元中;(10)將所述計(jì)算當(dāng)前已經(jīng)收到的IP分片報(bào)文的總長度與所述IP報(bào)文總長度比較,若不相等,繼續(xù)接收后續(xù)分片,若相等,則本組IP分片報(bào)文全部收到,重組完畢,執(zhí)行步驟(13);(11)接收后續(xù)的IP分片報(bào)文,利用其IP首部中的源IP地址、目的IP地址和標(biāo)識進(jìn)行哈希運(yùn)算,定位到相應(yīng)的哈希單元中;(12)從哈希單元中取出緩沖存儲單元首地址,根據(jù)該IP分片報(bào)文的片偏移信息將該分片報(bào)文的數(shù)據(jù)凈負(fù)荷拷貝到所述緩沖存儲單元的相應(yīng)位置,執(zhí)行步驟(8);(13)釋放該IP報(bào)文所使用的哈希索引單元,釋放其占用的兩片緩沖存儲單元。
同時(shí)可以看出,本發(fā)明所提供方法有以下三大特征首先,采用哈希運(yùn)算來定位一組IP分片報(bào)文,與遍歷鏈表的相比,采用哈希運(yùn)算具有分片定位速度快且定位準(zhǔn)確的優(yōu)點(diǎn);其次,在重組過程無需定時(shí)器,而是采用雙片緩沖存儲區(qū)機(jī)制,當(dāng)一片緩沖存儲區(qū)被用盡后立刻使用另一片緩沖存儲區(qū)存放待重組的分片。采用雙片緩沖管理方式,保證了由于所有分片未全部收到而掛死的緩沖存儲單元最終能夠被釋放。
最后,可實(shí)現(xiàn)原位重組。網(wǎng)絡(luò)處理器中的RISC CPU可直接操作和控制內(nèi)存與MAC外設(shè)間的數(shù)據(jù)傳輸,從而在將數(shù)據(jù)報(bào)文從MAC外設(shè)的緩沖區(qū)拷貝到內(nèi)存的過程中即可完成重組功能,無需二次拷貝。
綜上所述,本發(fā)明所提出的基于網(wǎng)絡(luò)處理器實(shí)現(xiàn)IP分片報(bào)文重組的方法與通用處理器所采用的IP分片報(bào)文重組方法相比,具有無需定時(shí)器,原位即可實(shí)現(xiàn)重組的優(yōu)點(diǎn),它通過哈希運(yùn)算來定位一組IP分片,不僅提高了重組的速度,而且使重組過程變得更加簡單有效,從而使網(wǎng)絡(luò)處理器能適用于邊緣網(wǎng)絡(luò)設(shè)備,進(jìn)而替代通用處理器來進(jìn)行IP上層應(yīng)用協(xié)議處理。例如在本發(fā)明的可實(shí)施的一個典型應(yīng)用場合;WCDMA(Wideband Code Division MultipleAccess,即寬帶碼分多址系統(tǒng))系統(tǒng)的分組域?yàn)閷?shí)現(xiàn)高速、寬帶的多媒體數(shù)據(jù)業(yè)務(wù),通用處理器已不滿足要求,必須采用網(wǎng)絡(luò)處理器實(shí)現(xiàn)。其兩大功能實(shí)體GGSN(Gateway GPRS Support Node,即網(wǎng)關(guān)GPRS支持點(diǎn),其中GPRS即General Packet Radio Service——無線分組業(yè)務(wù))和SGSN(Serving GPRSSupport Node,即服務(wù)GPRS支持點(diǎn))作為邊緣網(wǎng)絡(luò)設(shè)備要對承載在GTP(GPRSTunnel Protocol,即GPRS通道協(xié)議)協(xié)議之上的用戶面數(shù)據(jù)報(bào)文都進(jìn)行處理,而GTP協(xié)議又是承載在IP協(xié)議之上的,故要處理GTP封裝的分組數(shù)據(jù)業(yè)務(wù),可采用本發(fā)明提供的基于網(wǎng)絡(luò)處理器實(shí)現(xiàn)IP分片報(bào)文的重組的方法。
盡管參照實(shí)施例對所公開的涉及基于網(wǎng)絡(luò)處理器實(shí)現(xiàn)IP報(bào)文分片重組的方法進(jìn)行了特別描述,本領(lǐng)域技術(shù)人員將能理解,在不偏離本發(fā)明的范圍和精神的情況下,可以對它進(jìn)行形式和細(xì)節(jié)的種種顯而易見的修改。因此,以上描述的實(shí)施例是說明性的而不是限制性的,在不脫離本發(fā)明的精神和范圍的情況下,所有的變化和修改都在本發(fā)明的范圍之內(nèi)。
權(quán)利要求
1.一種基于網(wǎng)絡(luò)處理器實(shí)現(xiàn)IP報(bào)文分片重組的方法,其特征在于包括以下步驟(1)創(chuàng)建哈希索引表;(2)分配兩片用于存儲分片IP報(bào)文的緩沖存儲區(qū);(3)從接收到的一個新的IP分片報(bào)文的IP首部中提取源IP地址、目的IP地址、標(biāo)識、片偏移和長度信息;(4)利用所述源IP地址、目的IP地址、標(biāo)識作為輸入進(jìn)行哈希運(yùn)算,根據(jù)運(yùn)算結(jié)果申請一個哈希單元;(5)從所述的其中一片緩沖存儲區(qū)中申請一個緩沖存儲單元,并判斷該片緩沖存儲區(qū)是否被申請完畢,若申請完畢,則申請使用所述的另一片緩沖存儲區(qū);(6)將IP首部保存到所述的緩沖存儲單元中;(7)根據(jù)所述接收到的IP分片報(bào)文的片偏移信息將該IP分片報(bào)文保存到所述緩沖存儲單元的相應(yīng)位置,并將該緩沖存儲單元的首地址保存到所述哈希單元中;(8)判斷所接收到的IP分片報(bào)文是否為最后一片,若是,則計(jì)算所有需要重組的IP分片報(bào)文對應(yīng)的IP報(bào)文總長度,并將IP報(bào)文總長度信息存儲到哈希單元中;(9)計(jì)算當(dāng)前已經(jīng)收到的IP分片報(bào)文的總長度,將所述總長度信息更新到哈希單元中;(10)將所述計(jì)算當(dāng)前已經(jīng)收到的IP分片報(bào)文的總長度與所述IP報(bào)文總長度比較,若不相等,繼續(xù)接收后續(xù)分片,若相等,則本組IP分片報(bào)文全部收到,重組完畢,執(zhí)行步驟(13);(11)接收后續(xù)的IP分片報(bào)文,利用其IP首部中的源IP地址、目的IP地址和標(biāo)識進(jìn)行哈希運(yùn)算,定位到相應(yīng)的哈希單元中;(12)從哈希單元中取出緩沖存儲單元首地址,根據(jù)該IP分片報(bào)文的片偏移信息將該分片報(bào)文的數(shù)據(jù)凈負(fù)荷拷貝到所述緩沖存儲單元的相應(yīng)位置,執(zhí)行步驟(8);(13)釋放該IP報(bào)文所使用的哈希索引單元,釋放其占用的兩片緩沖存儲單元。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于所述當(dāng)前已經(jīng)收到的IP分片報(bào)文的總長度和所有需要重組的IP分片報(bào)文對應(yīng)的IP報(bào)文總長度信息的初始值均為0。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于步驟(11)還包括以下步驟(a)比較該后續(xù)IP分片報(bào)文IP首部中的源、目的IP地址和標(biāo)識與哈希單元中保存的源、目的IP地址和標(biāo)識是否相等,若全部相等,則繼續(xù)轉(zhuǎn)入步驟(12)處理;否則,(b)將哈希單元中的當(dāng)前已經(jīng)收到分片報(bào)文總長度信息和所有需要重組的IP分片報(bào)文對應(yīng)的IP報(bào)文總長度信息清零,轉(zhuǎn)入步驟(4)繼續(xù)處理。
全文摘要
本發(fā)明公開了一種基于網(wǎng)絡(luò)處理器實(shí)現(xiàn)IP報(bào)文分片重組的方法,包括以下步驟創(chuàng)建哈希索引表;分配兩片用于存儲分片IP報(bào)文的緩沖存儲區(qū);從接收到的一個新的IP分片報(bào)文的IP首部中提取源IP地址、目的IP地址、標(biāo)識、片偏移和長度信息;申請一個哈希單元;從其中一片緩沖存儲區(qū)中申請一個緩沖存儲單元;將IP首部保存到所述的緩沖存儲單元中;接收后續(xù)的IP分片報(bào)文,根據(jù)該IP分片報(bào)文的片偏移信息將該分片報(bào)文的數(shù)據(jù)凈負(fù)荷拷貝到所述緩沖存儲單元的相應(yīng)位置。采用本發(fā)明的技術(shù)方案,通過兩片緩沖存儲區(qū)機(jī)制,使在網(wǎng)絡(luò)處理器上實(shí)現(xiàn)IP分片重組成為可能,并使重組過程更為簡單有效,實(shí)現(xiàn)了原為重組。
文檔編號H04L29/02GK1494274SQ02137798
公開日2004年5月5日 申請日期2002年10月31日 優(yōu)先權(quán)日2002年10月31日
發(fā)明者肖煒丹 申請人:深圳市中興通訊股份有限公司