分析ICMP协议数据包

实验原理

ping是用来测试网络连通性的命令,一旦发出ping命令,主机会发出连续的测试数据包到网络中,在通常的情况下,主机会收到回应数据包,ping采用的是ICMP协议。

实验步骤

在过滤条件中分别输入“icmp”

点击开始抓包,为了抓取使用ICMP的包,我们要设置过滤条件,点击“选项”。

这是可以看到抓包过滤按钮后面的文本框出现了ICMP字样,说明过滤条件设置成功:点击开始,发现现在抓取不到任何包:

打开命令行窗口,执行命令:ping www.baidu.com:

这时可以看到数据包抓取页面抓取到了8包,与命令行显示的已发送和已接受的包的数量是一致的:

ICMP报文的格式为:

在这个试验中,可以发现,icmp的报文就只有两种,请求和应答:

请求:

应答:

这两个报文的type不一样,8代表请求,0代表应答;code都为0,表示为回显应答;标示符和序列号都是一样的,表示这两个报文是配对的 。

DHCP数据包分析
使用DHCP获取IP地址:
  • (1)打开命令窗口,启动Wireshark。
  • (2)输入“ipconfig /release”。这条命令会释放主机目前的IP地址,此时,主机IP地址会变为0.0.0.0


  • (3)然后输入“ipconfig /renew”命令。这条命令让主机获得一个网络配置,包括新的IP地址。


  • (4)等待,直到“ipconfig /renew”终止。然后再次输入“ipconfig /renew” 命令。


  • (5)当第二个命令“ipconfig /renew” 终止时,输入命令“ipconfig /release” 释放原来的已经分配的IP地址


  • (6)停止分组俘获。如下图:


分析
  • 由截图可知,本机发起DHCP Discover包,用来寻找DHCP服务器,源ip是0.0.0.0,因为刚开始还不知道,目的地址是255.255.255.255的广播地址,广播到整个网段。
  • 此字段表示DHCP客户端的报文类型:
  • 这是UDP上的DHCP,本机发起的端口是68,目标端口是67。
Offer(提供)
  • DHCP服务器收到客户端发的DHCP Discover之后,会在自己的地址池中拿出一个没有分配的地址以及配套的参数(如:掩码、DNS、网关、域名、租期……),然后以一个DHCP Offer包发送出去。
  • 此时源IP是DHCP服务器的IP,目的IP是255.255.255.255的广播。这时候本机还无法获得IP,所以DHCP服务器只能用广播来回应。
  • Message type为2表明是回复包。
  • 给客户端的IP地址:192.168.42.86,但是现在还没有确认。
  • 中断地址(网关):Relay agent IP address:0.0.0.0
  • 此截图表明通过UDP传输,客户端端口号68,服务器是67。

DHCP服务器地址 :

Request(请求)
  • 客户端收到这个DHCP Offer后,会再发出一个DHCP Request给服务器来申请这个Offer中包含的地址。这个时候,客户端还没有正式拿到地址,所以还需要向DHCP服务器申请。
  • 此时客户端的源IP还是0.0.0.0,目的IP还是255.255.255.255。
  • 将这些都广播出去,告诉其他DHCP服务器和分配给本机的服务器。
确认回复
  • 被客户机选择的DHCP服务器在收到DHCPREQUEST广播后,会广播返回给客户机一个DHCPACK消息包,表明已经接受客户机的选择,并将这一IP地址的合法租用以及其他的配置信息都放入该广播包发给客户机。