ip數(shù)據(jù)報(bào)重組算法_第1頁
已閱讀1頁,還剩0頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第19卷第6期1998年12月j數(shù)技量坦J啦n肚InstituteEdI】咖m(N咖Seldom)IP數(shù)據(jù)報(bào)重組算法蘇群(江西高校出版社330046)lP即網(wǎng)際網(wǎng)協(xié)議的任務(wù)是數(shù)據(jù)報(bào)的分段與重組。在一般情況下數(shù)據(jù)報(bào)是不需要分段的,當(dāng)在傳精選徑中遘薊只能傳送小包的鏈路層協(xié)議時(shí),分段就韭得不可避免。在接收主機(jī)的IP層將所有的分段收集起來并重新組成一個(gè)完整的數(shù)據(jù)報(bào)的過程中,需要在lP摸塊中實(shí)現(xiàn)數(shù)據(jù)報(bào)的重組算擊。以往實(shí)現(xiàn)的算法可能是十分復(fù)雜的其中

2、包括對每一個(gè)分段的跟蹤,而當(dāng)每一個(gè)新分段到來時(shí)需要用不同的方法將它與現(xiàn)有的分段進(jìn)行匹配。實(shí)際上這種算法可以做得十分簡單它可將跟蹤分段的工作減至最低限度,而且對緩沖區(qū)的要求也降低到只要能夠容納最終數(shù)據(jù)報(bào)的太小就可以了為了了解吼下所舟紹的算法,讀者必須對lP數(shù)據(jù)報(bào)的格式及分段與重組的原理比較了解為了描述這種算法,菝們先將一個(gè)概念確定一下。一個(gè)還未裝配完成的數(shù)據(jù)報(bào)包古一些已經(jīng)到達(dá)的八位組,但還有一些八位組的位置是空置的,我們把這些空置的八位組

3、元位置稱為空隙,而空隙頭代表空障的第一個(gè)^位組的順序碼,空隙尾代表空障最后一個(gè)八位組的順序碼,而表述在一個(gè)空隙的一對空隙頭和空瞬尾稱為空隙描述符。而且裁們設(shè)定所有空隙描述符都在一個(gè)空隙描述符剜表內(nèi)。算法的一般形式表述如下:當(dāng)一個(gè)分段到選之后、它將會(huì)填充一個(gè)或幾個(gè)空隙,我們將會(huì)檢查空障描述符的每一項(xiàng)擊挾定是否有的項(xiàng)會(huì)因?yàn)榭障侗惶畛涠縿h掉。最終會(huì)有一個(gè)分段的到來使得所有項(xiàng)都被刪掉,此時(shí)一個(gè)數(shù)據(jù)報(bào)的重組就完成了這個(gè)算法將分兩個(gè)部分,第一部分

4、是對接收的分段進(jìn)行扯理,確定它是否可以填充一個(gè)或幾個(gè)空隙,第二部分則包括空隙描述符的管理。一、分殷處理算涪一個(gè)接收到的分段可用幾種方法填充空隙。最常見的是,它可以填充整個(gè)一個(gè)空隙,也有可能在空隙的頭部或尾部留下一個(gè)比較小的新空隙,或者在兩頭都留下新空隙。基于以上原因在一個(gè)新的分段到達(dá)時(shí),我們就要進(jìn)行多種測試但實(shí)際上,我們可以表達(dá)為只進(jìn)行四種副試就可了。當(dāng)數(shù)據(jù)報(bào)最早的分段到來時(shí)我們將啟動(dòng)這個(gè)算法,在這之前,找們將韌始億空酵描述符列表,這時(shí)

5、空晾頭表述為零,空隙尾為無窮大(實(shí)際上只要比576大就行了)。以下步驟表述了算法的執(zhí)行過程,其中分段頭表示分段第一個(gè)^位組的胍申號(hào),分段尾表示最后八位組的順序號(hào)Ⅷ19№6Dec19981、從空掰c描述符列表中選擇下一個(gè)空隙描述符,若沒有,剜跳至步驟8;2、若分段頭大于空隙尾,則眺至步驟1;3、若分段尾大于空隙頭則眈至步驟1;(若以上兩個(gè)判斷中有一個(gè)不成立,則此分段不會(huì)覆蓋刊空隙上我們可吼不再進(jìn)行其它步驟,而轉(zhuǎn)向下一個(gè)空隙描述符);4、從

