实验名称:利用Wireshark软件进行ICMP抓包实验
实验目的:1.掌握Wireshark的基本使用方法。
2.通过对Wireshark抓取的ICMP协议数据包分析,掌握ICMP的帧格式及运行原
理。
3.熟悉IP首部各字段的含义及以太网封装格式。
实验环境:1.硬件环境
a)网卡信息
Description:Realtek RTL8139 Family Fast Ethernet Adapter
@
Link speed:100MBits/s
Media supported:(Ethernet)
Media in use: (Ethernet)
Maximum Packet Size 1514
其它详细信息见附图1.
b)网络组成
实验电脑通过ADSL MODEM 接入互联网中联通ADSL服务器,ADSL MODEM
和ADSL服务器间通过PPP over Ethernet(PPPoE)协议转播以太网络中PPP
帧信息。电脑通过ADSL方式上网是通过以太网卡(Ethernet)与互联网相连
的。使用的还是普通的TCP/IP方式,并没有付加新的协议,对我们的抓包实
验是透明的。
2. 软件环境
a)¥
b)操作系统
Microsoft Windows XP Professional 版本2002 Service Pack 3
c)Wireshark 软件
通过系统命令systeminfo查看处理器类型为X86-based PC,为32位机,因此选
择32位的Wireshark软件(Version:Version 1.2.3 for win32)。
实验的主要步骤和内容:
1.理论基础
本实验的主要目的是通过软件进一步掌握ICMP协议,因此选用PING 命令来
产生ICMP包,通过对这些数据包的分析,达成实验目的。所以该部分必须
包括ICMP报文格式,PING命令运行机制等说明。
a)(
b)ICMP简述
ICMP(Internet Control Message Protocal)在网络中的主要作用是主机探
测、路由维护、路由选择、流量控制。运行于OSI的第三层,是IP协议
的一个附属协议。其报文封装在IP数据报内部。如下图。
【
ICMP报头结构如图0:
图0
各字段的含义:
1.类型:标识生成的错误报文,它是ICMP报文中的第一个字段;
2.代码:进一步地限定生成ICMP报文。该字段用来查找产生错误的原因;
3.校验和:存储了ICMP所使用的校验和值。
4.数据:包含了所有接受到的数据报的IP报头。还包含IP数据报中前8个字节的
数据;
c)'
d)PING命令简述
ping是DOS命令,一般用于检测网络通与不通,也叫时延,其值越大,速度越慢。PING (Packet Internet Grope),因特网包探索器,用于测试网络连接量
的程序。Ping发送一个ICMP回声请求消息给目的地并报告是否收到所希望的IC
MP回声应答。基本命令格式为:ping host(主机名或IP都可以)。
例:ping [] with 32 bytes of data:
Reply from : bytes=32 time=31ms TTL=247
Reply from : bytes=32 time=28ms TTL=247
Reply from : bytes=32 time=28ms TTL=247
Reply from : bytes=32 time=29ms TTL=247
Ping statistics for :
—
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 28ms, Maximum = 31ms, Average = 29ms
2.
软件初始配置
该节主要是掌握数据包的过滤及相关设置和命令。Wireshark 主要有捕捉过滤器和显示过滤器两种,捕捉过滤器主要是在抓包前进行设置,而大多
数时候经地捕捉过滤器后的数据依然很复杂,所以需要显示过滤器进行筛选。
两者设置如下:
设置捕捉过滤器的步骤是:
- 选择capture -> options。
- 填写"capture filter"栏或者点击"capture filter"按钮为您的过滤器起一个名字
并保存,以便在今后的捕捉中继续使用这个过滤器。
- 点击开始(Start)进行捕捉。
&
语法:Protocol Direction Host(s)。Value Logical Operations Other expression
例子:]
tcp
dst10.1.1.180@
and
tcp dst 10.2.2.2 3128显示过滤器主要是在数据包窗口中的Filter子窗口进行命令输入,命令格式
如下:
语法:Protocol|
.
String
1
.
String
2
Comparison
operator
Value…
Logical
Operations
Other
expression
例子:ftp^
passive
ip==10.2.3.4:
xor
此外,主要掌握会用协议名称及IP地址过滤数据包就可以完成该实验,如
ICMP and or等即可。
3.^
4.捕获数据包
a)开始抓包,设置Filter字段为ICMP,只抓网络接口中的ICMP数据包。
从上图可以看出,网卡的描述和接包统计等信息。本机IP为,是由DHCP服务器
动态分配的。点击start 按钮开始抓包。
b)在Windows系统中使用DOS命令ping .在Wireshark主窗口抓包如图1。
图1
5.对数据包进行宏观分析
a)"
b)对目的IP为的地址进行分析。
从图1中数据可以看到全是ICMP协议的报文,是因为Filter里面输入了icmp
过滤条件,不过,可以看出有两种报文,一个是发往,另一个是发往。通过网
上查知,前一个IP地址为一个联通ADSL服务器。本机上有进程向其不断发
ICMP请求报文,因为从ICMP报文本身看不到是哪个应用进程在发ICMP请
求(当然,很有可能是病毒程序,呵呵)。不过,只有请求,没有应答,服
务器应该设置了对笔者主机IP进行“禁止PING的设置”(安全措施)。如图
2。
图2
c)对目的IP为进行分析。
首先,通过PING命令的第一行,行知,是的地址:
Pinging [] with 32 bytes of data:
《
当然,这是因为PING 命令一开始向DNS服务器发起一次查询,查询的IP,
报文如图3。
图3
当然,请求报文里有两个IP地址,经验证都是的IP地址,系统取第一个。至于DNS的运行原理不是本实验的目的,不再赘述。
其次,在Filter里输入过滤条件如下:
icmp and == or == and not ==
意思是把ICMP报文里,源主机或目的主机是或的,但不能是的报文包筛选出来。即将PING 命令的ICMP报文单独筛选出来,如图4.
,
图4
DOS窗口下的PING命令以及应答如图5
图5
总共发出4份ICMP请求报文,收到3份应答报文,两份数据是一致的。
在数据报窗口中,选中第一条,然后右键,选择Set timer refenerce,表示以捕捉第一条数据的绝对时间为参考,其余各条目数据报Time字段便显示相对值,很很容易计算出PING命令里的返回字段time. 由图5知time分别为183ms,117ms和29ms,从图4亦可得同样的结果,只是图4显示精度更高而已。还可以进行更深入的分析和比对,见5节。
、
以上便是ping命令利用ICMP协议的工作程,以上分析,只限于流程,没有深入到协议格式、封装等具体方面,主要体现如何利用网络工具进行协议的学习。
6.对数据包进行细致分析
本节主要是对一份ICMP报文经IP层到数据链路层一个帧到的全程进行分
析,涉及链路层封装,IP封装等。先对每一个阶段重要协议字段进行简单介
绍,再根据若干原则进行纵向比较。
a)从数据帧到ICMP报文的分析
我们分析的选择了一条ICMP应答报文作为分析对象,如图6.
图6
"
对第902号帧进行分析,图7。
图7
对以太网封装格式首部进行分析。以太网封格式(RFC 894)如图8.
图8
源MAC地址和源地址和类型字段共14个字节。分析数据报如图9.
—
图9
对IP首部的分析,IP报文封装的格式如图10.
图10
此数据报IP首部信息如图11.
图11
)
ICMP报文封装格式如图0所示。分析结果如图12.
图12
类型和代码的不同组合代表不同的报文,具体如附表 1.所选数据报为
GOOGLE服务器返回的ICMP应答,所以类型、代码都为0.
b)从报文长度分析封装流程
从图12可知ICMP数据报数据部分长度为32字节,加上ICMP首部4个字节,整个ICMP报文总长度为32+4=36个字节。
ICMP进行IP封装。从图11可知IP首部共20个字节,IP数据报共
*
20+36共56字节。
IP报文进行以太网封装。从RFC 894 封装格式知,对IP报文的封装共包括6(源MAC)+6(目的MAC)+2(类型)共14个字节首部,此外,还
有4字节尾部CRC封装。所以以太网帧长度为:14+4+56=74字节。
从图6第一行可知,FRAME 902 共在线捕捉74字节数据,符合结论!
7.总结
本实验从理论基础、软件配置,抓包,分析等几个部分分析了ICMP协议,探究了PING命令的工作原理,通过Wireshark软件对ICMP数据包进行
细致分析,特别是整个封装流程,加深了对理论知识的理解,也进一步熟练
了软件的使用,为以后更加深入和广泛地学习网络协议打下了良好基础。
该实验对实验环境的分析特别重要,明白了实验的基础和软件的选用。
实验目的基本达到,不足之处:因为本实验目的所囿,对有些字段介绍的不
够深入,有些甚至没有涉及,在以后的学习中,可作更加深入的研究。
^
附图1 网卡详细信息
附表1 ICMP报文类型