计算机 络——Wireshark软件使用与协议分析(ARP协议、IP与ICMP分析)

实验4   Wireshark软件使用与协议分析

 

 

 

4.1—–ARP协议分析

 

一、实验目的

 

学习 Wireshark 的基本操作,抓取和分析有线局域 的数据包;掌握以太 MAC帧的基本结构,掌握 ARP 协议的特点及工作过程。 

二、实验内容

使用 Wireshark 抓取局域 的数据包并进行分析:

1. 学习 Wireshark 基本操作:重点掌握捕获过滤器和显示过滤器。

2. 观察 MAC 地址:了解 MAC 地址的组成,辨识 MAC 地址类型。

3. 分析以太 帧结构:观察以太 帧的首部和尾部,了解数据封装成帧的原理。

4. 分析 ARP 协议:抓取 ARP 请求和应答 文,分析其工作过程。

三、实验原理

3.1 IP 协议及数据 格式

3.1 Wireshark 简介

Wireshark 软件是目前全球使用最广泛的开源 络数据包分析工具(前身为 Ethe-real),由 Gerald Combs 编写并于 1988 年获开源许可发布。 络数据包分析是指进入 络通信系统、捕获和解码 络上实时传输数据以及搜集统计信息的过程。通过Wireshark对 络数据进行分析,我们能够了解 络是如何运行的、数据包是如何被转发的、应用是如何被访问的;能够分析各层 络协议的性能、掌握通信主体的运行情况,确认带宽分配和时延大小、查看应用的快慢并改进优化,识别 络中存在的攻击或恶意行为、解决 络异常和故障。Wireshark 可以在 Windows、Linux 和 macOS 操作系统中运行,具备友好的图形界面、丰富的统计及图表分析功能。

3.2 以太 MAC 帧格式

本实验基于使用最广泛的有线局域 (以太 Ethernet II),以太 的帧结构如表1.1–1所示。其中,MAC 地址(Media Access Control Address,媒体存取控制位址)或称物理地址(Physical Address),用于在 络中标识 卡。MAC 地址的长度为 48 位 (6个字节),通常表示为 12 个 16 进制数,如:00-16-EA-AE-3C-40。其中前 3 个字节的 16进制数 00-16-EA 代表 络硬件制造商的编 、即组织唯一标志符 (OUI),它由 IEEE 分配;而后 3 个字节的 16 进制数 AE-3C-40 代表该制造商所生产的某个 络产品 (如 卡)的系列 。

3.3 ARP 协议及数据 格式

地址解析协议(Address Resolution Protocol,ARP),主要作用是将 IP 地址解析为MAC 地址。当某主机或 络设备要发送数据给目标主机时,必须知道对方的 络层地址(即 IP 地址),而且在数据链路层封装成帧时,还必须有目标主机(或下一跳路由器)的 MAC 地址。本实验重点观察最简单的情形:同一个 段内,主机 A 要向主机 B 发送信息时,ARP 解析的过程(主机 A 和 B 不在同一 段的情况请参阅课本相关内容)。具体如下:

1. 主机 A 首先查看自己的 ARP 表。如果找到了主机 B 的 MAC 地址,则利用这个地址对 IP 数据 进行帧封装,并将数据 发送给主机 B。

2. 如果主机 A 在 ARP 表中找不到主机 B 的 MAC 地址,则以广播方式发送一个ARP 请求 文。ARP 请求 文中的发送端 IP 地址和发送端 MAC 地址为主机 A的 IP 地址和 MAC 地址,目标 IP 地址和目标 MAC 地址为主机 B 的 IP 地址和全0 的 MAC 地址。由于 ARP 请求 文以广播方式发送,该 段上的所有主机都可以接收到该请求,但只有被请求的主机 B 会对该请求进行处理。

