IP包頭結構詳解

2021-08-30 21:10:00 字數 2119 閱讀 1513

1,ip包頭結構如下圖所示

[img]

2,下面具體分析ip包頭中各部分的作用。

[b]版本號(version):[/b]長度4位元。標識目前採用的ip協議的版本號。一般的值為0100(ipv4),0110(ipv6)

[b]ip包頭長度(header length):[/b]長度4位元。這個欄位的作用是為了描述ip包頭的長度,因為在ip包頭中有變長的可選部分。該部分佔4個bit位,單位為32bit(4個位元組),即本區域值= ip頭部長度(單位為bit)/(8*4),因此,乙個ip包頭的長度最長為「1111」,即15*4=60個位元組。ip包頭最小長度為20位元組。

[b]服務型別(type of service):[/b]長度8位元。8位 按位被如下定義 ppp d t r c 0

ppp:定義包的優先順序

000 普通 (routine)

001 優先的 (priority)

010 立即的傳送 (immediate)

011 閃電式的 (flash)

100 比閃電還閃電式的 (flash override)

101 cri/tic/ecp (不知道蝦公尺意思)

110 網間控制 (internetwork control)

111 網路控制 (network control)

[b]d 時延:[/b] 0:普通 1:盡量小

t 吞吐量: 0:普通 1:盡量大

r 可靠性: 0:普通 1:盡量大

m 傳輸成本: 0:普通 1:盡量小

0 最後一位被保留,恆定為0

[b]ip包總長(total length):[/b]長度16位元。 以位元組為單位計算的ip包的長度 (包括頭部和資料),所以ip包最大長度65535位元組。

[b]識別符號(identifier)(資料報id):[/b]長度16位元。該字段和flags和fragment offest欄位聯合使用,對大的上層資料報進行分段(fragment)操作。路由器將乙個包拆分後,所有拆分開的小包被標記相同的值,以便目的端裝置能夠區分哪個包屬於被拆分開的包的一部分。

[b]標記(flags):[/b]長度3位元。該欄位第一位不使用。第二位是df(don't fragment)位,df位設為1時表明路由器不能對該上層資料報分段。如果乙個上層資料報無法在不分段的情況下進行**,則路由器會丟棄該上層資料報並返回乙個錯誤資訊。第三位是mf(more fragments)位,當路由器對乙個上層資料報分段,則路由器會在除了最後乙個分段的ip包的包頭中將mf位設為1。

[b]片偏移(fragment offset):[/b]長度13位元。表示該ip包在該組分片包中位置,接收端靠此來組裝還原ip包。

[b]生存時間(ttl):[/b]長度8位元。當ip包進行傳送時,先會對該字段賦予某個特定的值。當ip包經過每乙個沿途的路由器的時候,每個沿途的路由器會將ip包的ttl值減少1。如果ttl減少為0,則該ip包會被丟棄。這個字段可以防止由於路由環路而導致ip包在網路中不停被**。

[b]協議(protocol):[/b]長度8位元。標識了上層所使用的協議。

以下是比較常用的協議號:

1 icmp

2 igmp

6 tcp

17 udp

88 igrp

89 ospf

[b]頭部校驗(header checksum):[/b]長度16位。用來做ip頭部的正確性檢測,但不包含資料部分。 因為每個路由器要改

變ttl的值,所以路由器會為每個通過的資料報重新計算這個值。

[b]起源和目標位址(source and destination addresses):[/b]這兩個地段都是32位元。標識了這個ip包的起源和目標位址。要注意除非使用nat,否則整個傳輸的過程中,這兩個位址不會改變。

至此,ip包頭基本的20位元組已介紹完畢,此後部分屬於可選項,不是必須的部分。

[b]填充(padding):[/b]因為ip包頭長度(header length)部分的單位為32bit,所以ip包頭的長度必須為32bit的整數倍。因此,在可選項後面,ip協議會填充若干個0,以達到32bit的整數倍。

3,c結構體定義:

//ip頭部,總長度20位元組

typedef struct _ip_hdr

ip_hdr;

IP包頭結構詳解

這篇講得比較詳細 清楚,轉了 ip包頭結構如下圖所示 下面具體分析ip包頭中各部分的作用。版本號 version 長度4位元。標識目前採用的ip協議的版本號。一般的值為0100 ipv4 0110 ipv6 ip包頭長度 header length 長度4位元。這個欄位的作用是為了描述ip包頭的長度...

ip包頭結構詳解

空間管理您的位置 51testing軟體測試網 seventest 日誌 檢視 1195 評分 0 0 版本號 version 長度4位元。標識目前採用的ip協議的版本號。一般的值為0100 ipv4 0110 ipv6 ip包頭長度 header length 長度4位元。這個欄位的作用是為了描述...

IP包頭詳解

ip協議 writed by vindeselly 版本 4 bit 首部長度 4 bit 服務型別 tos 8 bit 總長度 位元組數 16 bit 標識16 bit 標誌3 bit 片偏移13 bit 生成時間 ttl 8 bit 協議8 bit 首部檢驗和 16 bit 源ip位址 32 b...