wireshark抓包分析协议-Arp协议(准备阶段)
Arp协议
应用场景一 同一局域网
设备1想要与设备3进行通信,但是设备1只知道设备3的IP地址,不知道对方的MAC地址,
设备1想要通过ARP协议获取对端的MAC地址,他就会将自己的IP地址,MAC地址,以及对端的IP地址等等信息组装成如下图所示的一个帧(目的MAC为空)
当交换机收到该帧时,就会在自己的转发表中查看是否存在与该IP对应的MAC地址,这时存在两种情况——
😀 如果有就通过对应的端口发给目标设备,目标设备收到后也组装成一个帧,
只不过目的MAC、IP、端口号换成了设备1的,将源MAC、IP、端口号换成了自己的,
通过单播的形式传回给设备1,这样两个设备就可以进行通信了。
😀如果没有的话交换机会把帧向所有端口广播(除了该帧进入的端口),目标设备一定能够收得到,后续步骤如上。
应用场景二 不同局域网
现在设备1和设备3想要进行交流,设备1还是只知道设备3的IP地址,但是此时他俩不在一个网络中,这个时候ARP协议是如何应用的呢?
①设备1通过设备3的IP地址判断出此时设备1与设备3不在同一个子网中
②这个时候设备1的网络层就认为,我需要把这个帧发给网关,
看看网关那里的转发表里有没有与设备3的IP地址对应的MAC地址
③但是想要把这个帧发给网关,我同样也得知道网关的MAC地址
(这里我们假设设备1的电脑缓存里的ARP表中没有网关的MAC地址)
④这个时候我们就需要使用ARP协议进行广播,当网关收到设备1发出的帧后,
就会回应一个对应的帧,这样设备1就知道了网关的MAC地址
⑤将数据帧发送给网关后,网关通过IP地址来确定路由,
通过查找路由表来确定下一跳应该去往哪个网络,然后就将数据从连接那个网络的路由器的接口发送出去
这样就实现了跨网通信
设备1->(利用情景一:同一局域网内找网关mac)到达网关->网关查IP路由->对应接口发送出去->设备3
😀在不同的⽹络中,ARP协议的作⽤是将⽹关的IP地址解析成MAC地址,
以实现数据包在不同⽹络之间的传输。
一次arp排错
同一局域网内,ip地址对应的mac地址故意写错,造成网络不通
修改会正确对应的mac地址,又能够网络互通,如下: