国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 網(wǎng)絡(luò)通信 > 正文

IP首部拆解

2019-11-04 11:02:00
字體:
供稿:網(wǎng)友

  ip數(shù)據(jù)報(bào)的格式如圖3-1所示。普通的IP首部長為20個字節(jié),除非含有選項(xiàng)字段。

IP首部拆解(圖一)

圖3-1 IP數(shù)據(jù)報(bào)格式及首部中的各字段

分析圖3-1中的首部。最高位在左邊,記為0bit;最低位在右邊,記為31bit。
4個字節(jié)的32bit值以下面的次序傳輸:首先是0~7bit,其次8~15bit,然后16~23bit,最后是24~31bit。這種傳輸次序稱作bigendian字節(jié)序。由于TCP/IP首部中所有的二進(jìn)制整數(shù)在網(wǎng)絡(luò)中傳輸時都要求以這種次序,因此它又稱作網(wǎng)絡(luò)字節(jié)序。以其他形式存儲二進(jìn)制整數(shù)的機(jī)器,如littleendian格式,則必須在傳輸數(shù)據(jù)之前把首部轉(zhuǎn)換成網(wǎng)絡(luò)字節(jié)序。
目前的協(xié)議版本號是4,因此IP有時也稱作IPv4。3.10節(jié)將對一種新版的IP協(xié)議進(jìn)行討論。
首部長度指的是首部占32bit字的數(shù)目,包括任何選項(xiàng)。由于它是一個4比特字段,因此首部最長為60個字節(jié)。在第8章中,我們將看到這種限制使某些選項(xiàng)如路由記錄選項(xiàng)在當(dāng)今已沒有什么用處。普通IP數(shù)據(jù)報(bào)(沒有任何選擇項(xiàng))字段的值是5。
服務(wù)類型(TOS)字段包括一個3bit的優(yōu)先權(quán)子字段(現(xiàn)在已被忽略),4bit的TOS子字段和1bit未用位但必須置0。4bit的TOS分別代表:最小時延、最大吞吐量、最高可靠性和最小費(fèi)用。4bit中只能置其中1bit。假如所有4bit均為0,那么就意味著是一般服務(wù)。RFC1340[ReynoldsandPostel1992]描述了所有的標(biāo)準(zhǔn)應(yīng)用如何設(shè)置這些服務(wù)類型。RFC1349[Almquist1992]對該RFC進(jìn)行了修正,更為具體地描述了TOS的特性。
圖3-2列出了對不同應(yīng)用建議的TOS值。在最后一列中給出的是十六進(jìn)制值,因?yàn)檫@就是在后面將要看到的tcpdump命令輸出。

IP首部拆解(圖二)

圖3-2 服務(wù)類型字段推薦值

