IP报文头部详解

IP报文头部详解

记不住?多记几遍,记不死它!
在这里插入图片描述
在这里插入图片描述

报头长度:

20-60字节bytes(固定长度+可选部分)

20+(0~40)

固定长度:

计算:

分五层,0~31,一层32比特bit

32*5 = 160bit = 20byte;

1、Version(版本):

用于区分不同IP版本。如IPv4、IPv6,用4bit表示,IPV4=0100

2、headerLength(头长度):

该字段用四位表示,表示整个ip包头的长度,其中数的单位是4字节。即二进制数0000-1111(十进制数0-15),其中一个最小长度为0字节,最大长度为60字节。一般来说此处的值为0101,表示头长度为20字节。

3、Differentiated Services Field (区分服务领域):

DS Field的两个部分DSCP和CU组合成一个可扩展性相对较强的方法以此来保证IP的服务质量。

发展历程
在这里插入图片描述
4、Total length(总长度):

该字段表示整个ip报文的长度,单位是1字节。 IP数据报(首部+数据)整体占多少字节。该字段为16位,所以数据报最大长度为 2^16−1=65535字节。不过由于链路层的MTU限制。超过1480字节后就会被分片(以太帧MTU为1500的情况下,除去20字节的包头)

5、identification(标识符):

唯一的标识主机发送的报文。

通常与标记字段和分片偏移字段一起用于IP报文的分片。IP软件在储存器中维护一个计数器,每产生一个数据报,计数器就+1,并将此值赋值给标识字段。当数据报长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报片的标识字段中。

当原始报文大小超过MTU,那么就必须将原始数据进行分片。每个被分片的报文大小不得超过MTU,而这个字段还将在同一原始文件被分片的报文上打上相同的标记,一边接收设备可以识别出属于同一个报文的分片,“类似于进程号”,有时候电信会用他来识别流量是否是同一台主机(因为做了PAT后源ip都是一样的)

6、flags(标记):

该字段是与ip分片有关的。其中有三位,但只后有两位是有效的,分别为MF,DF。

第1位没有被使用

第2位D是不分片位(DF),Do not fragment,顾名思义,不要分片,当DF位设置为1时,表示路由器不能对报文进行分片处理

第3位M表示还有后继分片(MF),More fragment,多分片,当路由器对报分进行分片时,除了最后一个分片的MF位设置为0外,其他所有分片的MF位均设置1,以便接收者直到收到MF位为0的分片为止

在这里插入图片描述

7、fragmentfation offset(分片偏移):

该字段是与ip分片后,相应的ip片在总的ip片的位置。

8、time to live(生存时间):

数据报到达目的地的最大报文跳数,一般是64。每经过一个路由,TTL 就会 -1,一直减到0还没有到达,那就丢弃了。这个字段主要是防止出现路由循环。

linxu为TTL=255,win98为TTL=128,win7为TTL=64这都是由应用程序自由决定的。

9、protocol(协议):

标识上层的协议,占8位。

其中1,标识ICMP、

2标识IGMP、

6标识TCP、

17标识UDP、

89标识OSPF。

10、header checksum(头部校验和):

1)只校验头部,数据部分由高层协议校验

2)无需重复校验数据部分

3)缩短了路由器转发分组时的处理时间,把工作交给终端主机使用高层的协议校验数据

11、source ip address(源地址):

源IP地址,32bit

12、destination ip address(目标地址):

目的IP地址,32bit

ip option:

就是一个选项长度,大小从1字节到40字节不等

t

12、destination ip address(目标地址):

目的IP地址,32bit

ip option:

就是一个选项长度,大小从1字节到40字节不等

Option字段很少使用,用于控制、转发要求、测试等