一、实验目的:
通过wireshark的数据抓包了解这个ARP协议的具体内容
二、预备知识:
1.Address Resolution Protocol协议,就是通过目标IP的值,获取到目标的mac地址的一个协议
2.ARP协议的详细工作过程,下面描述得非常清晰:
3.关于上面提到的ARP缓存表这个东西:
(1)首先,这里的ARP缓存表就是利用的计组里面的Cache的那个局部性原理,这样更快
(2)其次,在windows的cmd中可以使用对应的命令查看这个ARP缓存表,
关于arp -s 这条命令的特别说明
3.不知道netsh这个东西是干啥的,接着看就好了:
Netsh(网络 Shell)命令是在 Windows 系统中用于管理和配置网络设置的命令行工具。它提供了对网络接口、IP 地址、防火墙、路由、DNS、WLAN 等网络组件的控制和配置功能
三、实验环境和主要步骤
1. 通过使用Netsh和ARP命令来绑定IP和MAC地址。
2. 在测试环境使用Wireshark抓取ARP数据包。
3. 详细分析ARP请求包和ARP应答包。
四、实验过程:
part1:分别使用netsh 命令 和 arp命令对 arp缓存表进行相关的操作
1.首先使用netsh i i show in 命令查看idx为16
2.然后用netsh -c "i i" add neighbors 16 "10.1.1.11" "01-xx-xx-xx-xx-xx"实现arp数据的添加,并用arp -a查看
3.用arp -s添加,用arp -d删除:
part2:利用wireshark对由ping命令产生的数据包进行抓取
先打开wireshark,然后在cmd中使用ping 10.1.1.166命令,之后再wireshark中停止捕获,
找到对应含有字符串的"who has 10.1.1.166"这2条过滤出来的arp数据包
这个不对,因为我之前不小心ping过了一次,这里已经直到了10.1.1.166的mac地址,dst_mac不是ff-ff-ff-ff-ff,用arp -a查看一下
所以,下面我考虑使用arp -d先删除这一条记录,然后重新进行wireshark的捕获
这一次才是成功的进行了捕获
part3:对过滤出来的arp请求和应答数据包进行分析:
1.首先,我们看一下arp的请求报文:
先只是单看标题,Frame这一行说明一共有42个字节
以太网那一行,说明了源mac地址是fa-16-3e-fe-c7-f8,目标mac地址是广播地址ff-ff-ff-ff-ff-ff因为只知道目标的ip地址,而不知道目标mac地址,所以只能采用广播的形式,具体打开:
还格外提到了之后那一层协议的类型是ARP
下面,我们具体看一下这个ARP里面的内容吧:
首先,它说明了自己是request请求报文
以太网的类型,使用ip协议以及对应部分的长度
发送端的mac地址、ip地址 和 未知的目标mac地址 和 已知的目标ip地址
2.再来看一下arp的响应报文:
先看标题吧,第一行Frame说明有60个字节的数据
第二行,就可以看出这是10.1.1.166这个台机器已经知道了双方的mac地址了
arp的具体内容如下:
首先,它说明了是一个reply响应报文
然后,就是以太网类型的和ip协议类型等
之后,就是发送和接受双方的mac和ip地址数据