3. 主机 B 比较自己的 IP 地址和 ARP 请求 文中的目标 IP 地址,当两者相同时进行如下处理:将 ARP 请求 文中的发送端(即主机 A)的 IP 地址和 MAC 地址存入自己的 ARP 表中。然后以单播方式发送 ARP 响应 文给主机 A,其中包含了自己的 MAC 地址。

4. 主机 A 收到 ARP 响应 文后,将主机 B 的 MAC 地址加入到自己的 ARP 表中以用于后续 文的转发,同时将 IP 数据 进行封装后发送出去。ARP 文结构如图1.1–1所示,ARP 文总长度为 28 字节,MAC 地址长度为 6 字节,IP 地址长度为 4 字节。每个字段的含义如下:

? 硬件类型:指明了发送方想知道的硬件接口类型,以太 的值为 1。

? 协议类型:表示要映射的协议地址类型。IP 地址的类型值为 0x0800。

? 硬件地址长度和协议地址长度:分别指出硬件地址和协议地址的长度,以字节为

单位。在以太 中,它们的值分别为 6 和 4。

? 操作码(op):用来表示这个 文的类型,ARP 请求为 1,ARP 响应为 2,RARP

请求为 3,RARP 响应为 4。

3.4 实验方法及手段

使用 Wireshark 软件在有线局域 中捕捉相关 络操作的数据包,运用观察对比、计算验证、分析统计等方法,掌握以太 MAC 帧和 IP 数据 的结构以及 ARP 协议的工作原理。

四、实验条件

? PC 机一台,连入局域 ;

? Wireshark 软件,建议 3.0 以上版本。

五、实验步骤

5.1 WireShark 基本使用

1. 通过 Wireshark 官 下载最新版软件,按默认选项安装。

2. 运行 Wireshark 软件,程序界面会显示当前的 络接口列表,双击要观察的 络接口,开始捕捉数据包,Wireshark 软件选择 络接口的界面如图1.1–2所示。

3. 点击工具栏上的红色方块按钮停止捕捉。

5. 使用“显示过滤器”可以方便地从捕获的数据包中筛选出要观察的数据包。显示过滤器支持若干的过滤选项:源 MAC、目的 MAC、源 IP、目的 IP、TCP/UDP传输协议、应用层协议(HTTP, DHCP)、源端口 Port、目的端口 Port 等。在显示过滤器栏中输入过滤表达式(更详细的显示过滤语法可以查看 WireShark 的官方文档 1 )

6. 通过主菜单“文件”/“导出特定分组”(如图1.1–6),可以保存捕获的 络数据(也可以先选中某些包,只保存部分数据)。

7. 如果只想捕捉特定的数据包,可以使用菜单“捕获”/“捕获过滤器”选定想要的类型(如图1.1–7)。例如,选择“IPv4 only”,Wireshark 只抓取 ipv4 类型的数据包。Wireshark 过滤器官方文档提供了更加全面详细的语法和常用示例 2。

8. Wireshark 还提供了丰富的统计功能供用户选用,如图1.1–8。更多文档可以查询Wireshark 使用帮助 3。

5.2 观察 MAC 地址

启动 Wireshark 捕捉数据包,在命令行窗口分别 ping 关和 ping 同 段的一台主机,分析本机发出的数据包。重点观察以太 帧的 Destination 和 Source 的 MAC 地址,辨识 MAC 地址类型,解读 OUI 信息、I/G 和 G/L 位。

5.3 分析以太 的帧结构

选择其中一个数据包,点击 Ethernet II 展开(图1.1–9),查看 MAC 帧的各个字段。

5.4 ARP 协议分析

1. 使用 –命令(其语法见图1.1–10),清空本机的 ARP 缓存,开启 Wireshark,ping 本机的同 段地址,在显示过滤器条框中输入“,观察捕获的 ARP 文的各个字段,分析请求/响应的过程。

2. 使用 –命令,清空本机的 ARP 缓存。开启 Wireshark,ping 与本机 段不同的 IP 地址或域名,观察捕获的 ARP 文的各个字段,分析请求/响应的过程。

 

