IP資料報首部格式

2021-09-21 14:42:52 字數 3104 閱讀 6473

1. ip資料報首部的固定部分中的各欄位

(1)版本佔4位,指ip協議的版本。通訊雙方使用的ip協議的版本必須一致。目前廣泛使用的ip協議版本號為4 (即ipv4)。 關於以後要使用的ipv6 (即版本6的ip協議),我們將在後面的4.6節討論。

(2)首部長度佔4位,可表示的最大十進位制數值是15。 請注意,首部長度欄位所表示數的單位是32位字(1 個32位字長是4位元組)。因為ip首部的固定長度是20位元組,因此首部長度欄位的最小值是5 (即二進位制表示的首部長度是0101)。 而當首部長度為最大值111時(即十進位制數的15), 就表明首部長度達到最大值15個32位字長,即60位元組。當ip分組的首部長度不是4位元組的整數倍時,必須利用最後的填充字段加以填充。因此ip資料報的資料部分永遠在4位元組的整數倍時開始,這樣在實現ip協議時較為方便。首部長度限制為60位元組的缺點是有時可能不夠用。但這樣做是希望使用者儘量減少開銷。最常用的首部長度是20位元組(即首部長度為0101),這時不使用任何選項。

(3)區分服務佔8位,用來獲得更好的服務。這個欄位在舊標準中叫做服務型別,但實際上-直沒有被使用過。1998 年ietf 把這個字段改名為區分服務ds (differentiatedservices)。只有在使用區分服務時,這個欄位才起作用(見8.4.4 節)。在一-般的情況下都不使用這個字段[rfc 2474, 3168, 3260]。

(4)總長度總長度指首部和資料之和的長度,單位為位元組。總長度欄位為16位,因此資料報的最大長度為216- 1 = 65535位元組。然而實際上傳送這樣長的資料報在現實中是極少遇到的。

我們知道,在ip層下面的每一種資料鏈路層協議都規定了-.個資料幀中的資料字段的最大長度,這稱為最大傳送單元mtu (maximum transfer unit)。當-乙個ip資料報封裝成鏈路層的幀時,此資料報的總長度(即首部加上資料部分)一定不能超過下面的資料鏈路層所規定的mtu值。例如,最常用的乙太網就規定其mtu值是1500位元組。若所傳送的資料報長度超過資料鏈路層的mtu值,就必須把過長的資料報進行分片處理。

雖然使用盡可能長的ip資料報會使傳輸效率得到提高(因為每- -個ip資料報中首部長度佔資料報總長度的比例就會小些),但資料報短些也有好處。每-乙個ip資料報越短,路由器**的速度就越快。為此,ip協議規定,在網際網路中所有的主機和路由器,必須能夠接受長度不超過576位元組的資料報。這是假定上層交下來的資料長度有512位元組(合理的長度),加上最長的ip首部60位元組,再加上4位元組的富餘量,就得到576位元組。當主機需要傳送長度超過576位元組的資料報時,應當先了解一下,目的主機能否接受所要傳送的資料報長度。否則,就要進行分片。

在進行分片時(見後面的「片偏移」字段),資料報首部中的「總長度」欄位是指分片後的每一-個分片的首部長度與該分片的資料長度的總和。

(5)標識(identification)佔16位。ip軟體在儲存器中維持乙個計數器,每產生乙個資料報,計數器就加1, 並將此值賦給標識字段。但這個「標識」並不是序號,因為ip是無連線服務,資料報不存在按序接收的問題。當資料報由於長度超過網路的mtu而必須分片時,這個標識欄位的值就被複製到所有的資料報片的標識欄位中。相同的標識欄位的值使分片後的各資料報片最後能正確地重灌成為原來的資料報。

(6)標誌(flag)佔3位,但目前只有兩位有意義。

●標誌欄位中的最低位記為mf (more fragment)。 mf = 1即表示後面「還有分片」的資料報。mf = 0表示這已是若干資料報片中的最後-乙個。

