天天看點

網絡層——IP協定(IP協定報頭&IP封包的分片與組裝)

1 IP協定報頭

網絡層——IP協定(IP協定報頭&IP封包的分片與組裝)

各字段解釋:

版本号:占4位,指IP協定的版本,有IPv4和IPv6兩種,對于IPv4協定該字段就是4

首部長度:占4位,指IP協定的報頭長度,範圍在20-60位元組

區分服務:占8位,隻有在使用區分服務時該字段才有作用,一般情況下不使用該字段

長度:占16位,指IP協定的總長度:報頭長度+資料長度

根據IP報頭來看,長度占16位,長度應該在65535個位元組,但實際傳送不了這麼大長度的IP封包;

IP封包的長度是依據下層資料鍊路層規定的資料幀中的資料字段的最大長度,稱為最大傳輸單元MTU;

一般最大傳輸單元MTU的長度為1500個位元組,是以IP封包最大長度為1500個位元組,若超過該長度,IP封包會被分片。

16位辨別、3位标志、13位片偏移用于IP封包的分片群組裝

辨別:占16位,由于IP封包有長度的限制,超過MTU會被分片,而在傳遞給上層時需要将IP封包組裝,該字段用于唯一辨別一個IP封包

标志:占3位,第一位為保留位,第二位表示該IP封包是否分片(1表示禁止分片,0表示分片),第三位表示該IP封包是否為最後一個

片偏移:占13位,在封包分片時有效,表示該片封包應位于整個IP封包的那個位置

生存時間TTL:占8位,在路由時通過一跳與多跳的方式查找路徑,為防止某個封包在網絡中一直處于遊離狀态,無限循環,是以在報頭中規定了封包在網絡中最多經過路由器的數量,也就是該封包的最大跳數

協定類型:占8位,表示該IP封包要交給上層的那個協定(UDP或TCP)

首部校驗和:占16位,鑒别頭部是否有損壞

源IP:占32位,表示該IP封包從哪裡來

目的IP:占32位,表示該IP封包要發送到哪裡

2 IP封包的分片群組裝

當IP封包的總長度超過MTU(1500)位元組時,該IP封包需要在網絡中分片發送,

接收端會根據接收到的IP封包報頭的16位辨別,3位标志和13位片偏移有效的對分片封包進行組裝。

網絡層——IP協定(IP協定報頭&IP封包的分片與組裝)

封包分片組裝的缺點:

(1)封包的其中一個分片丢失會造成整個封包的丢失,增大封包丢失的可能性,降低了資料傳輸的可靠性;

(2)封包的分片組裝需要IP層自己來做,借助IP協定報頭中的辨別、标志和片偏移字段進行封包的分片群組裝會增大資料傳輸的成本,降低資料傳輸的性能。

【注】:若某IP封包分片後在網絡傳輸的過程中,某一篇封包丢失,則會認為該IP封包整體丢失,觸發重傳機制

繼續閱讀