协议-网络层-IPv4

来源:互联网 发布:大阪 知乎 编辑:程序博客网 时间:2024/05/23 22:48

1. 数据包准备

我们首先通过wireshark抓取一个ICMP的数据包,该协议是IPv4上层的协议,我们可以通过分析该数据包查看IPv4数据包的组成。

0000   04 f9 38 b8 31 5d 00 21 86 29 c5 aa 08 00 45 000010   00 3c 41 88 00 00 40 01 00 00 0a 0a 0c a3 0a 0a0020   02 58 08 00 4d 5a 00 01 00 01 61 62 63 64 65 660030   67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 760040   77 61 62 63 64 65 66 67 68 69

2. IPv4协议示意图

这里写图片描述

3. 数据包分析

3.1 Eth:

destination:04 f9 38 b8 31 5dsource: 00 21 86 29 c5 aatype: 08 00【ip】

3.2 IP:

  • 版本:占 4 位,指 IP 协议的版本目前的 IP 协议版本号为 4 (即 IPv4)
4
  • 首部长度:占4位,可表示的最大数值是15个单位(一个单位为 4 字节)因此IP 的首部长度的最大值是 60 字节
5:5*4 = 20字节,首部长度为20字节
  • 区分服务: 占8位,用来获得更好的服务,在旧标准中叫做服务类型,但实际上一直未被使用过.1998 年这个字段改名为区分服务.只有在使用区分服务(DiffServ)时,这个字段才起作用.一般的情况下都不使用这个字段
00
  • 总长度:占16位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节.总长度必须不超过最大传送单元 MTU
00 3c :3*16+12 = 60 
  • 标识:占16位,它是一个计数器,用来产生数据报的标识
41 88 
  • 标志(flag):占3位,目前只有前两位有意义,MF:标志字段的最低位是 MF (More Fragment),MF=1 表示后面“还有分片”。MF=0 表示最后一个分片;DF:标志字段中间的一位是 DF (Don’t Fragment),只有当 DF=0 时才允许分片;
0 允许分片,是最后一片
  • 片偏移: 占12位,指较长的分组在分片后某片在原分组中的相对位置.片偏移以 8 个字节为偏移单位
0

这里写图片描述

  • 生存时间:占8位,记为TTL (Time To Live) 数据报在网络中可通过的路由器数的最大值,TTL 字段是由发送端初始设置一个 8 bit字段.推荐的初始值由分配数字 RFC 指定,当前值为 64.发送 ICMP 回显应答时经常把 TTL 设为最大值 255
40=64
  • 协议: 占8位,指出此数据报携带的数据使用何种协议以便目的主机的IP层将数据部分上交给哪个处理过程, 1表示为 ICMP 协议
01 = ICMP

具体编号协议对照表如下:

这里写图片描述

  • 首部检验和:占16位,只检验数据报的首部不检验数据部分.这里不采用 CRC 检验码而采用简单的计算方法
00 00
  • 源地址:4字节
0a 0a 0c a3 = 10.10.12.163
  • 目的地址:4字节
0a 0a 02 58 = 10.10.2.88
原创粉丝点击