●標誌字段中間的一位記為df (don't fragment), 意思是「不能分片」。只有當df=0時才允許分片。

(7)片偏移佔13位。片偏移指出:較長的分組在分片後,某片在原分組中的相對位置。也就是說,相對於使用者資料字段的起點,該片從何處開始。片偏移以8個位元組為偏移單位。這就是說,每個分片的長度一定是8位元組(64位)的整數倍。

(8)生存時間佔8位,生存時間字段常用的英文縮寫是ttl (time to live), 表明這是資料報在網路中的壽命。由發出資料報的源點設定這個字段。其目的是防止無法交付的資料報無限制地在網際網路中兜圈子(例如從路由器r;**到r2,再**到rs,然後又**到r),因而白白消耗網路資源。最初的設計是以秒作為ttl值的單位。每經過- - 個路由器時,就把ttl減去資料報在路由器所消耗掉的一-段時間。若資料報在路由器消耗的時間小於1秒,就把ttl值減1。當ttl值減為零時,就丟棄這個資料報。

然而隨著技術的進步,路由器處理資料報所需的時間不斷在縮短,一般都遠遠小於1秒,後來就把ttl欄位的功能改為「跳數限制」(但名稱不變)。路由器在每次**資料報之前就把ttl值減1。 若ttl值減小到零,就丟棄這個資料報,不再**。因此,現在ttl的單位不再是秒,而是跳數。ttl的意義是指明資料報在網際網路中至多可經過多少個路由器。顯然,資料報能在網際網路中經過的路由器的最大數值是255。若把ttl的初始值設定為1,就表示這個資料報只能在本區域網中傳送。因為這個資料報-傳送到區域網上的某個路由器,在被**之前til值就減小到零,因而就會被這個路由器丟棄。

(9)協議佔8位,協議字段指出此資料報攜帶的資料是使用何種協議,以便使目的主機的ip層知道應將資料部分上交給哪個協議進行處理。

(10)首部檢驗和佔16位。這個欄位只檢驗資料報的首部,但不包括資料部分。這是因為資料報每經過一乙個路由器,路由器都要重新計算一下首部檢驗和(一些字段,如生存時間、標誌、片偏移等都可能發生變化)。不檢驗資料部分可減少計算的工作量。為了進- -步減小計算檢驗和的工作量,ip首部的檢驗和不採用複雜的crc檢驗碼而採用下面的簡單計算方法:在傳送方,先把ip資料報首部劃分為許多16位字的序列,並把檢驗和字段置零。用反碼算術運算把所有16 位字相加後,將得到的和的反碼寫入檢驗和字段。接收方收到資料報後,將首部的所有16 位字再使用反碼算術運算相加一次。將得到的和取反碼,即得出接收方檢驗和的計算結果。若首部未發生任何變化,則此結果必為0,於是就保留這個資料報。否則即認為出差錯,並將此資料報丟棄。圖4-15說明了ip資料報首部檢驗和的計算過程。

(11)源位址32位

(12)目的位址32位

IP首部資料報格式大解析

p資料報首部格式 tcp ip協議定義了乙個在網際網路上傳輸的包,稱為ip資料報 ip datagram 這是乙個與硬體無關的虛擬包,由首部和資料兩部分組成,其格式如圖所示。首部的前一部分是固定長度,共20位元組,是所有ip資料報必須具有的。在首部的固定部分的後面是一些可選字段,其長度是可變的。首部...

IP資料報首部的格式identification

標識 identification 佔16位。ip軟體在儲存器中維持乙個計數器,每產生乙個資料報,計數器就加1,並將此值賦給標識字段。但這個 標識 不是序號,因為ip是無連線服務,資料報不存在按序接收的問題。當資料報由於長度超過網路的mtu而必須分片時,這個標識欄位的值就被複製到所有的資料報片的標識...

ip首部可選字段 IP資料報格式 35

1 tcp ip協議棧 2 最大傳送單元mtu 1 最大傳送單元mtu 鏈路層資料可封裝資料的上限。如乙太網的mtu是1500位元組。2 如果所傳送的資料報長度超過某鏈路的mtu值,要怎麼處理?答 當ip資料報比鏈路的最大傳輸單元大時,就可以被分解為很多的足夠小片段,以便能夠在其上進行傳輸。即分片。...