IPv4首部


 

《圖解TCP/IP》 4.7 IPv4的首部

版本:由4比特構成,表示標識IP首部的版本號。IPv4的版本號即為4,因此在這個字段上的值也為“4”。

首部長度:由4比特構成,表明IP首部的大小,單位為4字節(32比特)。對於沒有可選項的IP包,首部長度則設置為“5”。也就是說,當沒有可選項時,IP首部的長度為20字節(4*5=20)。

區別服務:由8比特構成,用來表明服務質量。每一個的具體含義如表所示。

這個值通用由應用指定。而且現在也鼓勵這種結合應用的特性設定TOS(Type of Service)的方法。然而在目前,幾乎所有的網絡都無視這些字段。這不僅是因為在符合質量的要求下按其要求發送本身的功能實現起來十分困難,還因為若不符合質量要求就可能會產生不公平現象。因此,實現TOS控制變得極其復雜。這也導致TOS整個互聯網幾乎就沒有被投入使用。不過已有人提出將TOS字段再划分為DSCP和ECN兩個字段的建議。

DSCP(Differential Services Codepoint,差分服務代碼點)是TOS(Type Of Services)的一部分。現在統稱為DiffSer,用來進行質量控制。

如果3-5位的值為0,0~2位則被稱作類別選擇代碼點。這樣就可以向TOS的優先度那樣提供8中類型的質量控級別。對於每一種級別所采取的措施則由提供DiffServ的運營管理者制定。為了與TOS保持一致,值越大優先度也越高。如果第五位為1,表示實驗或本地使用的意思。

ECN(Ecplicit Congestion Notification,顯示擁塞通告)用來報告網絡擁塞情況,由兩個比特構成。

第6位的ECT 用以通告上傳TCP層協議是否處理ECN。當路由器在轉發ECN為1的包的過程中,如果出現網絡擁塞的情況,就將CE位設置為1。

總長度: 表示IP首部與數據部分合起來的字節數。該字段長16比特。因此IP包的最大長度為65535=2^16字節。目前還不存在能夠傳輸最大長度為65535字節的IP包的數據鏈路。不過,由於有IP分片處理,從IP的上一層的角度看,不論底層采用何種數據鏈路,都可以認為能夠以IP的最大包長傳輸數據。

標識:由16比特構成,用於分片重組。同一個分片的標識值相同,不同分片的標識值不同。通常,每發送一個IP包,它的值也逐漸遞增。此外,即使IP相同,如果目標地址、源地址或協議不同的話,也會被認為是不同的分片。

標志:由3比特構成,標識包被分片的相關信息。每一個的具體含義如圖:

片位移:由13比特構成,用來標識被分片的每一個分段相當於原始數據的位置。第一個分片對應的值為0.由於FO域占13位,因此最多可以表示8192(=2^13)個相對位置。單位為8字節,因此最大可表示原始數據8*8192=65536字節的位置。

生存時間(TTL:Time To Live):由8比特構成,它最初的意思是以秒為單位記錄當前包在網絡上應該生存的期限。然而,在實際中它是指可以中轉多少個路由器的意思。每經過一個路由器,TTL會減1,直到變成0則丟棄該包。

協議:由8比特構成,表示IP首部的下一個首部隸屬於哪個協議。目前使用的協議部分如圖:

首部校驗和:由16比特(2個字節)構成,也叫IP首部校驗和。該字段只校驗數據報的首部,不校驗數據部分。它主要用來確保IP數據報不被破壞。校驗和的計算過程,首先要將校驗和的所有位置設置為0,然后以16比特為單位划分IP首部,並用1補數計算所有16位字的和。最后將所得到這個和的1補數賦給首部校驗和字段。

源地址:由32比特構成,表示發送端IP地址。

目標地址:由32比特構成,表示接收端IP地址。

可選項:長度可變,通常只在進行實驗或診斷時使用。該字段包含如下幾點信息:安全級別,源路徑,路徑記錄,時間戳

填充:也稱作填充物。在有可選項的情況下,首部長度可能不是32比特的整數倍。為此,通過向字段填充0,調整為32比特的整數倍。

數據:存入數據。將IP上層協議的首部也作為數據進行處理。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM