IPv4数据包结构

目录

一、IP包头

1、涵义详解

1、IP大小范围

2、第一行(32Bit)

3、第二行(32Bit)

4、第三行

5、第四行

6、第五行

7、第六行

二、TCP报头

三、UDP报头


一、IP包头

 

 

1、涵义详解

1、IP大小范围

--当Options=0时,1行是4字节  共4×5=20字节

--当IHL=1111(15)时,15×4=60字节

所以IPv4的大小范围为 20字节~60字节

 

2、第一行(32Bit)

 

  • Version(版本)——4Bit

表示IP的版本号

默认值为0100表示IPv4 如果为0110表示IPv6

  • IHL(首部长度)——4Bit

表示IP首部的总长度。

默认值0101=5       5X32/8=20字节 表示普通的IP报头长度为20字节

当首部长度最大15(1111)时, 15×32/8=60  字节

  • Type of Service(服务类型)——8Bit

对我们的数据或流量进行一个标记

也称为TOS

标记流量后,可以进行QOS QOS差分服务用该字段

QOS:可以做数据过滤、数据限速——这种叫服务质量

针对一些用户,牺牲掉一部分用户的资源,为更重要的用户提供更优质的服务。

对流量标记有三种方法

1、IPP 8bit标记流量只用了前3个(只能区分8种流量),后5个bit没用

2、DSCP 区分服务代码点 标记流量用来前6个(可以区分64种服务),后2个bit用于ECN

3、PHB 前两者兼容,21种(8+12+1)

 

  • Total Length(总长度)——16Bit

IP报头 + data

表示整个IP数据包的长度,以字节为单位,最长为65535

3、第二行(32Bit)

  • Identification (标识符)——16Bit

在3层对流量进行区分、标记。  (如果数据是基于UDP传输的,因为UDP没有序列号不能进行差错控制,所以需要在IP报文中支持差错控制——要把所有分片的数据进行重组)

通常每发送一份报文该值+1,该值在数据分片时,会复制到每一个片中。所以在重组分片包的时候会观察该值。

把该值相同的分片收集到一起重组。

  • Flags(标记位)——3Bit

该字段主要用来分片和重组。

第一位Bit:R:保留位(Reserved Bit) ——该位一般置位0

第二位BIt:DF:不分片位(Don‘t Fragment)——能否分片位 该位置1(不分片) 置0(分片)

第三位Bit:MF:更多分片位 (More Fragment)——表示是否该报文为最后一片 0表示最后一片 该位置1表示后面还有更多分片

  • Fragment Offset(分片偏移)——13Bit

每一个分片的数据字段偏移原始数据报开始处的位置。

例:原始数据报的数据字段总长为1461bytes,使用TCP传输,对该数据报分片,第一片

的offset字段为0,第二片的offset字段就应该为1460

4、第三行

  • Time to  Live(生存时间)——8Bit

三层防环机制(数据包的防环机制)

每查看一次路由表TTl减一

可经过最多的路由数,即数据包在网络中可通过的路由器数的最大值,一般为255,减到0下一个路由器丢弃该数据包

表示该IP数据包可以经过的路由器的最大数量,最大为256表示可以穿越256台路由,该字段

采用减法的方式赋值,如果该字段减到了0还没有传送目的地,那么该IP数据包将被丢弃。

最初设计这个字段就是为了防止IP报文在网络中循环无线传输,占用带宽等问题

单位:s   默认255s

防环工具  每经过一个路由题,TTL-1,当TTL=0 数据包丢弃

  • Protocol(协议号)——8Bit

范围:1~255

描述上层使用什么协议  Tcp=6   UDP=17 ICMP=1 OSPF=89

  • Header Checksum(头部校验)——16Bit

只计算IP数据包的头部有没有被改过,不检验数据部分

肯定不检验TTL,这里不采用ORC检验码,而采用简单的计算方法

用来使接收端检验收到的报文是否正确。

该字段只对IP首部计算校验和 不包含后面的数据字段。

5、第四行

  • Source Address(源IP地址)——32Bit

6、第五行

  • Destination Address(目标IP地址)——32Bit

7、第六行

  • Options

一般不使用该字段,该字段的值以32Bit为单位,不足时以0补充。

特殊功能

定义数据的严格路由(IP严格路由最多定义9个IP地址-Option字段只有40个字节,还有控制字符等需要占位所有就不足40【一个IP地址4个字节】)、松散路由、记录路由、时间戳

严格路由:源到达目标必须按照指定的路由进行转发,走其他路是不允许的

写严格路由的时候:源ping目标所经过所有路由器的出接口IP地址依次写入到路由控制表中(ping包中),数据才能转发出去,数据转发出去的过程中每到一个路由器都要检测出接口IP地址,如果检测到的顺序跟列表顺序一样,则可以转发。如果中途多个路由器或少个路由器则数据包丢弃。

松散路由:写松散路由的时候:只写中间可能会产生影像数据转发方式的路由出接口地址

记录路由:将数据包传递过程中所经过的所有路由器的出接口IP地址全记录下来

时间戳:记录时间

  • Padding(填充项)

可变 全填0

只是为了保证option+padding的大小是32bit或者是32bit的倍数

注:

  • 服务类型service type可以保证服务质量
  • ip报头的第二行(标志、标识、分片偏移)是为了实现跨层封装
  • TTL生产时间0~255,默认每经过一台路由器减一,并且可以防止环路
  • 协议protocol,为了标识上层协议:tcp-6 udp-17 OSPF-89

二、TCP报头

注:其中resv可以保证QOS(服务质量)标志位(fin/syn/ack/urg)生效是1不生效0
ACK:确认序号有效。
SYN:发起一个新连接。
FIN:释放一个连接。
URG:紧急位
Burgent pointer
紧急指针为了打标签

三、UDP报头

 

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值