欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種ip分片報文的重組方法和裝置的制作方法

文檔序號:7715343閱讀:248來源:國知局
專利名稱:一種ip分片報文的重組方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,尤其涉及一種IP分片報文的重組方法 和裝置。
背景技術(shù)
IP是TCP/IP協(xié)議族中最為核心的協(xié)議。所有的TCP、 UDP、 ICMP及 IGMP數(shù)據(jù)都以IP數(shù)據(jù)報格式傳輸,用IP協(xié)議封裝的數(shù)據(jù)單元叫做IP報文。 IP協(xié)議的下層協(xié)議是鏈路層協(xié)議,對于大多數(shù)鏈路層協(xié)議來說,所能傳輸?shù)?數(shù)據(jù)幀長度都有一個上限,比如以太網(wǎng)和802.3對所能傳輸?shù)拈L度其最大值 分別為1500和1492字節(jié),鏈路層的這個特性稱作MTU,即最大傳輸單元。
如果IP層有一個數(shù)據(jù)報文需要傳遞,而且數(shù)據(jù)的長度比鏈路的MTU還 大,那么IP層就需要對IP報文進(jìn)行分片,使每個報文的長度都不大于鏈路 層的MTU,然后才能在鏈路上發(fā)送報文。
在接收端,為了還原發(fā)送端發(fā)出來的原始報文,必須將收到的屬于同一 個原始報文的各個IP分片進(jìn)行重組,重組成一個完整的報文之后再交由上 層協(xié)議處理。重組一般由目的主機完成,但是對于一般特殊的情況,比如說 NAT (網(wǎng)絡(luò)地址轉(zhuǎn)換)過程需要重新計算整個報文的校驗和,路由器等中間 節(jié)點也需要對分片報文進(jìn)行重組。
RFC791描述了對IP報文進(jìn)行分片和重組的過程。該協(xié)議指出,IP頭中 的IP_ID、源IP地址、目的IP地址以及協(xié)il號四個字^殳用于標(biāo)識屬于同一 原始IP報文的各個分片。如果這些字段相同,則認(rèn)為它們是由同一個報文 分片成的多個報文,需要將其重組成一個報文。
圖l是重組表的基本結(jié)構(gòu)圖在系統(tǒng)初始化階段,重組模塊首先在內(nèi)存中分配兩片內(nèi)存,其中一片內(nèi) 存用于重組表,另外一片內(nèi)存用于重組表對應(yīng)的沖突表。重組表用于保存在
后續(xù)的重組過程中每個分片報文的必要信息,需要保存的信息包括IP—ID、
協(xié)議號、源IP地址、目的IP地址。這樣一個數(shù)據(jù)結(jié)構(gòu)叫做重組表,除了能 夠保存以上信息之外,每個重組表的表項還需要保存兩個指針,分別指向重 組表的沖突表項,以及一個叫做"分片報文鏈表"的數(shù)據(jù)結(jié)構(gòu)。在重組模塊
尋找每個分片報文對應(yīng)的重組表項時,對IP—ID、協(xié)議號、源IP地址、目的 IP地址這四個值進(jìn)行哈希,當(dāng)不同報文的哈希結(jié)果相同時,就需要使用沖突 表項(沖突的重組表項)。沖突表項與重組表表項一樣,都保存在內(nèi)存中, 其結(jié)構(gòu)與重組表表項結(jié)構(gòu)完全相同,在某些系統(tǒng)實現(xiàn)中,并不區(qū)分重組表表 項和沖突表項,因此在后面的描述中,可能會將沖突表項直接描述為重組表 表項。所謂"分片報文鏈表",是指網(wǎng)絡(luò)設(shè)備所接收到的一串相同特征的IP 分片報文,所謂相同特征是指IP—ID、協(xié)議號、源IP地址、目的IP地址這 四個字段完全相同。事實上,當(dāng)IP分片l艮文^皮接收到網(wǎng)絡(luò)設(shè)備之中時,它 已經(jīng)保存在了網(wǎng)絡(luò)設(shè)備的內(nèi)存中,重組模塊只是使用"分片報文鏈表"將屬 于同一原始IP報文的多個分片報文鏈接起來,以完成對報文的重組。圖中 分別畫出了前面所提到的重組表項、沖突表項、分片報文鏈表。在這個重組 表中,重組表項2和表項n被使用,并且每個表項后面還鏈接有沖突表項, 每個表項還有一個指針指向分片報文鏈表。
在IP網(wǎng)絡(luò)運行了多年之后,VPN出現(xiàn)了, VPN的出現(xiàn)改變了一個事實, 互聯(lián)網(wǎng)由原來平面結(jié)構(gòu)變成了立體結(jié)構(gòu),由于VPN之間相互隔絕,不同VPN 內(nèi)的主才幾可以具有相同的IP地址。
由于IPv4報文的IP頭內(nèi)沒有攜帶VPN信息,而且IPv4的出現(xiàn)遠(yuǎn)遠(yuǎn)早 于VPN,因此IPv4報文的重組流程沒有考慮到VPN因素,這樣一來,IPv4 報文的重組過程就不再具有完備性。如果分別屬于VPN1和VPN2的主機
5Al和主機A2發(fā)出去的IP分片報文的源IP地址、目的IP地址、IP—ID、協(xié) 議號相同,報文到達(dá)路由器R之后,由于路由器R的重組模塊不區(qū)分VPN 信息,因此在其重組時就會認(rèn)為來自主機Al和主機A2的分片報文屬于同 一個原始IP報文,就可能會將來自主機Al和主機A2的分片報文重組到一 起,顯然這樣重組出來的是一個錯誤的報文。雖然IPv6協(xié)議出現(xiàn)時間要晚 于IPv4協(xié)議,但是IPv6報文的重組流程依然是只考慮了 IP頭本身的內(nèi)容, 并未考慮VPN,因此IPv6報文的重組流程也有與IPv4重組流程相同的問題。

