IP首部

1. 引言

IP是TCP/IP協議族中最爲核心的協議。全部的TCP、UDP、ICMP及IGMP數據都以IP數據報格式傳輸,可是IP提供不可靠、無鏈接的數據報傳送服務。
不可靠的意思是它不能保證IP數據報嫩成功地到達目的地。IP僅提供最好的傳輸服務。若是發生某種錯誤時,如某個路由器暫時用完了緩衝區,IP有一個簡單的錯誤處理算法:丟棄該數據報,而後發送ICMP消息報給信源端。任何要求的可靠性必須由上層來提供(如TCP)。
無鏈接的意思是IP並不維護任何關於後續數據報的狀態信息。每一個數據報的處理是相互獨立的。這也說明,IP數據報能夠不按發送順序接收。若是一信源向相同的信宿發送兩個連續的數據報(先是A,而後是B),每一個數據報都是獨立地進行路由選擇,可能選擇不一樣的路線,所以B可能在A達到以前先到達。算法

2. IP首部

IP數據報的格式以下,普通IP首部長爲20個字節,除非含有選項字段:網絡

 

上圖中,最高位在左邊,記爲0bit;最低位在右邊,記爲31bit。
4個字節的32bit值如下面的次序傳輸:首先0~7bit,其次8~15bit,而後16~23bit,最後是24~31bit。這種傳輸次序稱做big endian字節序。
因爲TCP/IP首部中全部的二進制整數在網絡中傳輸時都要求以這種次序,所以它又稱爲忘了字節序。以其餘形式存儲二進制整數的機器,如little endian格式,則必須在傳輸數據以前把首部轉換成網絡字節序。
(1)4位版本:目前的協議版本號是4.
(2)4位首部長度:首部佔32bit字的數目,包括任何選項,因爲它是一個4比特字段,所以首部最長爲60個字節。
(3)8位服務類型(TOS):包括一個3bit的優先權子字段,4bit的TOS子字段,1bit未用位但必須置0。4bit的TOS分別表明:最小時延、最大吞吐量、最高可靠性和最小費用,4bit中同時只能置其中1bit爲1,。若是全部4bit均爲0,那就意味着是通常服務。
(4)16位總長度:指整個IP數據報的長度,以字節爲單位。利用首部長度字段和總長度字段,就能夠知道IP數據報中數據內容的起始位置和長度。因爲該字段長16比特,因此IP數據包最長可達65535字節,當數據報被分片時,該字段的值也隨着變化。
(5)16位標識:惟一標識主機發送的每一份數據報,一般每發送一份報文它的值就會加1。
(6)3位標誌
(7)13位片偏移
(8)8位生存時間:TTL設置了數據報能夠通過的最多路由器數,它指定了數據報的生存時間。TTL的初始值由源主機設置(一般爲32或64),一旦通過一個處理它的路由器,它的值就減去1.當該字段的值爲0時,數據報就被丟棄,併發送ICMP報文通知源主機。
(9)8位協議:識別是哪一個協議向IP傳送數據。
(10)16位首部檢驗和:根據IP首部的計算的檢驗和碼。不對首部後面的數據進行計算,ICMP、IGMP、UDP和TCP在它們各自的首部中均含有同時覆蓋首部和數據檢驗和碼。若是檢驗和錯誤,IP就丟棄收到的數據報,但不生成差錯報文,由上層去發現丟棄的數據報並進行重傳。
(11)32位源IP地址
(12)32位目的IP地址
(13)選項:可變長的可選信息,選項字段都是以32bit做爲界限,在必要的時候插入值位0的填充字節。這樣就保證IP首部始終是32bit的整數倍(這是首部長度字段所要求的)。
(14)數據併發

相關文章
相關標籤/搜索