專利名稱:一種ip報(bào)文重組的方法
如圖5所示,當(dāng)業(yè)務(wù)板需要自身完成數(shù)據(jù)鏈路主備倒換功能,即業(yè)務(wù)板本身具有主備倒換功能時(shí),對(duì)板主備用指示/告警信號(hào)和本板主備用指示/告警信號(hào)都用作主備用指示信號(hào),主備倒換模塊主要依據(jù)本板的狀態(tài)信息和對(duì)板的主備用情況完成主備倒換功能,同時(shí)將本板的主備用信息送給主控板,主控板依據(jù)此信號(hào)選擇對(duì)應(yīng)鏈路的切換;如圖6所示,當(dāng)業(yè)務(wù)板自身不實(shí)現(xiàn)主備倒換功能,即業(yè)務(wù)板本身不具有主備倒換功能,而只是依據(jù)主控板送過來的主備用指示信號(hào)選擇自己的主用鏈路時(shí),對(duì)板主備用/告警信號(hào)和本板主備用/告警信號(hào)都用作告警信號(hào),這時(shí)不需要主備倒換模塊,而只是告警模塊,具有告警功能即可。告警模塊可以不檢測(cè)對(duì)板送過來的告警信號(hào),只是根據(jù)CPU接口模塊告之的自身的工作情況決定是否送出告警信號(hào)。這時(shí)業(yè)務(wù)板之間可以不需要進(jìn)行任何通信,即業(yè)務(wù)板之間的倒換控制邏輯芯片之間可以不相互連接。
下面分別對(duì)業(yè)務(wù)板本身具有主備倒換功能和不具有主備倒換功能時(shí)的情況分別進(jìn)行說明(1)對(duì)于需要盡量減小主控板負(fù)擔(dān)的應(yīng)用里,可以選用業(yè)務(wù)板的倒換獨(dú)立于主控板的方式,即上面所述業(yè)務(wù)板自身完成主備倒換功能,此時(shí)業(yè)務(wù)板送給主控板的狀態(tài)指示也就是業(yè)務(wù)板本身的主備用指示。和業(yè)務(wù)板根據(jù)主控板送的主備用指示信號(hào)來決定自己的主用鏈路一樣,主控板也同樣是根據(jù)業(yè)務(wù)板上送的主備用指示信號(hào)來確定自己接口芯片的主用鏈路,兩邊也同樣是用主備用指示信號(hào)的邏輯關(guān)系來做選擇,倒換速度很快,邏輯關(guān)系列表如下表一 業(yè)務(wù)板根據(jù)主控板所送的主備用指示信號(hào)決定接口芯片的主用鏈路
其中對(duì)分片重組起到關(guān)鍵作用的是Total Length、Identification、Flags、Fragment Offset這幾個(gè)域。同一個(gè)IP報(bào)文進(jìn)行分片操作時(shí),Identification一直保持,即多個(gè)分片使用同一個(gè)Identification,Identification結(jié)合SIP和DIP可以準(zhǔn)確識(shí)別哪些報(bào)文是同一個(gè)IP報(bào)文;Flags和Fragment Offset結(jié)合使用,進(jìn)行分片時(shí),DF(Don’t Fragment)比特設(shè)置為0,表示可以進(jìn)行分片,這時(shí)如果Flags中的Bit2的值為1,則表示當(dāng)前IP報(bào)文是一個(gè)IP包的其中一段分片,并且不是最后一個(gè)分片,這時(shí)結(jié)合Fragment Offset域繼續(xù)判斷;如果Flags的Bit2為1而FragmentOffset=0,表示該IP報(bào)文為第一個(gè)分片,而且后續(xù)有分片;如果Flags的Bit2為1而Fragment Offset不是0,表示該IP報(bào)文為中間的一個(gè)分片;如果Flags的Bit2為0而Fragment Offset不是0,表示該報(bào)文是最后一個(gè)分片。
重組時(shí)根據(jù)Fragment Offset和IP Total Length以及IHL進(jìn)行,用IPTotal Length減去IHL*4(用IHL域的值乘以4就可以得到IP報(bào)文頭部數(shù)據(jù)的字節(jié)長度,因?yàn)镮HL的單位是4Bytes。)獲得當(dāng)前凈荷長度,然后根據(jù)Fragment Offset*8(Fragment Offset的單位是8Bytes,乘以8為了獲得字節(jié)長度)獲得當(dāng)前凈荷第一個(gè)字節(jié)所在位置,然后存入相應(yīng)的位置,所有的分片都到達(dá)后就可以完成重組。
舉例說明分片重組的過程如附圖1所示假設(shè)分片前報(bào)文IHL=5,Total Length=800,F(xiàn)lags=0,F(xiàn)ragment Offset=0,MTU為512;則報(bào)文1的IHL1=5,TotalLength1=508,F(xiàn)lags1=1,F(xiàn)ragment Offset1=0;報(bào)文2的IHL2=5,Total Length2=312,F(xiàn)lags2=0,F(xiàn)ragment Offset2=61。其中TotalLength1+Total Length2=508+312=820,比Totaol Length多出的20字節(jié)為新增的IP頭,并且由于偏移量的單位為8Byte,所以非尾片的凈荷長度都是8Byte的整數(shù)倍,MTU為512Byte,去除IP頭IHL*4=5*4=20Byte后得到512-20=492Byte,492Byte不是8Byte的整數(shù)倍,就取488Byte,加上IP頭得到488+20=508Byte。由于報(bào)文1的凈荷為488Byte,所以報(bào)文2的Fragment Offset就是488/8=61,Total Length2為總凈荷長度(TotalLength-IHL*4=800-20=780Byte)減去報(bào)文1的凈荷長度488Byte加上報(bào)文2的IP頭20Byte得到780-488+20=312Byte。
如附圖2所示假設(shè)重組前報(bào)文1的IHL1=5,Total Length1=1012,F(xiàn)Iags1=1,F(xiàn)ragment Offset1=0;報(bào)文2的IHL2=5,Total Length2=312,F(xiàn)lags2=0,F(xiàn)ragment Offset2=124。則重組后的報(bào)文IHL=5,TotalLength=1304,F(xiàn)lags1=0,F(xiàn)ragment Offset=0。
其中報(bào)文1的凈荷長度為Total Length1-IHL1*4=1012-20=992Byte,F(xiàn)ragment Offset1=0,F(xiàn)lags1=1,表示報(bào)文1有后續(xù)報(bào)文并且報(bào)文1的后續(xù)報(bào)文偏移量應(yīng)該是0*8+992=992Byte,而報(bào)文2的Fragment Offset2=124,則偏移量為124*8=992Byte,所以報(bào)文1和報(bào)文2是相連的,并且Flags2=0表示報(bào)文2為最后一個(gè)分片,此時(shí)就得到了原來的報(bào)文重組完成,重組后的報(bào)文Flags=0,F(xiàn)ragment Offset=0,TotalLength為報(bào)文1的凈荷長度(992Byte)加上報(bào)文2得凈荷長度(TotalLength 2-IHL2*4=312-20=292Byte)加上IP報(bào)文頭20Byte為992+292+20=1304Byte。
IP報(bào)文的分片一般在用戶終端設(shè)備以及MTU(Maximum TransmissionUnit最大傳輸單元)比較小的中間路由設(shè)備進(jìn)行操作,但I(xiàn)P報(bào)文的重組基本上都在用戶終端設(shè)備,即DIP(Destination IP Address目標(biāo)IP地址)所屬設(shè)備進(jìn)行,對(duì)單一的終端設(shè)備而言,流量不大,處理IP報(bào)文重組對(duì)性能需求不高;但隨著L2TP(Layer 2 Tunnel Protocol)等隧道技術(shù)出現(xiàn),用戶報(bào)文會(huì)在某個(gè)匯聚點(diǎn)封裝上L2TP等IP類封裝,這時(shí),由于增加了封裝頭(如果設(shè)備在用戶報(bào)文上添加L2TP封裝則報(bào)文長度最少增加34字節(jié)),很容易導(dǎo)致封裝后的報(bào)文的長度超過上述的以太網(wǎng)承載IP報(bào)文的長度限制,就必須在增加封裝頭和剝離封裝頭的設(shè)備上再一次進(jìn)行IP報(bào)文的分片和重組。
IP重組如果支持全部長度65535Byte(IP凈荷長度)將需要大量的緩存,因?yàn)樗淼拦δ芤话闶菍⒃瓉淼膱?bào)文作為凈荷進(jìn)行新的封裝,而原來的報(bào)文一般由于以太網(wǎng)等長度限制不會(huì)超出1600Byte,這就使得隧道封裝后的報(bào)文長度就不會(huì)太長,小于2000Byte,而一般最小的MTU在512Byte左右,分片數(shù)就在4片以內(nèi),因此隧道功能一般只需要重組少量分片就可以了,所以有些設(shè)備僅僅只能支持幾個(gè)分片,因此對(duì)整個(gè)報(bào)文的長度有一定的限制,例如2000Byte。
但是,由于一些特殊的協(xié)議報(bào)文也是分片報(bào)文,并且其長度超出增加封裝頭和剝離封裝頭的設(shè)備IP重組的長度限制,現(xiàn)有技術(shù)對(duì)此問題的解決方案之一是不論什么IP報(bào)文,一旦分片長度的和超出重組長度限制,一律丟棄。此方案的不能針對(duì)具體情況采取合理措施,簡單的丟棄超長的報(bào)文很有可能導(dǎo)致系統(tǒng)不穩(wěn)定?,F(xiàn)有技術(shù)對(duì)上述問題的解決方案之二是設(shè)置一定的過濾功能,針對(duì)各種不同協(xié)議類型的報(bào)文決定是否進(jìn)行重組還是直接透傳,如果是特殊協(xié)議的報(bào)文就直接透傳,由終端設(shè)備進(jìn)行重組。這種方案也有其不足首先過濾方法需要分析到較深的數(shù)據(jù)結(jié)構(gòu),處理復(fù)雜,并且種類比較多,過濾的內(nèi)容太多;其次由于大量的報(bào)文信息都存在在第一個(gè)分片的數(shù)據(jù)中,如果第一個(gè)分片丟棄或者來到太晚,難以分析其他的分片內(nèi)容。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種IP報(bào)文分片重組的方法,以解決現(xiàn)有技術(shù)中對(duì)于超出設(shè)備重組長度限制的IP分片不能簡單有效處理的問題。
為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案如下一種重組IP報(bào)文的方法,所述的方法包括如下步驟a、選路模塊將小于重組設(shè)備的重組長度限制的IP分片轉(zhuǎn)發(fā)重組模塊,將大于重組長度限制的IP分片的直接透傳轉(zhuǎn)發(fā),將正好跨重組長度限制的IP分片透傳轉(zhuǎn)發(fā)的同時(shí)將其偏移量傳給重組模塊參與重組;b、重組模塊根據(jù)選路模塊轉(zhuǎn)發(fā)的IP分片和偏移量進(jìn)行重組后作為新的IP分片轉(zhuǎn)發(fā)。
其中步驟a之前還包括所述的IP報(bào)文在隧道封裝時(shí)進(jìn)行分片。
其中步驟a具體包括選路模塊將IP分片的偏移量和凈荷長度與所述重組設(shè)備的重組凈荷長度限制進(jìn)行比較,如果IP分片的偏移量加上其凈荷長度后小于所述的重組凈荷長度限制,將該IP分片轉(zhuǎn)發(fā)重組模塊;如果IP分片的偏移量加上該分片報(bào)文凈荷長度后大于所述的重組凈荷長度限制,直接透傳轉(zhuǎn)發(fā)該IP分片;如果IP分片正好跨重組凈荷長度限制線,將該IP分片轉(zhuǎn)發(fā)的同時(shí)將其偏移量傳給重組模塊參與重組。
其中所述的IP分片的凈荷長度為IP分片的總長度減去IP頭長度。
其中步驟a具體包括選路模塊將IP分片的偏移量和整個(gè)長度與所述重組設(shè)備的重組總長度限制進(jìn)行比較,如果IP分片的偏移量加上其整個(gè)長度后小于所述的重組總長度限制,將該IP分片轉(zhuǎn)發(fā)重組模塊;如果IP分片的偏移量加上該分片報(bào)文整個(gè)長度后大于所述的重組總長度限制,直接透傳轉(zhuǎn)發(fā)該IP分片;如果IP分片正好跨重組總長度限制線,將該IP分片轉(zhuǎn)發(fā)的同時(shí)將其偏移量傳給重組模塊參與重組。
其中步驟b具體包括b1、重組模塊將收到的小于重組長度限制的IP分片根據(jù)偏移量的值偏移后存儲(chǔ)到緩存中;b2、重組模塊將收到的正好跨重組長度限制線的IP分片的偏移量與所述的小于重組長度限制的IP分片重組為新的IP分片后轉(zhuǎn)發(fā)。
其中步驟b2還包括將新的IP分片的IP控制標(biāo)志設(shè)置為1并將其偏移量設(shè)置為0,表明其后還有分片并且新的分片為第一個(gè)分片。
其中步驟b之后還包括終端設(shè)備將新的IP分片和所述的直接透傳轉(zhuǎn)發(fā)的IP分片重組。
本發(fā)明克服現(xiàn)有技術(shù)的不足,通過判斷是否虛尾片的方式對(duì)沒有超出重組長度限制的分片、超出長度限制的分片和正好跨越長度限制的分片分別處理,只通過判斷分片長度范圍就可以將超出重組能力的報(bào)文轉(zhuǎn)發(fā),并保證沒有超出長度限制的IP報(bào)文能夠正常重組,簡化了對(duì)IP分片的重組實(shí)現(xiàn)方法,降低實(shí)現(xiàn)成本。
圖1為現(xiàn)有技術(shù)對(duì)IP報(bào)文分片示意圖;圖2為現(xiàn)有技術(shù)對(duì)IP報(bào)文重組示意圖;圖3為本發(fā)明IP報(bào)文重組原理圖;圖4為實(shí)施例的IP報(bào)文重組示意圖。
具體實(shí)施例方式
本發(fā)明的基本原理是對(duì)于由L2TP等各種基于IP的隧道技術(shù)的匯聚設(shè)備增加封裝頭后的報(bào)文分片重組時(shí),對(duì)超出重組長度限制的分片、小于重組長度限制的分片和正好跨越重組長度限制的分片分別處理,對(duì)小于重組長度先限制的分片將其轉(zhuǎn)發(fā)到重組模塊進(jìn)行重組,將大于重組長度限制的分片將其直接透傳轉(zhuǎn)發(fā),對(duì)于正好跨越重組長度限制的分片在直接透傳轉(zhuǎn)發(fā)的同時(shí)將其虛尾片發(fā)給重組模塊,重組模塊根據(jù)小于重組長度限制的分片和虛偽片完成重組。
如附圖3所示,A、B和C為一個(gè)IP報(bào)文的三個(gè)分片,其中A、B為重組凈荷長度范圍內(nèi)的兩個(gè)分片,C為第一個(gè)超出重組凈荷長度范圍的分片,也就是說,C為正好跨越重組長度限制的分片。在選路模塊,判斷分片長度和偏移量后,將A、B轉(zhuǎn)給重組模塊,C直接轉(zhuǎn)發(fā),同時(shí)將含有C的Fragment Offset的虛尾片也發(fā)給重組模塊,重組模塊根據(jù)A、B以及C的虛尾片將A、B兩個(gè)分片重組為一個(gè)新的分片,同時(shí)不影響其他分片的重組。
具體實(shí)現(xiàn)方法就是,這類設(shè)備會(huì)有一個(gè)重組長度上限,可以是重組IP凈荷長度,也可以是重組整個(gè)IP分片長度(含IP頭)(如果是重組整個(gè)報(bào)文的長度,將包括IP報(bào)文頭長度,那就不用減去IHL*4部分),現(xiàn)使用重組IP凈荷長度進(jìn)行說明,將其定義為LenMax,當(dāng)收到一個(gè)IP報(bào)文分片時(shí),判斷Fragment Offset*8以及Fragment Offset*8+Total Length-IHL*4和LenMax的關(guān)系,因?yàn)樵贗P頭中有以下幾個(gè)字段用來進(jìn)行分片重組Flag和Fragment,F(xiàn)lag域用來表示當(dāng)前幀是否最后一個(gè)分片,F(xiàn)ragment表示當(dāng)前分片的第一個(gè)字節(jié)在分片前的報(bào)文中的偏移量(8Byte為單位)。重組時(shí)我們可以通過這兩個(gè)數(shù)據(jù)進(jìn)行判斷,如果Flag域表示當(dāng)前幀是最后一個(gè)分片,并且Fragment值為0就表示該IP幀沒有進(jìn)行分片,不需要重組;其他的報(bào)文都是分片報(bào)文。重組報(bào)文時(shí)可以將報(bào)文的不同分片根據(jù)Fragment值偏移后存儲(chǔ)到緩存中來進(jìn)行重組,同樣要判斷重組是否完成,也要判斷存儲(chǔ)到緩存中的報(bào)文是否有了Fragment=0的分片(首分片),是否有了Flag域?yàn)樽詈笠粋€(gè)分片的分片報(bào)文(尾分片),以及這兩個(gè)分片之間的所有分片是否都已經(jīng)存儲(chǔ),即所有分片都已經(jīng)頭尾相聯(lián),此時(shí)我們就可以判斷出報(bào)文已經(jīng)重組成功。
(1)如果Fragment Offset*8+Total Length-IHL*4≤LenMax,則表示分片偏移量加上該分片報(bào)文凈荷長度后小于重組長度限制,該分片報(bào)文可以參加重組處理,說明該分片可以存儲(chǔ)在分片的緩存中。
(2)如果Fragment Offset*8>LenMax,說明分片偏移量加上該分片報(bào)文凈荷長度后大于重組長度限制,該分片報(bào)文就直接透傳轉(zhuǎn)發(fā),因?yàn)檫@個(gè)分片已經(jīng)無法進(jìn)行重組。
(3)如果Fragment Offset*8≤LenMax<Fragment Offset*8+TotalLength-IHL*4,因?yàn)镕ragment Offset*8表示當(dāng)前報(bào)文凈荷在整個(gè)IP報(bào)文中的起始位置,由于Fragment Offset*8≤LenMax,所以當(dāng)前報(bào)文凈荷至少有一部分在重組長度限制線之內(nèi);Fragment Offset*8+Total Length-IHL*4是當(dāng)前報(bào)文凈荷在整個(gè)IP報(bào)文中的結(jié)束位置,由于LenMax<FragmentOffset*8+Total Length-IHL*4,所以當(dāng)前報(bào)文凈荷至少有一部分在重組長度限制線之外,結(jié)合以上兩點(diǎn),可以得出,當(dāng)前報(bào)文的凈荷跨重組長度限制線,因此將該分片報(bào)文轉(zhuǎn)發(fā),但是要將Fragment Offset*8這個(gè)值傳給重組模塊參與重組,這是為了能夠讓之前的分片能夠有一個(gè)重組完成的標(biāo)志,需要將這個(gè)報(bào)文的偏移量傳給重組模塊,但重組模塊的緩存本身不能存放該分片數(shù)據(jù),只有將數(shù)據(jù)透傳。
當(dāng)重組模塊收到上述(3)報(bào)文的Fragment Offset*8的值,這里簡稱這類報(bào)文為虛尾片(Pseudo Tail),如果小于長度限制的分片已經(jīng)全部收到并重組完成(此時(shí)重組后的報(bào)文長度和Fragment Offset*8相等,就可以判斷出長度限制之內(nèi)的所有分片都已經(jīng)收到),就可以將這部分報(bào)文以第一個(gè)分片的數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)發(fā)出去,同時(shí)將Flags的bits2設(shè)為1,表示不是最后一個(gè)分片。通過這個(gè)方法,就可以將長度限制以下的報(bào)文進(jìn)行重組,而超出長度限制的報(bào)文能夠正常轉(zhuǎn)發(fā)。
以下通過具體的例子說明如附圖4所示,假設(shè)重組前報(bào)文A的IHLA=5,Total LengthA=1020,F(xiàn)lagsA=1,F(xiàn)ragment OffsetA=0;報(bào)文B的IHLB=5,Total LengthB=1020,F(xiàn)lagsB=1,F(xiàn)ragment OffsetB=125;報(bào)文C的IHLC=5,TotalLengthC=1020,F(xiàn)lagsC=1,F(xiàn)ragment OffsetC=250;報(bào)文D的IHLD=5,Total LengthD=320,F(xiàn)lagsD=0,F(xiàn)ragment OffsetB=375。如圖,在采用本方案的中轉(zhuǎn)設(shè)備的LenMax=2048Byte,中轉(zhuǎn)設(shè)備將A、B報(bào)文重組為報(bào)文E,透傳報(bào)文C、D,終端設(shè)備將E、C、D重組為報(bào)文F完成重組。在中轉(zhuǎn)設(shè)備中的處理過程如下1)中轉(zhuǎn)設(shè)備(簡稱設(shè)備)收到報(bào)文A,F(xiàn)ragment OffsetA*8+TotalLength A-IHLA*4=0*8+1020-5*4=1000≤LenMax(2048),所以該報(bào)文可以參與重組,并且由于Flags=1,Offset=0,表示為第一分片;2)設(shè)備收到報(bào)文B,F(xiàn)ragment OffsetB*8+Total Length B-IHLB*4=125*8+1020-5*4=2000≤LenMax(2048),所以該報(bào)文可以參與重組,并且Fragment Offset B*8=Total Length A-IHLA*4,所以報(bào)文A和B凈荷相連,但FlagsB=1,所以重組還沒有完成;
3)設(shè)備收到報(bào)文C,F(xiàn)ragment Offset C*8=2000≤LenMax(2048)<Fragment Offset C*8+Total Length C-IHL C*4=250*8+1020-5*4=3000,說明該分片正好跨LenMax,該報(bào)文不能存入緩存中,而要透傳,但為了能夠讓報(bào)文A、B能夠重組成為一個(gè)新的報(bào)文,必須給A、B報(bào)文一個(gè)尾片信息,由于報(bào)文C并沒有真正參與重組,僅提供一個(gè)Offset以及一個(gè)Flags=0的偽信息,我們稱根據(jù)報(bào)文C提供的信息為虛尾片。
4)由于Fragment Offset C*8=Fragment Offset B*8+Total Length B-IHL B*4;所以報(bào)文B和報(bào)文C相連,此時(shí)我們假設(shè)FlagsC=0,則報(bào)文此時(shí)重組完成,得到報(bào)文E,其中IHLE=5,F(xiàn)ragment Offset E=0(報(bào)文E是首分片),F(xiàn)lagsE=1(因?yàn)閳?bào)文E是因?yàn)樘撐财亟M完成,所以后續(xù)實(shí)際還是有分片,所以為1),Total Length E=Total Length A+Total LengthB-IHLA*4-IHLB*4+IHLE*4=2020Byte。
5)設(shè)備收到報(bào)文D,F(xiàn)ragment Offset D*8=3000>LenMax(2048),說明該分片不能在中轉(zhuǎn)設(shè)備重組,直接透傳。
這樣處理后,終端設(shè)備還是可以將報(bào)文E、C、D重組成報(bào)文F。
權(quán)利要求
1.一種IP報(bào)文重組的方法,其特征在于,所述的方法包括如下步驟a、選路模塊將小于重組設(shè)備的重組長度限制的IP分片轉(zhuǎn)發(fā)重組模塊,將大于重組長度限制的IP分片的直接透傳轉(zhuǎn)發(fā),將正好跨重組長度限制的IP分片透傳轉(zhuǎn)發(fā)的同時(shí)將其偏移量傳給重組模塊參與重組;b、重組模塊根據(jù)選路模塊轉(zhuǎn)發(fā)的IP分片和偏移量進(jìn)行重組后作為新的IP分片轉(zhuǎn)發(fā)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,其中步驟a之前還包括所述的IP報(bào)文在隧道封裝時(shí)進(jìn)行分片。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,其中步驟a具體包括選路模塊將IP分片的偏移量和凈荷長度與所述重組設(shè)備的重組凈荷長度限制進(jìn)行比較,如果IP分片的偏移量加上其凈荷長度后小于所述的重組凈荷長度限制,將該IP分片轉(zhuǎn)發(fā)重組模塊;如果IP分片的偏移量加上該分片報(bào)文凈荷長度后大于所述的重組凈荷長度限制,直接透傳轉(zhuǎn)發(fā)該IP分片;如果IP分片正好跨重組凈荷長度限制線,將該IP分片轉(zhuǎn)發(fā)的同時(shí)將其偏移量傳給重組模塊參與重組。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述的IP分片的凈荷長度為IP分片的總長度減去IP頭長度。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,其中步驟a具體包括選路模塊將IP分片的偏移量和整個(gè)長度與所述重組設(shè)備的重組總長度限制進(jìn)行比較,如果IP分片的偏移量加上其整個(gè)長度后小于所述的重組總長度限制,將該IP分片轉(zhuǎn)發(fā)重組模塊;如果IP分片的偏移量加上該分片報(bào)文整個(gè)長度后大于所述的重組總長度限制,直接透傳轉(zhuǎn)發(fā)該IP分片;如果IP分片正好跨重組總長度限制線,將該IP分片轉(zhuǎn)發(fā)的同時(shí)將其偏移量傳給重組模塊參與重組。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,其中步驟b具體包括b1、重組模塊將收到的小于重組長度限制的IP分片根據(jù)偏移量的值偏移后存儲(chǔ)到緩存中;b2、重組模塊將收到的正好跨重組長度限制線的IP分片的偏移量與所述的小于重組長度限制的IP分片重組為新的IP分片后轉(zhuǎn)發(fā)。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,其中步驟b2還包括將新的IP分片的IP控制標(biāo)志設(shè)置為1并將其偏移量設(shè)置為0,表明其后還有分片并且新的分片為第一個(gè)分片。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,其中步驟b之后還包括終端設(shè)備將新的IP分片和所述的直接透傳轉(zhuǎn)發(fā)的IP分片重組。
全文摘要
本發(fā)明公開了一種IP報(bào)文重組的方法,所述的方法包括如下步驟a.選路模塊小于重組設(shè)備的重組長度限制的IP分片轉(zhuǎn)發(fā)重組模塊,將大于重組長度限制的IP分片的直接透傳轉(zhuǎn)發(fā),將正好跨重組長度限制的IP分片透傳轉(zhuǎn)發(fā)的同時(shí)將其偏移量傳給重組模塊參與重組;b.重組模塊根據(jù)選路模塊轉(zhuǎn)發(fā)的IP分片和偏移量進(jìn)行重組后作為新的IP分片轉(zhuǎn)發(fā)。本發(fā)明克服現(xiàn)有技術(shù)的不足,對(duì)沒有超出重組長度限制的分片、超出長度限制的分片和正好跨越長度限制的分片分別處理,只通過判斷分片長度范圍就可以將超出重組能力的報(bào)文轉(zhuǎn)發(fā),并保證沒有超出長度限制的IP報(bào)文能夠正常重組,簡化了對(duì)IP分片的重組實(shí)現(xiàn)方法,降低實(shí)現(xiàn)成本。
文檔編號(hào)H04L12/56GK1859308SQ200610034570
公開日2006年11月8日 申請(qǐng)日期2006年3月18日 優(yōu)先權(quán)日2006年3月18日
發(fā)明者何軍 申請(qǐng)人:華為技術(shù)有限公司