实验环境
本次测试分两组场景进行,分别是终端为同一网段和不通网段的场景。
当终端为相同网段时:
根据PC2抓包结果可知:
同一网段的情况下,PC1(192.168.2.2)由于初始时没有PC2(192.168.2.1)的ARP表项,在发送ping192.168.2.1包时,首先发送一个ARP request包,源MAC为PC1MAC 源地址为PC1地址,目的MAC为广播MAC目标地址为PC2的地址。
收到request包后,PC2回复了PC1一个ARP reply包(单博发送)。PC3收到广播包,但不回复。
不同网段的场景下:PC1 (192.168.2.2)ping PC3 (192.168.1.3),由于PC1与PC3位于不同网段,跨网段的属于路由转发,在此种情况下PC1只需要知道PC1网关192.168.2.254的MAC地址即可,因此PC1发送了一个源地址源MAC为PC1目标地址为网关地址 目标MAC为的广播MAC的 ARP request包,网关收到后回复单博ARPreply包给PC1。
PC1 收到网关回复的ARP包后,发送源IP为自己目的地址为PC3,源MAC为自身,目的MAC为网关MAC的ICMP包。SW收到ICMP包后根据路由表将数据包转发给PC3,PC3回复需要跨网段转发,因此发送ARPrequest包请求网关MAC地址,网关收到后回复reply包。当PC3收到reply包后即可将网关MAC作为目的MACPC1地址作为目的地址封装进入ICMP包中。至此整个ARP解析过程结束。