發(fā)明內(nèi)容
本發(fā)明的目的是,針對上述IP重組方法的現(xiàn)狀,改進(jìn)IP重組流程,使 不同VPN內(nèi)需要重組的IP4艮文相互之間不受影響。
為解決上述技術(shù)問題,本發(fā)明提出了一種IP分片報文的重組方法,具 體包括
重組模塊獲取分片報文的VPN標(biāo)識,并結(jié)合從分片報文中獲取的IP頭 信息,計算出一個哈希索引以確定本分片報文所對應(yīng)的重組表項,重組模塊 根據(jù)重組表項、VPN標(biāo)識和IP頭信息完成分片報文的比較、重組。
進(jìn)一步地,當(dāng)確定本分片報文所對應(yīng)的重組表項未被使用時,則將VPN 標(biāo)識和IP頭信息保存到重組表表項中,并將本分片報文掛到當(dāng)前重組表項 的"分片報文鏈表,,上,其中,"分片報文鏈表,,用于保存同一原始報文中 的分片。
進(jìn)一步地,當(dāng)確定本分片報文所對應(yīng)的重組表項已被使用時,所述比較 是將收到的VPN標(biāo)識和IP頭信息與已使用重組表項中保存的VPN標(biāo)識和 IP頭信息進(jìn)行比較。
進(jìn)一步地,如果比較結(jié)果為全部匹配,將本分片報文掛到對應(yīng)的重組表 項的"分片報文鏈表"上。進(jìn)一步地,所述重組具體包括當(dāng)原始報文的所有分片都掛到對應(yīng)的重 組表項的"分片報文鏈表"上時,將當(dāng)前重組表項的"分片報文鏈表,,上的 所有分片報文按順序拼裝到一起,完成原始報文的重組。
進(jìn)一步地,如果比較結(jié)果不匹配,路由器判斷當(dāng)前重組表項是否有沖突 表項。
進(jìn)一步地,如果還沒有沖突表項,則說明當(dāng)前報文是同一原始報文中第 一個到達(dá)重組模塊的分片,重組模塊新分配一個沖突表項,將該沖突表項鏈 接到當(dāng)前所查重組表項的后面,并將當(dāng)前分片報文的VPN標(biāo)識和IP頭信息 保存到該沖突表項中。
進(jìn)一步地,如果已經(jīng)有沖突表項,則重新將報文的VPN標(biāo)識和IP頭信 息與沖突表項中保存的VPN標(biāo)識和IP頭信息進(jìn)行比較,如果能夠匹配,就 將當(dāng)前分片報文保存在匹配到的沖突表項的"分片報文鏈表"中;否則,就 新分配一個沖突表項,并保存VPN標(biāo)識和IP頭信息到新分配的沖突表項中。
進(jìn)一步地,所述VPN標(biāo)識為VPNJD,所述IP頭信息為IP—ID、源IP 地址、目的IP地址以及協(xié)議號。
本發(fā)明還提出一種IP分片報文的重組裝置,包括獲取單元,用于獲 取分片報文的VPN標(biāo)識和IP頭信息;計算確定單元,用于根據(jù)獲取單元獲 取的VPN標(biāo)識和IP頭信息計算出哈希索引以確定分片報文所對應(yīng)的重組表 項;比較重組單元,用于根據(jù)計算確定單元確定的重組表項與VPN標(biāo)識、 IP頭信息進(jìn)行分片報文的比較、拼裝,完成原始報文的重組。
本發(fā)明具有以下有益效果避免了不同VPN內(nèi)的IP分片報文在重組時 錯誤和相互影響的可能,補充了 RFC協(xié)議關(guān)于IP分片報文重組過程的描述, 完善了現(xiàn)有的IP重組流程,能夠提高網(wǎng)絡(luò)設(shè)備的穩(wěn)定性,提高IP網(wǎng)絡(luò)的傳 輸質(zhì)量。


