版本:IP協議版本號,目前為4。故稱為IPv4.首部長度:以4位元組為單位。最小值為5,不包含可選欄位的IP首部大小為20位元組。最大值為15,故IP首部最大長度為60位元組。服務型別(TOS):3bit優先權(已被忽略),4bit的TOS欄位,1bit未用(0)。4bit的TOS分別為最小時延、最大吞吐量、最高可靠性、最小費用。4bit中只能置其中一個為1。全零時表示一般服務。現在大多數TCP/IP實現都不支援TOS特性,但是無線中QoS有用到該欄位。總長度:整個IP資料報的長度,以位元組為單位。16bit,可知IP資料報最大長度為65535位元組。識別符號:唯一標示一份IP資料報。通常值遞增。標誌位:片偏移:TTL:time to live,生存時間。設定了資料報可以經過的最多路由器數。由源主機設定,每經過一個路由器,該值減一,當值為0時,被丟棄。併發送ICMP報文通知源主機。協議:標示基於IP的協議。ICMP:1,IGMP:2,TCP:6,UDP:17。首部校驗和:根據IP首部計算的校驗和,不對首部後面的資料進行計算。先置檢驗和為0,按照16bit進行二進位制反碼求和,結果存放於檢驗和欄位中。源IP地址目的IP地址可選欄位:
在進行網路請求時,IP資料報將透過電訊號傳送到網路電纜上,或者透過無線訊號轉換為電訊號傳送到電纜上,IP資料報都會透過網路電纜或者無線訊號傳遞到路由器上,而路由器會透過IP定址演算法來找到對應的要訪問的IP主機,然後將電訊號也就是IP資料報傳送過去;
如果是同一個區域網內的IP,則直接透過內網的路由器就可以查詢到,如果是公網的,理論上也可以透過路由表查詢到,因為這個路由表中應該也會有公網IP的資訊儲存。
所以如果是內網訪問,區別不大。
IP層在記憶體中都有一個路由表,當收到資料報進行傳送時,都要搜尋該表。
路由表每項包含的資訊:
目的IP地址。可以是主機地址,也可以是網路地址,由下述的標誌來標示。下一跳路由器的IP地址,或者是直接連線的介面。標誌。一個標誌標示目的IP是網路地址還是主機地址,另一個標誌指示下一站路由器是否為真正的下一站路由器,還是一個直連的介面。為資料報的傳輸指定一個網路介面。IP路由選擇主要完成下面的功能:
1) 搜尋路由表,尋找與目的IP完全匹配的條目。如果找到,則把報文發給下一站路由或者直連線口(取決於標誌欄位的值)
2) 搜尋路由表,尋找與目的網路號匹配的條目。找到的處理同上。這種搜尋網路的匹配方法必須考慮可能的子網掩碼。
3) 搜尋路由表,尋找標為“預設(default)”的條目。如果找到,處理同上。
如果上述都沒成功,則丟棄該包,並返回主機不可達或者網路不可達的錯誤。
資料包在傳輸過程中,經過不同的鏈路層或不同的網路會構造不同的鏈路層首部,但是IP部分不會更改(忽略路由器的NAT功能)。鏈路層的目的地址(如果有的話),始終是下一站的鏈路層地址。
IP資料報格式如下。
版本:IP協議版本號,目前為4。故稱為IPv4.首部長度:以4位元組為單位。最小值為5,不包含可選欄位的IP首部大小為20位元組。最大值為15,故IP首部最大長度為60位元組。服務型別(TOS):3bit優先權(已被忽略),4bit的TOS欄位,1bit未用(0)。4bit的TOS分別為最小時延、最大吞吐量、最高可靠性、最小費用。4bit中只能置其中一個為1。全零時表示一般服務。現在大多數TCP/IP實現都不支援TOS特性,但是無線中QoS有用到該欄位。總長度:整個IP資料報的長度,以位元組為單位。16bit,可知IP資料報最大長度為65535位元組。識別符號:唯一標示一份IP資料報。通常值遞增。標誌位:片偏移:TTL:time to live,生存時間。設定了資料報可以經過的最多路由器數。由源主機設定,每經過一個路由器,該值減一,當值為0時,被丟棄。併發送ICMP報文通知源主機。協議:標示基於IP的協議。ICMP:1,IGMP:2,TCP:6,UDP:17。首部校驗和:根據IP首部計算的校驗和,不對首部後面的資料進行計算。先置檢驗和為0,按照16bit進行二進位制反碼求和,結果存放於檢驗和欄位中。源IP地址目的IP地址可選欄位:安全和處理限制(用於軍事領域,詳見RFC 1108)
記錄路徑(讓每個路由器都記下它的IP地址)
時間戳(讓每個路由器都記下它的IP地址和時間)
寬鬆的源站選錄(為資料報指定一系列必須經過的IP地址)
嚴格的源站選錄(只能經過指定的這些地址)
可選欄位必須是32bit的整數倍,必要時需要插入0進行填充,因為IP首部始終是32bit的整數倍(這是首部長度欄位要求的)