六、实验心得与体会

思考题

1. 使用了显示过滤器后,Wireshark 的抓包工作量会减少吗strong>会

2. MAC 帧的长度和 IP 数据 的长度有怎样的关系用你的数据记录进行验证。

3. ping 同一局域 内的主机和局域 外的主机,都会产生 ARP 文么strong>会。所产生的ARP 文有何不同,为什么/p>

 

4.2—–IP与ICMP分析 

一、实验目的

IP 和 ICMP 协议是 TCP/IP 协议簇中的 络层协议,在 络寻址定位、数据分组转发和路由选择等任务中发挥了重要作用。本实验要求熟练使用 Wireshark 软件,观察 IP数据 的基本结构,分析数据 的分片;掌握基于 ICMP 协议的 ping 和 traceroute 命令及其工作原理。

二、实验内容

启动 Wireshark,捕捉 络命令执行过程中本机接受和发送的数据 。

1. 执行 ping 命令,观察 IP 数据 和 ICMP 询问 文的结构:通过 Wireshark 监视器观察捕获流量中的 ICMP 询问 文和 IP 数据 的结构。注意比较 ICMP 请求帧与回应帧,及其 IP 头部数据字段的异同。

2. 改变 ping 命令的参数,观察 IP 数据 分片:更改 ping 命令参数 MTU,使其发出长 文以触发 IP 数据 分片,再观察 IP 数据 的结构变化。

3. 执行 Traceroute 命令,观察 ICMP 差错 文的结构,并分析其工作原理:使用Linux 操作系统提供的 traceroute 命令(或者 Windows 系统提供的 tracert 命令),捕获和分析该命令所产生的 IP 数据 ,特别注意相关的 ICMP 差错 文。结合捕获的具体数据,画出命令执行过程中数据交互的示意图,掌握 traceroute 的工作原理。

三、实验原理

3.1 IP 协议及数据 格式

际互连协议(Internet Protocol,IP),是 TCP/IP 体系中的 络层协议,可实现大规模的异构 络互联互通,为主机提供无连接的、尽力而为的数据包传输服务。在 际协议第 4 版(IPv4)中,IP 数据 是一个可变长分组,包括首部和数据两部分 (如图1.2–1)。首部由 20~60 字节组成,包含与路由选择和传输有关的重要信息。其各字段意义如下:

1. 版本(4 位):该字段定义 IP 协议版本,所有字段都要按照此版本的协议来解释。

2. 首部长度(4 位):该字段定义数据 协议头长度,表示协议首部具有 32 位字长

的数量,最小值为 5,最大值为 15。

3. 服务(8 位):该字段定义上层协议对处理当前数据 所期望的服务质量,并对

数据 按照重要性级别进行分配。前 3 位为优先位,后面 4 位为服务类型,最后1 位没有定义。这 8 位可用于分配优先级、延迟、吞吐量以及可靠性。

4. 总长度(16 位):该字段定义整个 IP 数据 的字节长度,包括协议首部和数据,其最大值为 65535 字节。

5. 标识(16 位):该字段包含一个整数,用于标识当前数据 。当数据 分片时,标识字段的值被复制到所有的分片中。

6. 标记(3 位):该字段由 3 位字段构成,其中最低位(MF)控制分片:若存在下一个分片则值为 1;否则置 0 代表该分片是最后一个。中间位(DF)指出数据 是否可进行分片,若置 1 则不允许该数据 进行分片。第三位即最高位保留不使用,值为 0。

7. 分片偏移(13 位):该字段指出数据分片在源数据 中的相对位置,以 8 字节为长度单位。

8. 生存时间(8 位):该字段是计数器,转发该数据 的路由器依次减 1 直至减少为 0。

9. 协议(8 位):该字段指出在 IP 层处理后,由哪种上层协议接收该数据 。