6、空掰c描述符列表中刪擊當(dāng)前描述符;(由于分段將覆蓋當(dāng)前空瓊的一部或全部,所我們將它刪去在下兩步我們將決定是否建立一個(gè)新的空隙描述符);5、若分段頭大于空隙頭,則刨建一個(gè)新的空隙描述符,其中隙頭保持不變而空隙尾等于分段頭減1;6若分段尾小于空隙尾,則創(chuàng)建一個(gè)新的空隙描述符,其空隙尾保持不變,而空隙頭等于分段尾;7、返回步驟1;8、若空隙描述符已全部被刪除剮數(shù)據(jù)報(bào)箍重組完畢可將其傳送到高一緞協(xié)議娃理。二、空隙描述符管理吼上所描述的算法中,除

7、了增加或硪少空隙描述符表中的描述符卅,并未過多地涉及于此。但由于在空隙插述符的數(shù)量上并無限i可吼想象對于空隙描述符的管理將是其中最耗資源的部分。這兒有一個(gè)較簡單的扯理方法即將空隙描述符放^空隙車身中去。為了存缺一對空隙描述符將在空隙中預(yù)占2個(gè)^位組,另外,還需要另外兩個(gè)^位組去與空隙描述符列表對應(yīng)起來。除了以上所述的算法和描述符管理的部分,在重組過程中還有兩個(gè)部分應(yīng)加以注意的。首先當(dāng)一個(gè)分段箍接收到時(shí),尋找到與之關(guān)聯(lián)的重組緩沖區(qū)是程關(guān)鍵

8、的。對應(yīng)的重組緩沖區(qū)由以下條件來標(biāo)識(shí):源地址目的地址上層協(xié)議識(shí)尉號(hào)數(shù)據(jù)包識(shí)別號(hào),只有上幾項(xiàng)都符合才可判斷分段是屬于某個(gè)數(shù)據(jù)包的另一個(gè)問題是定時(shí)器的問題,當(dāng)數(shù)據(jù)包的最初分段到達(dá)時(shí)啟動(dòng)定時(shí)器當(dāng)超過時(shí)間上限后該數(shù)據(jù)包仍未重組完畢,則可將些數(shù)據(jù)丟棄向瓊地址發(fā)送ICMP消息。上述只是該算法的一個(gè)簡單闡述具體實(shí)現(xiàn)還有艟于具體的調(diào)試環(huán)境。(責(zé)任枝時(shí):秦良)維普資訊第19卷第6期1998年12月j數(shù)技量坦J啦n肚InstituteEdI】咖m(N咖Se

9、ldom)IP數(shù)據(jù)報(bào)重組算法蘇群(江西高校出版社330046)lP即網(wǎng)際網(wǎng)協(xié)議的任務(wù)是數(shù)據(jù)報(bào)的分段與重組。在一般情況下數(shù)據(jù)報(bào)是不需要分段的,當(dāng)在傳精選徑中遘薊只能傳送小包的鏈路層協(xié)議時(shí),分段就韭得不可避免。在接收主機(jī)的IP層將所有的分段收集起來并重新組成一個(gè)完整的數(shù)據(jù)報(bào)的過程中,需要在lP摸塊中實(shí)現(xiàn)數(shù)據(jù)報(bào)的重組算擊。以往實(shí)現(xiàn)的算法可能是十分復(fù)雜的其中包括對每一個(gè)分段的跟蹤,而當(dāng)每一個(gè)新分段到來時(shí)需要用不同的方法將它與現(xiàn)有的分段進(jìn)行匹配。

10、實(shí)際上這種算法可以做得十分簡單它可將跟蹤分段的工作減至最低限度,而且對緩沖區(qū)的要求也降低到只要能夠容納最終數(shù)據(jù)報(bào)的太小就可以了為了了解吼下所舟紹的算法,讀者必須對lP數(shù)據(jù)報(bào)的格式及分段與重組的原理比較了解為了描述這種算法,菝們先將一個(gè)概念確定一下。一個(gè)還未裝配完成的數(shù)據(jù)報(bào)包古一些已經(jīng)到達(dá)的八位組,但還有一些八位組的位置是空置的,我們把這些空置的八位組元位置稱為空隙,而空隙頭代表空障的第一個(gè)^位組的順序碼,空隙尾代表空障最后一個(gè)八位組的順

