摘要:通信工程師交換技術(shù)數(shù)據(jù)鏈路層幀格式:總長度是指首部和數(shù)據(jù)部分之和的長度,單位為字節(jié)??傞L度字段為16bit,因此數(shù)據(jù)報的最大長度可達(dá)65535字節(jié)(即64KB)。
1)總長度(TotalLength):總長度是指首部和數(shù)據(jù)部分之和的長度,單位為字節(jié)??傞L度字段為16bit,因此數(shù)據(jù)報的最大長度可達(dá)65535字節(jié)(即64KB)。
在IP層下面的每一種數(shù)據(jù)鏈路層都有其自己的幀格式,其中幀的數(shù)據(jù)域的最大長度,稱為最大傳送單元(MaximumTransferUnit,MTU)的長度。例如,以太網(wǎng)MAC幀的MTU值等于1500字節(jié)。為了將一個IP數(shù)據(jù)報裝人鏈路層幀的數(shù)據(jù)域,數(shù)據(jù)報的總長度(即首部加上數(shù)據(jù)部分)決不能超過數(shù)據(jù)鏈路層的MTU值。
當(dāng)數(shù)據(jù)報總長度超過網(wǎng)絡(luò)所容許的MTU值時,就必須將過長的數(shù)據(jù)報中的數(shù)據(jù)部分進(jìn)行分片(圖7-4)。數(shù)據(jù)報的數(shù)據(jù)部分的每一片,加上首部稱為數(shù)據(jù)報文分組,簡稱分組。因此實際通過網(wǎng)絡(luò)傳送的數(shù)據(jù)單元是分組。當(dāng)然,在目的節(jié)點必須將屬于同一數(shù)據(jù)報的各個分組重新裝配起來,而后送給上一層。分組的格式與它所屬的數(shù)據(jù)報相同,也是由首部和數(shù)據(jù)部分構(gòu)成。分組首部與數(shù)據(jù)報首部基本相同,不過,分組首部中的“總長度”字段不是指分片前的數(shù)據(jù)報長度,而是指本分組的長度。另外,屬于同一數(shù)據(jù)報的各個分組有不同的片偏移量。注意:數(shù)據(jù)片是數(shù)據(jù)報的數(shù)據(jù)部分的一片,片沒有頭,而分組包括首部和數(shù)據(jù)片。
2)標(biāo)識(Identification):占16bit,它是一個計數(shù)器,用來產(chǎn)生數(shù)據(jù)報的標(biāo)識。但這里的“標(biāo)識”并沒有序號的意思,因為IP是無連接服務(wù),數(shù)據(jù)報不存在按序接收的問題。當(dāng)IP發(fā)送數(shù)據(jù)報時,它就將這個計數(shù)器的當(dāng)前值復(fù)制到標(biāo)識字段中。當(dāng)數(shù)據(jù)報由于長度超過網(wǎng)絡(luò)的MTU而必須分片時,這個標(biāo)識字段的值就被復(fù)制到所有的數(shù)據(jù)分組的標(biāo)識字段中。相同的標(biāo)識字段的值使分片后形成的各數(shù)據(jù)分組,在獨立地通過網(wǎng)絡(luò)后,能正確地重裝成為原來的數(shù)據(jù)報。
標(biāo)志(Flag):占3bit。目前只有前兩個比特有意義。
標(biāo)志字段中的最低位記為MF(MoreFragment)cMF=1表示本分組后面還有同一數(shù)據(jù)報的后續(xù)分組。MF=0表示這是數(shù)據(jù)報的最后一個分組。
標(biāo)志字段中間的一位記為DF(Don'tFragment),意思是“不分片”,即只有當(dāng)DF=0時,才允許將數(shù)據(jù)報分片。
片偏移(FragmentOffset):片偏移指示數(shù)據(jù)報在分片后,某一片在原數(shù)據(jù)報中的相對位置,也就是說,相對于原數(shù)據(jù)報的數(shù)據(jù)部分的起點,該片從何處開始。片偏移以8個字節(jié)為度量單位。這就是說,每個分片的長度一定是8字節(jié)(64bit)的整數(shù)倍。
這里舉一個例子,設(shè)某一數(shù)據(jù)報的數(shù)據(jù)部分的長度為3800字節(jié)(首部長度固定),網(wǎng)絡(luò)的MTU值為1420字節(jié),所以必須分片。因首部長度為20字節(jié),因此每片的長度不能超過1400字節(jié)。于是分為3個分組,各個分組的數(shù)據(jù)部分的長度分別為1400,1400和1000字節(jié)。原始數(shù)據(jù)報首部被復(fù)制到各分組的首部,但必須修改有關(guān)字段的值,圖7-4所示為分片的結(jié)果。表7-1所示為各分組的首部中與分片有關(guān)的字段中的數(shù)值,其中標(biāo)識字段的值是任意給定的。具有相同標(biāo)識的數(shù)據(jù)分組在目的站就可無誤地重裝成原來的數(shù)據(jù)報。
3)生存時間(TimeToLive,TTL):占8bU,TTL用來限制數(shù)據(jù)報在網(wǎng)絡(luò)中的逗留時間,其單位為秒。生存時間的建議值是32s,但也可設(shè)定為3s?4s,甚至255s。它必須在每個節(jié)點中遞減。實際上,TTL只以分組可以經(jīng)過的最多網(wǎng)絡(luò)節(jié)點數(shù)來計數(shù),每經(jīng)過一個節(jié)點計數(shù)值減1,當(dāng)它減為0時,網(wǎng)絡(luò)節(jié)點就要丟棄該數(shù)據(jù)報,并向源節(jié)點發(fā)送一個告警分組。該特性可以防止數(shù)據(jù)報無限制地在網(wǎng)絡(luò)內(nèi)徘棲而始終不能到達(dá)目的節(jié)點,浪費網(wǎng)絡(luò)資源。
4)協(xié)議(Protocol):占8bit,協(xié)議字段指出此數(shù)據(jù)報攜帶的數(shù)據(jù)是使用何種協(xié)議,以便使目的主機的IP層知道應(yīng)將數(shù)據(jù)部分上交給哪個協(xié)議處理過程。圖7-5表示IP層需要根據(jù)這個協(xié)議字段的值將所收到的數(shù)據(jù)交付到正確的地方。常用的一些協(xié)議和相應(yīng)的協(xié)議字段值如表7-2所示。
5)首部校驗和(HeaderChecksum):此字段只校驗數(shù)據(jù)報的首部,不包括數(shù)據(jù)部分。這是因為數(shù)據(jù)報每經(jīng)過一個節(jié)點,節(jié)點處理機都要重新計算一下首部校驗和(一些字段,如生存時間、標(biāo)志、片偏移等都可能發(fā)生變化)。如將數(shù)據(jù)部分一起校驗,計算的工作量就太大了。
為了減小計算校驗和的工作量,IP首部的校驗和不采用CRC校驗碼,而采用下面的簡單計算方法:在發(fā)送端,先將IP數(shù)據(jù)報首部劃分為許多16bit字的序列,并將檢驗和字段置零。用反碼算術(shù)運算將所有16bit字相加后,將和的反碼寫人檢驗和字段。接收端收到數(shù)據(jù)報后,將首部的所有16bit字再使用反碼算術(shù)運算累加一次,將得到的和取反碼,即得出接收端檢驗和的計算結(jié)果。若首部未發(fā)生任何變化,則此結(jié)果必為0,于是就保留這個數(shù)據(jù)報;否則即認(rèn)為有錯,并將此數(shù)據(jù)報丟棄。圖7-6說明了IP數(shù)據(jù)報首部校驗和的計算過程。
返回目錄:
編輯推薦
通信專業(yè)實務(wù)考試終端與業(yè)務(wù)教程匯總
通信工程師備考資料免費領(lǐng)取
去領(lǐng)取