10. 头部校验和(16 位):该字段帮助确保 IP 协议头的正确性。计算过程是先将校验和字段置为 0,然后将整个头部每 16 位划分为一部分,并将各部分相加,其计算结果取反码,填入校验和字段中。第一单元 络抓包与协议分析

11. 源地址(32 位):源主机的 IP 地址。

12. 目的地址(32 位):目标主机的 IP 地址。一个 IP 包从源主机传输到目标主机可能需要经过多个传输媒介不同的 络。每种 络对数据帧都设置了一个最大传输单元 (MTU) 的限制(例如以太 的 MTU 是 1500字节)。因此,当路由器在转发 IP 包时,如果数据包的大小超过了出口链路 络的 MTU时,需将对该 IP 数据 进行分片,才能在目标链路上顺利传输。每个 IP 分片将独立传输,直到所有分片都到达目的地后,目标主机才会把他们重组成一个完整的 IP 数据 。在 IP 数据 的分片与重组过程中,以下三个首部字段发挥了重要作用:

1. 标记的后两位:最低位记为 MF(More Fragment),MF = 1 代表还有后续分片,MF = 0 表示此为原始数据 的最后分片。次低位 DF(Don’t Fragment),用来控制数据 是否允许分片。DF = 1 表示该数据 不允许分片;DF = 0 允许分片。

2. 标识符:用于目的主机将 IP 数据 的各个分片重装成原来的数据 。

3. 片偏移:以 8 字节为单位,目的主机在重装 IP 数据 时需要根据该字段提供偏移量进行排序。这是因为数据分片的独立传输使各分片的到达顺序难以确定。

3.2 ICMP 协议及 文格式

因特 控制 文协议(Internet Control Message Protocol,ICMP),用于 IP 主机、路由器之间传递控制消息。控制消息是指 络是否连通、主机是否可达、路由是否可用等 络本身的控制管理消息,对 络正常运行起着重要的作用。ICMP 文的类型可以分为ICMP差错 文和ICMP询问 文两种(其结构如图1.2–2)。ICMP 差错 告 文主要有终点不可达、源站抑制、超时、参数问题和路由重定向5 种。ICMP 询问 文有回送请求和应答、时间戳请求和应答、地址掩码请求和应答以及路由器询问和通告 4 种。其常见的类型与代码如表1.2–1所示。

四、实验条件

装有 Wireshark 软件的 PC 机一台,处于局域 环境。

参考资料:

? J.F Kurose and K.W. Ross, Wireshark Lab: ICMP v8.0

? Wireshark 官方过滤器语法指导书

? IP 协议的 RFC

五、实验步骤

5.1 ping 命令

本机(示例 IP 为 192.168.1.251)启动 Wireshark 软件,选择要监听的 络接口(如eth0、wlan0);然后在终端发起 络命令:ping IP 地址/域名。

1. 在 Wireshark 监视器中设置过滤条件。例如图1.2–3设置过滤条件为 icmp,则显示出所捕获的 ICMP 数据包。

2. 点击 Internet Protocol Version 4 展开(如图1.2–4),查看 IP 数据 ,特别观察 IP数据 的首部字段及其内容。

3. 点击 Internet Control Message Protocol 展开(如图1.2–5),查看 ICMP 文,并解释回显(Echo Request 和 Echo Reply) 文的首部字段。

4. 清空 Wireshark 监控器,重新发起 络命令(如图1.2–6):ping IP 地址/域名–l#length,并解释对比前后两次执行 ping 命令的结果。其中,-l #length 确定 echo数据 的长度为 #length,其默认值为 32 字节,且小于 65,527 字节。

5. 可以多次改变 #length 的大小(例如 1000 字节、2000 字节和 4000 字节),观察IP 数据 何时会分片解释 IP 数据 分片的原因和具体情况。提示:请先确认该 络的 MTU,可在 Wireshark 记录中查找“IPv4 fragments”项目。

