赞
踩
两台 相同IP地址 的主机A、B和一台IP不同的嵌入式主机C通过局域网络进行通信,A和B不同时连接到交换机/路由器。发现其中任意一台主机先和嵌入式计算机C通讯,然后断开这台主机的物理连接,连上另一台主机到网络,这时候另一台主机和嵌入式主机C之间就会出现嵌入式主机C无法发送数据到后连主机的情况,但是该主机可以发送数据给嵌入式主机C。
这是由于ARP缓存表的问题。由于两台主机A和B的IP相同,但是两台主机的网卡的MAC地址是不一样的,所以主机A发送数据给主机C的时候,嵌入式主机C内部的ARP缓存表中的映射是将主机A的MAC地址和A/B主机的IP地址映射在一起的,这时候再将主机A替换成主机B的话,如果主机B中已经有主机C的ARP映射条目(主机B之前也和嵌入式主机C单独通讯过,所以主机B有嵌入式主机C的ARP缓存。如果主机B没有嵌入式主机C的ARP映射条目,会发送ARP帧进行地址解析,这个过程中嵌入式主机C也会更新ARP地址映射,所以不会出现无法通讯的情况),主机B可以向嵌入式主机C发送数据,但是嵌入式主机C已经有了A/B主机IP地址的ARP映射条目,对应的是主机A的MAC地址,且在一定时间内就不会在发送ARP帧进行地址解析,这时候嵌入式主机C向主机B发送数据就会出现MAC地址不对应,网络数据在数据链路层可能就会被网卡过滤掉。
解决办法就是重启嵌入式主机C的网卡,这样清除ARP缓存表之后就可以重新建立ARP缓存表,恢复正常通信了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。