IP數據包由報頭和數據兩部分組成。報頭的前一部分是固定長度,共20字節。在報頭的固定部分的後面是可選部分——IP選項和填充域。
首部各字段的含義以下
一、版本
佔4位,指IP協議的版本。
二、報頭長度
佔4位,該字段的單位是32位字(1個32位字長是4字節),所以當IP報頭長度爲1111時,報頭長度就達到最大值60字節。當IP分組的首部長度不是4字節的整數倍是,就須要對填充域加以填充。最經常使用的報頭長度爲20位(報頭長度值爲0101),這時不使用任何選項。
三、區分服務(服務類型)
佔8位,在通常狀況下都不使用這個字段。
四、總長度
指報頭和數據之和的長度,單位是字節。總長度字段爲16位,故IP數據報的最大長度爲65535。
每一種數據鏈路層都有其本身的幀格式,其中包括幀格式中的數據字段的最大長度,這稱爲最大傳送單元MTU。當IP數據報封裝成鏈路層的幀時,此數據報的總長度不能超過對應MTU的值。若數據報長度超過對於MTU的值,就將數據報進行分片處理,此時數據報首部中的「總長度「字段是指分片後的每個分片的報頭長度和數據長度之和。
五、標識
佔16位。IP軟件在存儲器中維持一個計數器,每產生一個數據報,計數器就加1,並賦給標識字段。當數據報進行分片處理後,每一個分片的標識值都與原數據報的標識值相同,則在接收端具備相同標識值的分片就能最終正確的重裝成爲原來的數據報。
六、標誌
佔3位,但目前只有兩位有意義。
- 最低位記爲MF。MF=1即表示後面」還有分片「的數據包。MF=0表示這已經是若干數據包片中的最後一個。
- 中間位記爲DF,意思是」不能分片「。只有當DF=0時才容許分片。
七、片偏移
佔13位。表示每一個數據報的分片在原數據報中的相對位置。片偏移以8個字節爲偏移單位,即每一個分片的長度必定是8字節的整數倍。
八、生存時間
佔8位。表示數據報在網絡中的壽命。最初以秒爲TTL值爲單位,如今以跳數爲單位,則目前的最大數據爲255.
九、協議
佔8位,指出此數據報攜帶的數據是使用何種協議,以便使目的主機的IP層知道應將數據部分上交給那個處理過程。
TCP對應協議字段值6;UDP對應協議字段值17
十、首部校驗和
佔16位,該字段只校驗數據報的報頭,但不包括數據部分。
十一、源地址
佔32位
十二、目的地址
佔32位
轉自:http://blog.csdn.net/xieyutian1990/article/details/24179181