5.2 traceroute 命令本机(示例 IP 为 192.168.1.251)启动 Wireshark 软件,选择要监听的 络接口(如eth0、wlan0);然后在终端发起 络命令:traceroute IP 地址/域名。

1. 启动 Wireshark 软件,选择要监听的 络接口,设置过滤条件 icmp(如图1.2–7)。

2. 在终端中使用 traceroute 命令,目的主机是外 的一台设备(如图1.2–8,示例 IP为 210.34.0.1)。

3. 点击 Internet Control Message Protocol 展开,查看 ICMP 差错 文,观察并解释ICMP 文结构和字段内容。

4. 结合 ICMP 文记录画出数据交互示意图,并描述 tracert 工作原理。

六、实验心得与体会

使用Ping命令,去ping一个不存在的主机IP,如10.104.125.344。使用wireshark 捕获数据包,并进行分析。

命令:ping 10.104.125.344

cmd窗口显示ping请求找不到主机,wireshark抓不到ICMP包

2、观察ICMP超时消息。

使用Ping命令,输入ping www.baidu.com–i 2 把TTL设成一个很小的数字,去ping一个比较远的服务器。

命令:ping www.baidu.com -i 2

cmd窗口显示TTL传输中过期,抓包软件的包显示:70Time-to-live Type值为11,Code值为0 表示传输期间生存时间为0

3、使用Ping 命令,正常ping一个能通的地址,比如ping www.baidu.com 打开wireshark,截取数据包。

命令:ping www.baidu.com

抓包软件中看到一个request请求包和一个reply回应包,一个TTL为128,一个为55

4、使用ping命令查看参数

5、使用Tracert命令跟踪一个地址,并进行抓包分析

选取一个地址来tracert跟踪,并抓包分析。

命令:tracert www.baidu.com

请求超时表示跳到了防火墙,该路由接口禁用了对tracert数据包的响应

 

IP包字段名称

含义

Version

4

版本为4,IPV4

Differentiated Services

0x00(DSCP:Default;ECN:0x00

:Not-ECT)

 

区分服务领域

Header Length

20

头部长度,指向数据开始的位置,这个域的最小合法值是5

Identification

0xd6bf(54975)

标识符

Flags

0x00

标记字段,第1位不能使用,第2位是DF位,当DF为1 时,表示路由器不允许分段处理,为0 时,表示允许分段处理。 第3 位是MF位,当MF为1时表示不是最后一个分段,为0时表示是最后一个分段。

Fragment offset

0

分段偏移,表示是首段的偏移,以8个字节为偏移单位

Time to live

50

生存期

Header checksum

0xa47a

头部校验和,确保数据的正确性

Total Length

89

总长

Protocol

ICPM(1)

协议,指定了数据包中的数据类型

Destination

10.97.150.160

目的地址

Source

139.196224.164

源地址

MTU即允许发送不需要分段的最大IP单包字节数。Data-length=MTU-IP头-iCMP头

使用ping IP地址/域名–l#length,命令,当length+IP头+ICMP头

从该界面可以很清楚看到,和前面捕获到的数据包不同。在该界面的Protocol列,显示了IPv4协议的包。这是因为发送数据包过大,所有是经过了分片后发送。

上图中:

1480=1514-14-20(以太 侦大小-数据链路层头部-IP头部)53=88-14-20-1(帧尾)

 

 

心得:

该实验通过Wireshark软件使用进行ARP和IP与ICMP协议分析。通过本次实验对与 络层的协议有了进一步的学习,进行抓包以及分析,使得更理解 络中的各个协议。本次实验,收获颇多,对今后的学习有了较大的帮助。

 

注:实验结果可能有误,也可能顺序错误,本篇博客只能给你部分帮助,请谅解,谢谢。

 

文章知识点与官方知识档案匹配,可进一步学习相关知识 络技能树认识身边的计算机 络常见的 络设备22218 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年4月22日
下一篇 2022年4月22日

相关推荐