加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 电商 > 正文

Windows上ARP缓存更新延迟导致修改IP地址后不能连通(仅Windows7

发布时间:2021-01-01 09:23:23 所属栏目:电商 来源:网络整理
导读:《Windows上ARP缓存更新延迟导致修改IP地址后不能连通(仅Windows7)》要点: 本文介绍了Windows上ARP缓存更新延迟导致修改IP地址后不能连通(仅Windows7),希望对您有用。如果有疑问,可以联系我们。 在开发过程中,一些工具具备修改其他设备IP地址的功能.

《Windows上ARP缓存更新延迟导致修改IP地址后不能连通(仅Windows7)》要点:
本文介绍了Windows上ARP缓存更新延迟导致修改IP地址后不能连通(仅Windows7),希望对您有用。如果有疑问,可以联系我们。

在开发过程中,一些工具具备修改其他设备IP地址的功能.
修改IP地址的实现方式有:1)通过IP地址A连接过去修改IP地址B;2)通过IP地址A连接过去修改IP地址A.
这两种方式,都涉及到ARP缓存的更新.
ARP(Address Resolution Protocol)协议是连接IP层与物理层的一种协议,ARP协议负责将网络层的IP地址转换为链路层的MAC地址,因为链路层最终是通过MAC地址发送数据包的.
关于OSI的7层以及他们之间的各种协议,请参考OSI Model.

在操作系同实现层面,都会缓存ARP表,纪录该机器访问过的IP地址与MAC地址的关联,当网络层的应用向某个IP地址发送包的时候,系统API会使用ARP协议将IP地址转换为MAC地址然后发送出去.
ARP之所以要缓存是为了效率考虑,如果每次数据包发送都去查找一遍IP地址与MAC地址的映射关系,对性能的消耗是很大的.
所以在操作系统层面都会对ARP做缓存,然后通过自己的机制刷新它.

我们遇到的问题是,Windows机器连接到了一台设备,我们的工具在Windows上运行,去修改该设备的IP地址,将IP地址从A修改为B.
修改完成之后我们去ping这个B IP地址,发现不能立刻ping通,需要ping接近1分钟.

这里就是Widnwos7上面的ARP缓存在捣鬼,因为windows机器上的arp缓存纪录的是修改之前的IP地址A与设备的网卡MAC地址的映射关系,而现在去ping IP地址B,按照理解是能够ping通的,因为windows机器上的ARP缓存中该IP地址不存在,应当去刷新ARP缓存.
不过好像Windows7上面,没有这种机制.貌似一定要等到系统触发的ARP缓存刷新.

后来我们手动执行 arp -d IP_ADDR,将老的arp纪录删除,然后再ping,就可以正常了.

这个问题不直到是否算windows7的bug?因为在XP上是没有这种问题的.

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读