Te l n e t 和R l o g i n這兩個交互應(yīng)用要求最小的傳輸時延,因?yàn)槿藗冎饕盟鼈儊韨鬏斏倭康慕换?shù)據(jù)。另一方面,F(xiàn) T P文件傳輸則要求有最大的吞吐量。最高可靠性被指明給網(wǎng)絡(luò)治理(SN M P)和路由選擇協(xié)議。用戶網(wǎng)絡(luò)新聞(Usenet news, NNTP)是唯一要求最小費(fèi)用的應(yīng)用。
現(xiàn)在大多數(shù)的T C P / I P實(shí)現(xiàn)都不支持TO S 特性,但是自4.3BSD Reno以后的新版系統(tǒng)都對它進(jìn)行了設(shè)置。另外,新的路由協(xié)議如O S P F和I S - I S都能根據(jù)這些字段的值進(jìn)行路由決策。
在2 . 1 0節(jié)中,我們提到S L I P一般提供基于服務(wù)類型的排隊(duì)方法,答應(yīng)對交互通信數(shù)據(jù)在處理大塊數(shù)據(jù)之前進(jìn)行處理。由于大多數(shù)的實(shí)現(xiàn)都不使用TO S 字段,因此這種排隊(duì)機(jī)制由S L I P自己來判定和處理,驅(qū)動程序先查看協(xié)議字段(確定是否是一個T C P 段),然后檢查T C P信源和信宿的端口號,以判定是否是一個交互服務(wù)。一個驅(qū)動程序的注釋這樣認(rèn)為,這種“令人厭惡的處理方法”是必需的,因?yàn)榇蠖鄶?shù)實(shí)現(xiàn)都不答應(yīng)應(yīng)用程序設(shè)置TOS字段。
總長度字段是指整個I P數(shù)據(jù)報(bào)的長度,以字節(jié)為單位。利用首部長度字段和總長度字段,就可以知道I P數(shù)據(jù)報(bào)中數(shù)據(jù)內(nèi)容的起始位置和長度。由于該字段長1 6比特,所以I P數(shù)據(jù)報(bào)最長可達(dá)6 5 5 3 5字節(jié)(回憶圖2 - 5,超級通道的M T U為6 5 5 3 5 。它的意思其實(shí)不是一個真正的M T U—它使用了最長的I P數(shù)據(jù)報(bào))。當(dāng)數(shù)據(jù)報(bào)被分片時,該字段的值也隨著變化。
盡管可以傳送一個長達(dá)6 5 5 3 5字節(jié)的I P數(shù)據(jù)報(bào),但是大多數(shù)的鏈路層都會對它進(jìn)行分片。而且,主機(jī)也要求不能接收超過5 7 6字節(jié)的數(shù)據(jù)報(bào)。由于T C P把用戶數(shù)據(jù)分成若干片,因此一般來說這個限制不會影響T C P。在后面的章節(jié)中將碰到大量使用U D P的應(yīng)用(R I P,T F T P, B O O T P,D N S,以及S N M P),它們都限制用戶數(shù)據(jù)報(bào)長度為5 1 2字節(jié),小于5 7 6字節(jié)。但是,事實(shí)上現(xiàn)在大多數(shù)的實(shí)現(xiàn)(非凡是那些支持網(wǎng)絡(luò)文件系統(tǒng)N F S的實(shí)現(xiàn))答應(yīng)超過8 1 9 2字節(jié)的I P數(shù)據(jù)報(bào)。
總長度字段是I P首部中必要的內(nèi)容,因?yàn)橐恍?shù)據(jù)鏈路(如以太網(wǎng))需要填充一些數(shù)據(jù)以達(dá)到最小長度。盡管以太網(wǎng)的最小幀長為4 6字節(jié),但是I P數(shù)據(jù)可能會更短。假如沒有總長度字段,那么I P層就不知道4 6字節(jié)中有多少是I P數(shù)據(jù)報(bào)的內(nèi)容。
標(biāo)識字段唯一地標(biāo)識主機(jī)發(fā)送的每一份數(shù)據(jù)報(bào)。通常每發(fā)送一份報(bào)文它的值就會加1
RFC791 [Postel 1981a]認(rèn)為標(biāo)識字段應(yīng)該由讓IP發(fā)送數(shù)據(jù)報(bào)的上層來選擇。假設(shè)有兩個連續(xù)的I P數(shù)據(jù)報(bào),其中一個是由T C P生成的,而另一個是由U D P生成的,那么它們可能具有相同的標(biāo)識字段。盡管這也可以照常工作(由重組算法來處理),但是在大多數(shù)從伯克利派生出來的系統(tǒng)中,每發(fā)送一個I P數(shù)據(jù)報(bào),I P層都要把一個內(nèi)核變量的值加1,不管交給IP的數(shù)據(jù)來自哪一層。內(nèi)核變量的初始值根據(jù)系統(tǒng)引導(dǎo)時的時間來設(shè)置。
T T L(t i m e - t o - l i v e)生存時間字段設(shè)置了數(shù)據(jù)報(bào)可以經(jīng)過的最多路由器數(shù)。它指定了數(shù)據(jù)報(bào)的生存時間。T T L的初始值由源主機(jī)設(shè)置(通常為3 2或6 4),一旦經(jīng)過一個處理它的路由器,它的值就減去1。當(dāng)該字段的值為0時,數(shù)據(jù)報(bào)就被丟棄,并發(fā)送I C M P報(bào)文通知源主機(jī)。第8 章我們討論Tr a c e r o u t e 程序時將再回來討論該字段。
首部檢驗(yàn)和字段是根據(jù)I P首部計(jì)算的檢驗(yàn)和碼。它不對首部后面的數(shù)據(jù)進(jìn)行計(jì)算。I C M P、I G M P、U D P和T C P在它們各自的首部中均含有同時覆蓋首部和數(shù)據(jù)檢驗(yàn)和碼。
為了計(jì)算一份數(shù)據(jù)報(bào)的I P檢驗(yàn)和,首先把檢驗(yàn)和字段置為0。然后,對首部中每個16 bit 進(jìn)行二進(jìn)制反碼求和(整個首部看成是由一串16 bit的字組成),結(jié)果存在檢驗(yàn)和字段中。當(dāng)收到一份I P數(shù)據(jù)報(bào)后,同樣對首部中每個16 bit 進(jìn)行二進(jìn)制反碼的求和。由于接收方在計(jì)算過程中包含了發(fā)送方存在首部中的檢驗(yàn)和,因此,假如首部在傳輸過程中沒有發(fā)生任何差錯,那么接收方計(jì)算的結(jié)果應(yīng)該為全1。假如結(jié)果不是全1(即檢驗(yàn)和錯誤),那么I P就丟棄收到的數(shù)據(jù)報(bào)。但是不生成差錯報(bào)文,由上層去發(fā)現(xiàn)丟失的數(shù)據(jù)報(bào)并進(jìn)行重傳。
I C M P、I G M P、U D P和T C P都采用相同的檢驗(yàn)和算法,盡管T C P和U D P除了本身的首部和數(shù)據(jù)外,在I P首部中還包含不同的字段。在RFC1071[Braden, Borman and Patridge 1988]中有關(guān)于如何計(jì)算I n t e r n e t檢驗(yàn)和的實(shí)現(xiàn)技術(shù)。由于路由器經(jīng)常只修改T TL字段(減1),因此當(dāng)路由器轉(zhuǎn)發(fā)一份報(bào)文時可以增加它的檢驗(yàn)和,而不需要對I P 整個首部進(jìn)行重新計(jì)算。R F C 1141Mallory and Kullberg 1990]為此給出了一個很有效的方法。
但是,標(biāo)準(zhǔn)的BSD實(shí)現(xiàn)在轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)時并不是采用這種增加的辦法。每一份I P數(shù)據(jù)報(bào)都包含源I P地址和目的I P地址。我們在1 . 4節(jié)中說過,它們都是32 bit 的值。最后一個字段是任選項(xiàng),是數(shù)據(jù)報(bào)中的一個可變長的可選信息。目前,這些任選項(xiàng)定義如下:
安全和處理限制(用于軍事領(lǐng)域)