圖l是重組表的基本結(jié)構(gòu)圖。
圖2為使用本發(fā)明改進(jìn)后,不同VPN內(nèi)分片報文在路由器上的轉(zhuǎn)發(fā)處 理示意圖。
圖3為實施例中用于實現(xiàn)本發(fā)明的算法流程圖。 圖4為實施本方法的重組模塊結(jié)構(gòu)圖。
具體實施例方式
以下結(jié)合附圖和具體實施例對本發(fā)明作進(jìn)一步詳細(xì)的描述。
圖2示出了使用本發(fā)明的IP重組流程之后,路由器設(shè)備在處理不同VPN 內(nèi)分片報文的情況。從示意圖中可以看出,重組模塊也跟VRF—樣,在邏 輯上每個VPN存在一個,而事實上重組模塊在整個路由器設(shè)備中只有一個, 只是對原來的重組模塊進(jìn)行了稍微的變動,在判斷分片報文是否屬于同 一個 原始報文時,除比較IP一ID、源IP地址、目的IP地址和協(xié)議號IP頭內(nèi)的4 個字段之外,還比較報文的VPN—ID,只有同一個VPN下的報文,才有可 能來源于同一個原始報文,才能夠重組到一起。
.對于每一個分片報文,在將其送到重組模塊處理之前,路由器必須獲取 其所屬VPN,獲取報文的VPN一ID之后,將VPN—ID帶給重組模塊使用。 重組模塊在對報文進(jìn)行重組時,首先使用傳給重組模塊的VPN_ID以及報文 IP頭中的IP一ID、源IP地址、目的IP地址、協(xié)議號字段計算報文在重組表 中的索引,再根據(jù)索引定位到相應(yīng)的重組表項。然后,使用報文的VPN一ID、 IP一ID、源IP地址、目的IP地址以及協(xié)議號與緩存在重組表項中的相應(yīng)的5 個值進(jìn)行比較,只有所有5個值都相同時,才認(rèn)為找到了自己所屬的重組表 項。找到自己所屬的重組表項之后,對分片報文進(jìn)行排序、復(fù)制等實際的報 文內(nèi)容重組操作,與此前的重組過程相同。VPN ID是本發(fā)明的關(guān)鍵,相比之前的重組過程,本發(fā)明中新增了 VPN—ID的比較,保證了不同VPN下的 分片報文相互不影響。
下面將以一個實施例來描述本發(fā)明的具體實施方式

