实验名称:利用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:802.3(Ethernet) Media in use: 802.3(Ethernet) Maximum Packet Size 1514 其它详细信息见附图1. b) 网络组成
实验电脑通过ADSL MODEM 接入互联网中联通ADSL服务器,ADSL MODEM和ADSL服务器间通过PPP over Ethernet(PPPoE)协议转播以太网络中PPP帧信息。电脑通过ADSL方式上网是通过以太网卡(Ethernet)与互联网相连的。使用的还是普通的TCP/IP方式,并没有付加新的协议,对我们的抓包实验是透明的。 2. 软件环境 a) 操作系统
Microsoft Windows XP Professional 版本 2002 Service Pack 3 b) Wireshark 软件
通过系统命令systeminfo查看处理器类型为X86-based PC,为32位机,因此选择32位的Wireshark软件(Version:Version 1.2.3 for win32)。
实验的主要步骤和内容:
1. 理论基础
本实验的主要目的是通过软件进一步掌握ICMP协议,因此选用PING 命令来产生ICMP包,通过对这些数据包的分析,达成实验目的。所以该部分必须包括ICMP报文格式,PING命令运行机制等说明。 a) ICMP简述
ICMP(Internet Control Message Protocal) 在网络中的主要作用是主机探测、路由维护、路由选择、流量控制。运行于OSI的第三层,是IP协议的一个附属协议。其报文封装在IP数据报内部。如下图。
1
ICMP报头结构如图0:
图0
各字段的含义:
1. 类型:标识生成的错误报文,它是ICMP报文中的第一个字段;
2. 代码:进一步地限定生成ICMP报文。该字段用来查找产生错误的原因; 3. 校验和:存储了ICMP所使用的校验和值。
4. 数据:包含了所有接受到的数据报的IP报头。还包含IP数据报中前8个字节的 数据;
b) PING命令简述
ping是DOS命令,一般用于检测网络通与不通 ,也叫时延,其值越大,速度越慢。PING (Packet Internet Grope),因特网包探索器,用于测试网络连接量的程序。Ping发送一个ICMP回声请求消息给目的地并报告是否收到所希望的ICMP回声应答。基本命令格式为: ping host(主机名或IP都可以)。 例:ping www.sina.com.cn
Pinging jupiter.sina.com.cn [202.108.33.32] with 32 bytes of data: Reply from 202.108.33.32: bytes=32 time=31ms TTL=247 Reply from 202.108.33.32: bytes=32 time=28ms TTL=247 Reply from 202.108.33.32: bytes=32 time=28ms TTL=247 Reply from 202.108.33.32: bytes=32 time=29ms TTL=247 Ping statistics for 202.108.33.32:
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。
2
- 填写\"capture filter\"栏或者点击\"capture filter\"按钮为您的过滤器起一个名字并保存,以便在今后的捕捉中继续使用这个过滤器。 - 点击开始(Start)进行捕捉。 语法: Protocol Direction Host(s) Value Logical Operations Other expression 例子: tcp dst 10.1.1.1 80 and tcp dst 10.2.2.2 3128
显示过滤器主要是在数据包窗口中的Filter子窗口进行命令输入,命令格式如下:
语String String Comparison Logical Other Protocol . . Value 法: 1 2 operator Operations expression 例
ftp passive ip == 10.2.3.4 xor icmp.type 子:
此外,主要掌握会用协议名称及IP地址过滤数据包就可以完成该实验,如 ICMP ip.addr ip.src ip.dst and or等即可。
3. 捕获数据包
a) 开始抓包,设置Filter字段为ICMP,只抓网络接口中的ICMP数据包。
从上图可以看出,网卡的描述和接包统计等信息。本机IP为192.168.1.102,是由DHCP服务器192.168.1.1动态分配的。点击 start 按钮开始抓包。
b) 在Windows系统中使用DOS命令ping www.google.com.cn .在Wireshark
主窗口抓包如图1。
3
图1
4. 对数据包进行宏观分析
a) 对目的IP为125.33.0.1的地址进行分析。 从图1中数据可以看到全是ICMP协议的报文,是因为Filter里面输入了icmp过滤条件,不过,可以看出有两种报文,一个是发往125.33.0.1,另一个是发往203.208.39.99。通过网上查知,前一个IP地址为一个联通ADSL服务器。本机上有进程向其不断发ICMP请求报文,因为从ICMP报文本身看不到是哪个应用进程在发ICMP请求(当然,很有可能是病毒程序,呵呵)。不过,只有请求,没有应答,服务器应该设置了对笔者主机IP进行“禁止PING的设置”(安全措施)。如图2。
图2
b) 对目的IP为203.208.39.99进行分析。
首先,通过PING命令的第一行,行知,203.208.39.99是www.google.com.cn的地址:
Pinging www.google.com.cn [203.208.39.99] with 32 bytes of data: 当然,这是因为PING 命令一开始向DNS服务器发起一次查询,查询www.google.com.cn的IP,报文如图3。
图3
当然,请求报文里有两个IP地址,经验证都是www.google.com.cn 的IP地址,系统取第一个。至于DNS的运行原理不是本实验的目的,不再赘述。 其次,在Filter里输入过滤条件如下:
icmp and ip.addr==192.168.1.102 or ip.addr==203.238.39.99 and not ip.addr==125.33.0.1
意思是把ICMP报文里,源主机或目的主机是192.168.1.102或203.238.39.99的,但不能是125.33.0.1的报文包筛选出来。即将PING
4
www.google.com.cn 命令的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协议的工作程,以上分析,只限于流程,没有深入到协议格式、封装等具体方面,主要体现如何利用网络工具进行协议的学习。
5. 对数据包进行细致分析
本节主要是对一份ICMP报文经IP层到数据链路层一个帧到的全程进行分析,涉及802.3链路层封装,IP封装等。先对每一个阶段重要协议字段进行简单介绍,再根据若干原则进行纵向比较。 a) 从数据帧到ICMP报文的分析
我们分析的选择了一条ICMP应答报文作为分析对象,如图6.
5
图 6
对第902号帧进行分析,图7。
图7
对以太网封装格式首部进行分析。以太网封格式(RFC 4)如图8.
图8
源MAC地址和源地址和类型字段共14个字节。分析数据报如图9.
6
图9
对IP首部的分析,IP报文封装的格式如图10.
图10
此数据报IP首部信息如图11.
7
图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 4 封装格式知,对IP报文的封装共包括6(源MAC)+6(目的MAC)+2(类型)共14个字节首部,此外,还有4字节尾部CRC封装。所以以太网帧长度为:14+4+56=74字节。
从图6第一行可知,FRAME 902 共在线捕捉74字节数据,符合结论!
8
6. 总结
本实验从理论基础、软件配置,抓包,分析等几个部分分析了ICMP协议,探究了PING命令的工作原理,通过Wireshark软件对ICMP数据包进行细致分析,特别是整个封装流程,加深了对理论知识的理解,也进一步熟练了软件的使用,为以后更加深入和广泛地学习网络协议打下了良好基础。
该实验对实验环境的分析特别重要,明白了实验的基础和软件的选用。实验目的基本达到,不足之处:因为本实验目的所囿,对有些字段介绍的不够深入,有些甚至没有涉及,在以后的学习中,可作更加深入的研究。
9
附图1 网卡详细信息
附表1 ICMP报文类型
2
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- jqkq.cn 版权所有 赣ICP备2024042794号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务