記錄路徑(讓每個路由器都記下它的I P地址,)

時間戳(讓每個路由器都記下它的I P地址和時間,)

寬松的源站選路(為數(shù)據(jù)報(bào)指定一系列必須經(jīng)過的I P地址,)

嚴(yán)格的源站選路(與寬松的源站選路類似,但是要求只能經(jīng)過指定的這些地址,不能經(jīng)過其他的地址)。這些選項(xiàng)很少被使用,并非所有的主機(jī)和路由器都支持這些選項(xiàng)。選項(xiàng)字段一直都是以32 bit作為界限,在必要的時候插入值為0的填充字節(jié)。這樣就保證I P首部始終是32 bit 的整數(shù)倍(這是首部長度字段所要求的)。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 通山县| 荆州市| 沛县| 延边| 东乡县| 山西省| 高雄县| 安宁市| 余江县| 渝北区| 临夏市| 南岸区| 遵义市| 壶关县| 富民县| 仪征市| 自贡市| 云南省| 河源市| 西峡县| 石楼县| 柳州市| 通州区| 福清市| 边坝县| 鄂伦春自治旗| 鄯善县| 张家川| 神农架林区| 安多县| 永胜县| 井研县| 天长市| 巧家县| 石狮市| 呼伦贝尔市| 六枝特区| 甘孜| 化隆| 永靖县| 京山县|