4.IP 數(shù)據(jù)包的格式
IP 數(shù)據(jù)包的格式能夠說(shuō)明 IP 協(xié)議都具有什么功能。在 TCP/IP 的標(biāo)準(zhǔn)中,各種數(shù)據(jù)格式常常以 32 比特(即 4 字節(jié))為單位來(lái)描述。圖 1-23 是 IP 數(shù)據(jù)包的格式。
從圖 1-23 可以看出,一個(gè) IP 數(shù)據(jù)包由首部和數(shù)據(jù)兩部分組成。首部由固定 20 字節(jié)的基本首部和 0~40 字節(jié)可變長(zhǎng)度的任選項(xiàng)組成。下面介紹首部各字段的意義。
(1)版本:占 4 比物,指 IP 協(xié)議的版本。通信雙方使用的 IP 協(xié)議的版本必須一致
目前使用的 IP 協(xié)議版本為 v4(IP version 4),以前的 3 個(gè)版本目前已不使用。
(2)IHL:首部長(zhǎng)度,占 4 比特,可表示的最大數(shù)值是 15 個(gè)單位(一個(gè)單位為 4 字節(jié)),因此 IP 的首部長(zhǎng)度的最大值是 60 字節(jié)。當(dāng) IP 分組的首部長(zhǎng)度不是 4 字節(jié)的整數(shù)倍時(shí),必須利用最后一個(gè)補(bǔ)丁字段加以填充。這樣,數(shù)據(jù)部分永遠(yuǎn)從 4 字節(jié)的整數(shù)倍時(shí)開始,這樣在實(shí)現(xiàn)起來(lái)會(huì)比較方便。首部長(zhǎng)度限制為 60 字節(jié)的缺點(diǎn)是有時(shí)(如采用源站選路時(shí))不夠用,但這樣做的用意是盡量減少額外的開銷。
(3)服務(wù)類型:占 8 比特,用來(lái)獲得更好的服務(wù),其意義見圖 1-23 的上在部分所示。
服務(wù)類型字段的前 3 個(gè)比特表示優(yōu)先級(jí),它可使數(shù)據(jù)包具有 8 個(gè)優(yōu)先級(jí)中的一個(gè)。
第 4 個(gè)比特是 D 比特,表示要求有更低的時(shí)延。
第 5 個(gè)比特是 T 比特,表示要求有更高的吞吐量。
第 6 個(gè)比特是 R 比特,表示要求有更高的可靠性,即數(shù)據(jù)包傳送的過(guò)程中,被結(jié)點(diǎn)交換機(jī)丟棄的概率要更小些。
第 7 個(gè)比特是 C 比特,是新增加的,表示要求選擇費(fèi)用更低廉的路由。最后一個(gè)比特目前尚未使用。
(4) 段總長(zhǎng)度:段總長(zhǎng)度指首部和數(shù)據(jù)之和的長(zhǎng)度,單位為字節(jié)。段總長(zhǎng)度字段為16 比特,因此數(shù)據(jù)包的最大長(zhǎng)度為 65535 字節(jié),這在當(dāng)前是夠用的。當(dāng)很長(zhǎng)的數(shù)據(jù)包要分片進(jìn)行傳送時(shí),“總長(zhǎng)度”不是指未分片前的數(shù)據(jù)包長(zhǎng)度,而是指分片后每片的首部長(zhǎng)度與數(shù)據(jù)長(zhǎng)度的總和。
(5)標(biāo)識(shí)(Identification):標(biāo)識(shí)字段是為了使分片后的各數(shù)據(jù)包片最后能準(zhǔn)確地重裝成為原來(lái)的數(shù)據(jù)包。注意:這里的“標(biāo)識(shí)”并沒(méi)有順序號(hào)的意思,因?yàn)?IP 是無(wú)連接服務(wù)的,數(shù)據(jù)服不存在按序接收的問(wèn)題。
(6)標(biāo)志(Flag):占 3 比特,目前只有前兩個(gè)比特有意義。標(biāo)志字段中的最低位記為 MF(More Fragment)。MF=1 即表示后面還有分片的數(shù)據(jù)包;MF=0表示這已是若干數(shù)據(jù)包中的最后一個(gè)。
標(biāo)志字段中間的一位記為 DF(Don't Fragment),只有當(dāng) DF=0 時(shí)才允許分片。
(7) 段偏置值:該值指出較長(zhǎng)的分組在分片后,某個(gè)分片在原分組中的相對(duì)位置。也就是說(shuō),相對(duì)于用戶數(shù)據(jù)字段的起點(diǎn),該片從何處開始。片偏移以 8 字節(jié)為偏移單位。
(8)生存期:TTL(Time To Live),其單位為秒(s)。生存期的建議值是 32s,但也可設(shè)定為 3~4s,甚至為 255s。
(9)協(xié)議號(hào):占 8 比特,協(xié)議號(hào)字段指出此數(shù)據(jù)包攜帶的傳輸層數(shù)據(jù)是使用何種協(xié)議,以便目的主機(jī)的 IP 層甜美應(yīng)將此數(shù)據(jù)包上交給哪個(gè)進(jìn)程。常用的一些協(xié)議和相應(yīng)的協(xié)議字段值(寫在協(xié)議后面的短弧中)是:UDP(17)、TCP(6)、ICMP(1)、GGP(3)、EGP(8)、IGP(9)、OSPE(89)以及 OSI 的第 4 類運(yùn)輸協(xié)議 TP4(29)。
(10) 首部檢驗(yàn)和:此字段只檢驗(yàn)數(shù)據(jù)包的首部,不包括數(shù)據(jù)部分。不檢驗(yàn)數(shù)據(jù)部分是因?yàn)閿?shù)據(jù)包每經(jīng)過(guò)一個(gè)結(jié)點(diǎn),結(jié)點(diǎn)處理機(jī)就要重新計(jì)算一下首部檢驗(yàn)和(一些字段,如壽命、標(biāo)志、片偏移等都可能發(fā)生變化),如將數(shù)據(jù)部分一起檢驗(yàn),計(jì)算的工作量就太大了。
為了簡(jiǎn)化運(yùn)算,檢驗(yàn)和不采用 GRC 檢驗(yàn)碼。IP 檢驗(yàn)的計(jì)算方法是:將 IP 數(shù)據(jù)包首部看成為 16 比特字的序列。先將檢驗(yàn)的字段置零,將所有的 16 比特字相加后,將和的二進(jìn)制反碼寫入檢驗(yàn)和字段。收到數(shù)據(jù)包后,將首部的 16 比特字的序列再相加一次,若首部未發(fā)生任何變化,則和必為全 1.否則即認(rèn)為出差錯(cuò),并將此數(shù)據(jù)包丟棄。
(11) 地址:源站 IP 地址字段和目的站 IP 地址字段都各占 4 字節(jié)。
相關(guān)推薦:
2012年軟考系統(tǒng)分析師考試60天完美復(fù)習(xí)計(jì)劃
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |