IP資料報報文中的頭部格式設定

2021-08-10 12:06:07 字數 2415 閱讀 9488

在進行網路程式設計時,需要自己來設定乙個ip報文,然後再傳送到網絡卡上,以下資料是我在檢視了多人文章整理得到。

版本(version):它標識了資料報ip版本號。4位字段的值設定為二進位制的0100表示ip版本4(ipv4).設定為0110表示ip版本6(ipv6)。

首部長度:佔4位。即從0000~~~~1111,可表示的最大十進位制數字是15。首部長度的單位是(32位,即4位元組),即當「首部長度」表示為0001時,指首部的長度是1個4位元組,那麼,通過「首部長度」這個字段可以看出,真正的首部的長度應該是0~15(4位元組),即0~60位元組。首部的固定長度為20個位元組,「首部長度」為「0101(5)」是最常用的,此時只有固定部分,沒有任何選項(可變部分)。

服務型別:字段長度為8位,它用來指定特殊的資料報處理方式。服務型別字段實際上被劃分為:3bit的優先權和4bit的tos子欄位1bit的未用位置,其中1bit未用位必須置0。優先權用來設定資料報的優先順序。tos允許按照吞吐量、時延、可靠性和費用方式選擇傳輸服務。4bit的tos分別代表:最小時延,最大吞吐量,最高可靠性和最小費用。4bit中只能置其中1位元。如果所有4bit均為0,那麼就意味著是一般服務。

ip優先順序部分共三位,取值範圍為0~7(值越大,優先順序越高)。用名稱表示時,這8個取值分別為routine(普通,值為000)、priority(優先,值為001)、immediate(快速,值為010)、flash(閃速,值為011)、flash-override(急速,值為100)、critical(關鍵,值為101)、internetwork control (網間控制,值為110)和network control(網路控制,值為111),分別對應於數字0~7。

雖然tos部分共有四位,但每個ip包中這四位中只能有一位為1,所以實際只有五個取值(包括全為0的值)。這五個值所對應的名稱和數值分別為:normal(一般服務,取值為0000)、min-monetary-cost(最小開銷,取值為0001,確保路徑開銷最小)、max-reliability(最高可靠性,0010,確保可靠性最高)、max-throughput(最大吞吐量,取值為0100,確保傳輸速率最高)、min-delay(最小時延,取值為1000,確保傳輸延時最小)。

總長度:總長度欄位是指ip資料報的長度,分片後的每乙個分片的報頭長度和資料長度之和。以位元組為單位。這裡的單位為位元組,而不是4位元組。 由於該字段長16bit,所以ip資料報最長可達65535位元組。當資料報被分片時,該字段的值也隨著變化。

標識:唯一的標識主機傳送的每乙份資料報的標誌。ip軟體在儲存器中維持乙個計數器,每產生乙個資料報,計數器就加1,並賦給標識字段。當資料報進行分片處理後,每個分片的標識值都與原資料報的標識值相同,則在接收端具有相同標識值的分片就能最終正確的重灌成為原來的資料報。

標誌:共3位。r、df、mf三位。目前只有後兩位有效,

片偏移:佔13位元。表示該ip包在該組分片包中位置,接收端靠此來組裝還原ip包。

協議字段:佔8位元。指明ip層所封裝的上層協議型別(傳輸層),如icmp(1)、igmp(2) 、tcp(6)、udp(17) idrp(88)、ospf(89)等。

首部校驗和:佔16bit,該字段只校驗ip資料報的報頭,但不包括資料部分。

校驗和採用十六進製制反碼求和,ip首部校驗和的計算主要是兩步:按位異或和取反。

對於傳送方計算檢驗和:

1. 初始計算校驗和字段時該字段全部用0填充;

2. ip頭部以16位為乙個單位,逐個模2加(相當於異或);

3. 得到的結果取反,作為校驗和放入校驗和字段;

對於接收者來說,驗證也很簡單:
1. 對於接收的ip報文頭部以16位為單位逐個求和;

2. 若結果為1,則校驗正確,否則出錯丟棄;

**如下:

static word calculatechecksum(const byte *pdata, int

length)

return ~((word)((temp&0xffff)+(temp>>16)));

}

可選項字段:佔32位元。用來定義一些任選項:如記錄路徑、時間戳等。這些選項很少被使用,同時並不是所有主機和路由器都支援這些選項。可選項欄位的長度必須是32位元的整數倍,如果不足,必須填充0以達到此長度要求。

IP資料報的格式

ip資料報的格式如下 這裡只討論ipv4 該圖出自 tcpip 圖 36.8.ip資料報格式 ip資料報的首部長度和資料長度都是可變長的,但總是4位元組的整數倍。對於ipv4,4位版本欄位是4。4位首部長度的數值是以4位元組為單位的,最小值為5,也就是說首部長度最小是4x5 20位元組,也就是不帶任...

IP資料報的格式

1.ip資料報的格式 2.1 版本 佔4位,指ip協議的版本。通訊雙方使用的ip協議版本必須一致。日前廣泛使用的ip協議版本號為4 即ipv4 ipv6 目前還處於起步階段。2 首部長度 佔4位,可表示的最大十進位制數值是15,請注意,首部長度欄位所表示數的單位是32字 1個32位字長是4位元組 因...

IP資料報首部的格式identification

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