11、序碼,而表述在一個(gè)空隙的一對空隙頭和空瞬尾稱為空隙描述符。而且裁們設(shè)定所有空隙描述符都在一個(gè)空隙描述符剜表內(nèi)。算法的一般形式表述如下:當(dāng)一個(gè)分段到選之后、它將會(huì)填充一個(gè)或幾個(gè)空隙,我們將會(huì)檢查空障描述符的每一項(xiàng)擊挾定是否有的項(xiàng)會(huì)因?yàn)榭障侗惶畛涠縿h掉。最終會(huì)有一個(gè)分段的到來使得所有項(xiàng)都被刪掉,此時(shí)一個(gè)數(shù)據(jù)報(bào)的重組就完成了這個(gè)算法將分兩個(gè)部分,第一部分是對接收的分段進(jìn)行扯理,確定它是否可以填充一個(gè)或幾個(gè)空隙,第二部分則包括空隙描述符的管理

12、。一、分殷處理算涪一個(gè)接收到的分段可用幾種方法填充空隙。最常見的是,它可以填充整個(gè)一個(gè)空隙,也有可能在空隙的頭部或尾部留下一個(gè)比較小的新空隙,或者在兩頭都留下新空隙?;谝陨显蛟谝粋€(gè)新的分段到達(dá)時(shí),我們就要進(jìn)行多種測試但實(shí)際上,我們可以表達(dá)為只進(jìn)行四種副試就可了。當(dāng)數(shù)據(jù)報(bào)最早的分段到來時(shí)我們將啟動(dòng)這個(gè)算法,在這之前,找們將韌始億空酵描述符列表,這時(shí)空晾頭表述為零,空隙尾為無窮大(實(shí)際上只要比576大就行了)。以下步驟表述了算法的執(zhí)行過

13、程,其中分段頭表示分段第一個(gè)^位組的胍申號(hào),分段尾表示最后八位組的順序號(hào)Ⅷ19№6Dec19981、從空掰c描述符列表中選擇下一個(gè)空隙描述符,若沒有,剜跳至步驟8;2、若分段頭大于空隙尾,則眺至步驟1;3、若分段尾大于空隙頭則眈至步驟1;(若以上兩個(gè)判斷中有一個(gè)不成立,則此分段不會(huì)覆蓋刊空隙上我們可吼不再進(jìn)行其它步驟,而轉(zhuǎn)向下一個(gè)空隙描述符);4、從空掰c描述符列表中刪擊當(dāng)前描述符;(由于分段將覆蓋當(dāng)前空瓊的一部或全部,所我們將它刪去在

14、下兩步我們將決定是否建立一個(gè)新的空隙描述符);5、若分段頭大于空隙頭,則刨建一個(gè)新的空隙描述符,其中隙頭保持不變而空隙尾等于分段頭減1;6若分段尾小于空隙尾,則創(chuàng)建一個(gè)新的空隙描述符,其空隙尾保持不變,而空隙頭等于分段尾;7、返回步驟1;8、若空隙描述符已全部被刪除剮數(shù)據(jù)報(bào)箍重組完畢可將其傳送到高一緞協(xié)議娃理。二、空隙描述符管理吼上所描述的算法中,除了增加或硪少空隙描述符表中的描述符卅,并未過多地涉及于此。但由于在空隙插述符的數(shù)量上并無

15、限i可吼想象對于空隙描述符的管理將是其中最耗資源的部分。這兒有一個(gè)較簡單的扯理方法即將空隙描述符放^空隙車身中去。為了存缺一對空隙描述符將在空隙中預(yù)占2個(gè)^位組,另外,還需要另外兩個(gè)^位組去與空隙描述符列表對應(yīng)起來。除了以上所述的算法和描述符管理的部分,在重組過程中還有兩個(gè)部分應(yīng)加以注意的。首先當(dāng)一個(gè)分段箍接收到時(shí),尋找到與之關(guān)聯(lián)的重組緩沖區(qū)是程關(guān)鍵的。對應(yīng)的重組緩沖區(qū)由以下條件來標(biāo)識(shí):源地址目的地址上層協(xié)議識(shí)尉號(hào)數(shù)據(jù)包識(shí)別號(hào),只有上幾

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論