计算机网络报告week13

Week 13 : 利用Wireshark分析ARP协议

1. 实验目的

  • 掌握Wireshark软件的过滤语法
  • 掌握ARP 的工作原理

2. 实验任务

  • 学会利用Wireshark 抓包分析ARP协议

3. 实验过程

3.1 预备知识

  • ARP(Address Resolution Protocol) 协议,即地址解析协议。该协议的功能就是将IP地址解析成MAC地址。ARP的基本功能就是负责将一个已知的IP地址解析成MAC地址,以便主机间能正常进行通信。

  • ARP 协议的解析过程只使用了两种数据包: 一个ARP请求和一个ARP响应,如下图所示:

  • 其详细工作原理是:
    1. 当主机A想要给主机B发送数据时,主机A会首先在自己的本地ARP缓存表中检查与主机B匹配的MAC地址。
    2. 如果主机A在自己的缓存表中没有找到主机B的相关条目,那么它就要想办法获取主机B的MAC地址。这就需要将ARP的请求帧广播到网络上所有主机中。这个请求帧包含有主机A的IP地址和MAC地址,以及主机B的IP地址。网络中凡是收到请求帧的主机都会检查自己的IP地址是否与请求地址一致,如果不一致,则会丢弃该请求帧。对于上图来说,主机C和主机D会丢弃主机A发出的请求帧。
    3. 主机B确定ARP请求中的IP地址和自己的IP地址一致,那么就会将主机A的IP地址和MAC地址添加到本地的缓存列表中
    4. 主机B将包含有自己MAC地址的ARP响应消息直接回复给主机A(单播)
    5. 主机A收到从主机B发来的ARP响应消息之后,会将主机B的IP地址和MAC地址添加到自己的ARP缓存表中。接下来,主机A就可以向主机B发送消息了
  • 如果想要查看ARP缓存表,可以打开cmd ,输入”arp -a”

3.2 分析 ARP 数据包

  • 选择一个ARP缓存表中没有的地址进行分析,如: ping 192.168.1.110

  • 利用Wireshark 抓取 ARP 包,并进行分析,再次通过 arp -a 命令可以发现该IP地址对应的mac信息已添加在缓存表中了

task1

如上图所示,分析当ARP缓存表不存在某个IP信息时,数据发送是的请求和应答数据报信息,截图并标注具体ARP字段数据,请在实验报告中附上结果截图

我在笔记本上开了一个虚拟机,地址是 192.168.31.100,

1
2
3
4
5
6
7
8
9
10
Address Resolution Protocol (request) 
Hardware type: Ethernet (1) # 硬件类型
Protocol type: IPv4 (0x0800) # 上层协议类型
Hardware size: 6 # MAC 地址长度
Protocol size: 4 # IP 地址长度
Opcode: request (1) # 操作类型,这里是request
Sender MAC address: BeijingX_2e:de:27 (50:d2:f5:2e:de:27) # 源MAC地址
Sender IP address: 192.168.31.1 # 源IP地址
Target MAC address: 00:00:00_00:00:00 (00:00:00:00:00:00) # 目的 mac 地址
Target IP address: 192.168.31.100 # 目的 ip 地址

我们发现,在还没有加入缓存的时候,我们发送的ARP请求包中是不知道目标主机的mac地址的,因此默认为:00:00:00:00:00:00

1
2
3
4
5
6
7
8
9
10
Address Resolution Protocol (reply)
Hardware type: Ethernet (1) # 硬件类型
Protocol type: IPv4 (0x0800) # 上层协议类型
Hardware size: 6 # MAC 地址长度
Protocol size: 4 # IP 地址长度
Opcode: reply (2) # 操作类型,reply
Sender MAC address: IntelCor_75:21:32 (38:00:25:75:21:32) # 源MAC地址
Sender IP address: 192.168.31.100 # 源IP地址
Target MAC address: Apple_e2:a1:2e (4c:20:b8:e2:a1:2e) # 目的 mac 地址
Target IP address: 192.168.31.15 # 目的 ip 地址

task2

分析当ARP缓存表存在某个Ip信息时,ARP请求和接收MAC地址分析,(只截图,写出目的MAC地址和源MAC地址),并分析与task1中数据包存在的区别,在实验报告中附上截图

1
2
3
4
5
6
7
8
9
10
Address Resolution Protocol (request)
Hardware type: Ethernet (1)
Protocol type: IPv4 (0x0800)
Hardware size: 6
Protocol size: 4
Opcode: request (1)
Sender MAC address: Apple_e2:a1:2e (4c:20:b8:e2:a1:2e)
Sender IP address: 192.168.31.15
Target MAC address: IntelCor_75:21:32 (38:00:25:75:21:32)
Target IP address: 192.168.31.100

但是当ARP中已经包含了该主机的mac地址后,在发送ARP请求包时,在Target MAC address 中直接填入目标主机的mac地址了。

1
2
3
4
5
6
7
8
9
10
Address Resolution Protocol (reply)
Hardware type: Ethernet (1)
Protocol type: IPv4 (0x0800)
Hardware size: 6
Protocol size: 4
Opcode: reply (2)
Sender MAC address: IntelCor_75:21:32 (38:00:25:75:21:32)
Sender IP address: 192.168.31.100
Target MAC address: Apple_e2:a1:2e (4c:20:b8:e2:a1:2e)
Target IP address: 192.168.31.15

但是 ARP 响应包,前后都是一样的。

这时候我们已经发现,刚才ping 的 192.168.31.100 的mac地址已经添加到arp缓存表中去了,而且我们发现,这个地址和我开虚拟机的电脑的地址是一模一样的。

-------------本文结束,感谢您的阅读-------------