圖3是本實施例的算法流程圖,下面將對算法中的每一個步驟進(jìn)行詳細(xì) 說明。
在步驟410,重組模塊收到一個IP分片報文。
在步驟411,路由器通過當(dāng)前分片報文的描述信息,獲取報文所屬的 VPN,即報文的VPN—ID,并從當(dāng)前分片報文的IP頭中獲取報文的IP一ID、 源IP地址、目的IP地址和協(xié)議號。并^f吏用這5個值計算出一個"^合希索引, 以確定本分片報文所對應(yīng)的重組表表項。
在步驟412,通過步驟411計算出的哈希索引,定位到重組表的對應(yīng)表 項,判斷該表項是否還處于未被使用的狀態(tài)。如果該重組表項還未祐:使用, 則說明當(dāng)前報文為同一原始報文中第一個到達(dá)的分片,轉(zhuǎn)入步驟420;否貝'J, 說明已經(jīng)有同一原始報文的分片到達(dá),轉(zhuǎn)入步驟430。
在步驟420,將當(dāng)前報文的VPN_ID、 IPJD、源IP地址、目的IP地址 以及協(xié)議號這5個值保存到重組表項中,并將當(dāng)前報文掛到當(dāng)前重組表項的 "分片報文鏈表,,上,重組模塊對當(dāng)前分片報文的處理流程結(jié)束。其中,重 組表項的"分片報文鏈表"用于保存同一原始報文中已經(jīng)收到的分片。
在步驟430,將報文的VPNJD、 IP—ID、源IP地址、目的IP地址以及 協(xié)議號分別與重組表項中保存的這5個值進(jìn)行比較,然后進(jìn)入步驟431。
在步驟431,判斷步驟430的比較結(jié)果,如果比較結(jié)果為全部匹配,則 說明已經(jīng)找到了當(dāng)前報文所屬的重組表項,轉(zhuǎn)入步驟440;否則,說明有報 文的哈希索引與當(dāng)前報文的哈希索引相同,重組表項相沖突,轉(zhuǎn)入步驟460
查找沖突表項。
9在步驟440,將當(dāng)前報文掛到當(dāng)前重組表項的"分片報文鏈表"上,然 后進(jìn)入步驟441。
在步驟441,判斷同一原始報文的所有分片是否全部到齊,如果未全部 到齊,則重組模塊對當(dāng)前報文的處理流程結(jié)束;否則,轉(zhuǎn)入步驟450。
在步驟450,將當(dāng)前重組表項的"分片報文鏈表"上的所有分片報文按 順序拼裝到一起,完成對當(dāng)前報文所屬原始報文的重組過程,重組沖莫塊對當(dāng) 前報文的處理流程結(jié)束。
在步驟460,判斷當(dāng)前重組表項的沖突表項指針是否為空。如果該指針 為空,則說明當(dāng)前報文是同一原始報文中第一個到達(dá)重組模塊的分片,轉(zhuǎn)入 步驟470;否則,說明已經(jīng)有同一原始報文的分片到達(dá),轉(zhuǎn)入步驟480。
在步驟470,新分配一個沖突表項,并將該沖突表項接到步驟460所查 重組表項的后面,進(jìn)入步驟471。
在步驟471,將當(dāng)前報文的VPN—ID、 IP_ID、源IP地址、目的IP地址 以及協(xié)議號這5個值保存到步驟470分配的沖突表項中,重組模塊對當(dāng)前報 文的處理流程結(jié)束。
在步驟480,根據(jù)步驟460中所查的重組表項的沖突表項指針,定位到 下一個的沖突表項,然后進(jìn)入步驟430,開始對當(dāng)前報文與沖突表項內(nèi)容的 新一輪比較:操作。
以上即為本實施例的實現(xiàn)算法描述,該算法對IPv4報文和IPv6報文都 適用。
圖4為實施本方法的重組裝置結(jié)構(gòu)圖
獲取單元,用于獲取分片報文的VPN標(biāo)識和IP頭信息;
計算確定單元,用于根據(jù)獲取單元獲取的VPN標(biāo)識和IP頭信息計算出 ,合希索引以確定分片凈艮文所對應(yīng)的重組表項;比較重組單元,用于根據(jù)計算確定單元確定的重組表項與VPN標(biāo)識、 IP頭信息進(jìn)行分片報文的比較、拼裝,完成原始報文的重組。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本 發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本 發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1、一種IP分片報文的重組方法,其特征在于重組模塊獲取分片報文的VPN標(biāo)識,并結(jié)合從分片報文中獲取的IP頭信息,計算出一個哈希索引以確定本分片報文所對應(yīng)的重組表項,重組模塊根據(jù)重組表項、VPN標(biāo)識和IP頭信息完成分片報文的比較、重組。
2、 如權(quán)利要求1所述的方法,其特征在于當(dāng)確定本分片報文所對應(yīng)的 重組表項未被使用時,則將VPN標(biāo)識和IP頭信息保存到重組表表項 中,并將本分片報文掛到當(dāng)前重組表項的"分片報文鏈表"上,其中,"分片報文鏈表,,用于保存同一原始報文中的分片。
3、 如權(quán)利要求1所述的方法,其特征在于當(dāng)確定本分片報文所對應(yīng)的 重組表項已被使用時,所述比較是將收到的VPN標(biāo)識和IP頭信息與 已使用重組表項中保存的VPN標(biāo)識和IP頭信息進(jìn)行比較。
4、 如權(quán)利要求3所述的方法,其特征在于如果比較結(jié)果為全部匹配, 將本分片報文掛到對應(yīng)的重組表項的"分片報文鏈表"上。
5、 如權(quán)利要求4所述的方法,其特征在于,所述重組具體包括當(dāng)原始 報文的所有分片都掛到對應(yīng)的重組表項的"分片報文鏈表"上時,將 當(dāng)前重組表項的"分片報文鏈表"上的所有分片報文按順序拼裝到一 起,完成原始"^艮文的重組。
6、 如權(quán)利要求3所述的方法,其特征在于如果比較結(jié)果不匹配,路由 器判斷當(dāng)前重組表項是否有沖突表項。
7、 如權(quán)利要求6所述的方法,其特征在于如果還沒有沖突表項,則說 明當(dāng)前報文是同一原始報文中第一個到達(dá)重組模塊的分片,重組模塊 新分配一個沖突表項,將該沖突表項鏈接到當(dāng)前所查重組表項的后面, 并將當(dāng)前分片^R文的VPN標(biāo)識和IP頭信息保存到該沖突表項中。
8、 如權(quán)利要求6所述的方法,其特征在于如果已經(jīng)有沖突表項,則重新將報文的VPN標(biāo)識和IP頭信息與沖突表項中保存的VPN標(biāo)識和IP 頭信息進(jìn)行比較,如果能夠匹配,就將當(dāng)前分片報文保存在匹配到的 沖突表項的"分片報文鏈表"中;否則,就新分配一個沖突表項,并 保存VPN標(biāo)識和IP頭信息到新分配的沖突表項中。
9、 如權(quán)利要求1至8中任一項的方法,其特征在于所述VPN標(biāo)識為 VPN—ID,所述IP頭信息為IP—ID、源IP地址、目的IP地址以及協(xié)議
10、 一種IP分片報文的重組裝置,其特征在于,包括獲取單元,用于獲 取分片報文的VPN標(biāo)識和IP頭信息;計算確定單元,用于根據(jù)獲取單 元獲取的VPN標(biāo)識和IP頭信息計算出哈希索引以確定分片報文所對應(yīng) 的重組表項;比較重組單元,用于根據(jù)計算確定單元確定的重組表項與 VPN標(biāo)識、IP頭信息進(jìn)行分片報文的比較、拼裝,完成原始報文的重 組。
全文摘要
本發(fā)明公開了一種完善現(xiàn)有IP重組過程的方法和系統(tǒng),通過為現(xiàn)有的重組模塊增加報文所屬VPN的判斷,實現(xiàn)屬于不同VPN的IP分片報文在進(jìn)行重組時,相互不受影響。采用本發(fā)明能夠避免不同VPN內(nèi)的IP分片報文在重組時相互影響的可能,補充了RFC協(xié)議關(guān)于IP重組過程的描述,完善了現(xiàn)有的IP重組流程,能夠提高網(wǎng)絡(luò)設(shè)備的穩(wěn)定性,提高IP網(wǎng)絡(luò)的傳輸質(zhì)量。該發(fā)明適用于IPv4重組和IPv6重組,且與VPN的實現(xiàn)方式無關(guān)。
文檔編號H04L12/56GK101645851SQ20091018995
公開日2010年2月10日 申請日期2009年9月3日 優(yōu)先權(quán)日2009年9月3日
發(fā)明者單麗杰, 俊 姚, 勇 汪, 青 談, 趙豐收, 郭樹波 申請人:中興通訊股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
炎陵县| 江安县| 西畴县| 蒲江县| 潼关县| 桑日县| 双桥区| 大埔县| 兰考县| 安宁市| 花莲市| 广水市| 荃湾区| 临城县| 泊头市| 循化| 漳浦县| 青田县| 永和县| 砚山县| 集贤县| 静宁县| 枞阳县| 长沙县| 神农架林区| 玛多县| 乌兰察布市| 新营市| 武平县| 衢州市| 正阳县| 商都县| 胶州市| 姜堰市| 安新县| 育儿| 葫芦岛市| 长治县| 大庆市| 牟定县| 三穗县|