本实验是操作分析类实验。Ping是Windows自带的一个可执行命令,基于ICMP回送请求与应答类型报文,通过发送数据包并接收应答信息来检测两台计算机之间的网络是否连通,可用于分析、判定网络故障。本实验的要求如下:
· 掌握Wireshark软件的基本使用方法。
· 捕获执行Ping程序触发的交互数据包。
· 分析ICMP运行交互细节。
实验步骤如下:
1)启动Wireshark,设置Wireshark过滤条件。
2)开始捕获相关网络接口的网络流量。
3)在命令提示符cmd下输入ping命令。
4)观察cmd运行结果和Wireshark捕获情况。
5)Ping命令执行结束后,Wireshark停止数据捕获,分析协议运行交互细节。
选择www.baidu.com为测试服务器,测试环境如图1-62所示。客户机的IP地址为192.168.43.161。
图1-62 网页邮件登录测试环境
下面说明Ping程序执行分析的基本要点。
1)启动Wireshark,建议输入捕获过滤器以减少捕获分组数量,提高分析效率。由于Ping命令是ICMP的典型应用之一,因此捕获过滤器应设置为“icmp”,如图1-63所示。之后,双击当前正在捕获数据的接口WLAN,启动捕获。此时,Wireshark主窗口捕获不到数据包,因为还没有执行Ping命令。
2)打开命令提示符cmd,运行“ping www.baidu.com”命令,如图1-64所示,观察结果。可以得到以下结论:
· Ping命令默认发送4个ICMP回送请求数据包,每个数据包都是32字节。
· 得到了4个ICMP回送应答数据包,说明本机到百度服务器是连通的。
图1-63 设置捕获过滤器启动捕获
图1-64 运行结果
· 百度服务器响应的IP地址是39.156.66.18。
3)观察Wireshark主窗口,如图1-65所示,观察结果。可以得到以下结论:
· Ping命令触发的分组协议都是ICMP。
· 共捕获到8个数据包,从摘要部分可以看到,包含4个ICMP回送请求数据包和4个ICMP回送应答数据包。
· 8个ICMP分组产生于192.168.43.161(本机)和39.156.66.18(百度服务器)的交互过程中。
4)结果分析。
综上,Ping程序的执行过程可以概括为:本机向测试服务器发出ping命令后,默认发送4次请求。第1次请求发出后,会触发1号分组ICMP回送请求数据包,如果是连通的,服务器会立刻给主机回复,触发2号分组ICMP回送应答数据包。因此,在命令提示符cmd下,我们看到的1条回复实际触发了“一问一答”2个数据包。同理,4条回复触发8个数据包,实验结果得到验证,如图1-66所示。
图1-65 Wireshark捕获结果
图1-66 运行与嗅探组合分析
Wireshark能够清晰地观察到应用程序运行过程中的数据交互细节,是进行程序分析和调试的重要工具。本实验要求对Ping程序执行过程进行数据捕获和交互报文分析,以便加深对命令运行过程的理解。请在实验的基础上思考以下问题:
在cmd下分别执行ping 127.0.0.1和ping本机IP,执行结果是否一样?请分析原因。