2021-05-06

Wireshark 实验

本部分按照数据链路层、网络层、传输层以及应用层进行分类,共有 10 个实验。需要使用协议分析软件 Wireshark进行

✍ 初识Wireshark
准备:
请自行查找或使用如下参考资料,了解 Wireshark 的基本使用:

选择对哪块网卡进行数据包捕获
进行网络选择

开始/停止捕获
在这里插入图片描述

了解 Wireshark 主要窗口区域
在这里插入图片描述

设置数据包的过滤
为避免其他无用的数据包影响分析,可以通过在过滤栏设置过滤条件进行数据包列表过滤

ip.addr=[IP地址]
1
可以看到与www.baidu.com的数据交换
在这里插入图片描述

跟踪数据流
✍一、数据链路层
✎实作一
熟悉 Ethernet 帧结构
使用 Wireshark 任意进行抓包,熟悉 Ethernet 帧的结构,如:目的 MAC、源 MAC、类型、字段等。

在这里插入图片描述

✎ 问题

你会发现 Wireshark 展现给我们的帧中没有校验字段,请了解一下原因。

这是因为有时校验和会由网卡计算,这时wireshark抓到的本机发送的数据包的校验和都是错误的,所以默认关闭了WireShark自己的校验。
✎实作二
了解子网内/外通信时的 MAC 地址

ping 你旁边的计算机(同一子网),同时用 Wireshark 抓这些包(可使用 icmp 关键字进行过滤以利于分析),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址是多少?这个 MAC 地址是谁的?
ping 192.168.43.72
在这里插入图片描述

发出帧的目的 MAC 地址以及返回帧的源 MAC 地址是b0:68:e6:04:6d:53,这个MAC地址是旁边主机的MAC地址

在这里插入图片描述

2.然后 ping qige.io (或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 icmp 过滤),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址是多少?这个 MAC 地址是谁的?
ping qige.io

在这里插入图片描述

发出帧的目的 MAC 地址以及返回帧的源 MAC 地址是c2:68:e6:04:6d:53,这个MAC地址是本机的网关MAC地址

在这里插入图片描述

再次 ping www.cqjtu.edu.cn (或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 icmp 过滤),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址又是多少?这个 MAC 地址又是谁的?
ping www.cqjtu.edu.cn
在这里插入图片描述

可以看到请求超时,未发送信息。发出帧的目的 MAC 地址以及返回帧的源 MAC 地址是c2:68:e6:04:6d:53,是网关的MAC地址

在这里插入图片描述

✎ 问题

通过以上的实验,你会发现:
访问本子网的计算机时,目的 MAC 就是该主机的,访问非本子网的计算机时,目的 MAC 是网关的
请问原因是什么?

因为本机接收到的本子网以外的信息必定经由网关发送给我,同理本机发送到本子往外信息的下个地址必定是网关的mac地址。而本子网内的可以直接到达。
✎实作三
掌握 ARP 解析过程

为防止干扰,先使用 arp -d * 命令清空 arp 缓存
在这里插入图片描述

发现出现问题:ARP项删除失败:请求的操作需要提升
解决方法如下:右击Windows键→选择Window PowerShell(管理员),进入管理员端,输入arp -d即可

在这里插入图片描述

ping 你旁边的计算机(同一子网),同时用 Wireshark 抓这些包(可 arp 过滤),查看 ARP 请求的格式以及请求的内容,注意观察该请求的目的 MAC 地址是什么。再查看一下该请求的回应,注意观察该回应的源 MAC 和目的 MAC 地址是什么。

再次使用 arp -d *命令清空 arp 缓存

然后 ping qige.io (或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 arp 过滤)。查看这次 ARP 请求的是什么,注意观察该请求是谁在回应。

ping qige.io

在这里插入图片描述

ARP请求为Who has 192.168.43.90? Tell 192.168.43.1

回复的为本机的MAC地址

这里遇到了一个问题,ARP协议并未使用广播来发送请求,而是直接将MAC地址写入了目的MAC。 查阅相关资料得到了答案:

-Another alternative is to have a daemon perform the timeouts. After a suitable time, the daemon considers removing an entry. It first sends (with a small number of retransmissions if needed) an address resolution packet with opcode REQUEST directly to the Ethernet address in the table. If a REPLY is not seen in a short amount of time, the entry is deleted. The request is sent directly so as not to bother every station on the Ethernet. Just forgetting entries will likely cause useful information to be forgotten, which must be regained.
加粗段落指出,每隔一段合适的时间,后台进程会考虑移除一条表项(每条表项都有对应的生存时间),在移除此表项前,会先直接发送一条地址解析包到表中对应的以太网地址,如果在短时间内没有回复,则删除此表项。请求包是直接发送到目的地的,所以可以不打扰到以太网中的其他站点;而直接删除此表项会造成有用的信息被删除,并且需要重新来获取此信息。
这样答案就很明显了。如果arp表中的表项生存时间一到,直接删除此表项,则还需要重新发送广播帧来请求目的mac地址,这样做因为广播而打扰其他站点。
考虑到如果以太网中的主机很多,那么每台机器中的arp表中的表项也会很多,如果每条表项生存时间一到就直接删除表项,那么局域网中的广播数量会很多,这会在一定程度上影响网络的利用率,因此在删除表项之前,直接向该表项的目的地址发送一条请求报文来确认。如果短时间内没有收到回复,则说明此mac地址的拥有者已经改变了ip地址,或者已经离开了此以太网,直接删除此表项即可。

参考自博文:有些arp请求报文中为什么会有目的mac地址(不使用广播地址)

✎ 问题

通过以上的实验,你应该会发现,

ARP 请求都是使用广播方式发送的 如果访问的是本子网的 IP,那么 ARP 解析将直接得到该 IP 对应的 MAC;如果访问的非本子网的IP, 那么 ARP 解析将得到网关的 MAC。 请问为什么?

ARP代理,访问非子网IP时是通过路由器访问的,路由器再把发出去,目标IP收到请求后,再通过路由器端口IP返回去,那么ARP解析将会得到网关的MAC。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值