Windows7上ARP缓存更新延迟 修改IP地址后不能连通解决办法

在开发过程中,一些工具具备修改其他设备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上是没有这种问题的。

时间: 2024-08-31 03:31:48

Windows7上ARP缓存更新延迟 修改IP地址后不能连通解决办法的相关文章

Win8.1系统修改IP地址后无法保存怎么处理?

Win8.1系统修改IP地址后无法保存怎么处理? 1.首先检测网卡驱动是否正常,如无法上网,网卡驱动不正常则可以通过重新安装网卡驱动; 2.网卡驱动一切正常,建议可以使用以下方法:WIN+X组合键,找到并打开设备管理器; 3.打开之后找到以下选项; 4.找到网络适配器一项,以有线适配器; 5.打开网络属性后点击安装---协议,点击添加---从磁盘安装,浏览定位至C:/Windows/inf/nettcpip.inf确定,再选择TCP/IPv4安装; 6.如果问题依旧的话请按"Windows+X&

Win8.1系统修改IP地址后无法保存的解决方法

  通常情况下我们使用windows系统时一般在没有特殊需求的情况下,不会对windows系统中的IP地址进行修改;但是如果我们需要将IP地址由静态更换为动态,那么就需要对IP地址进行修改,在windows系统下修改IP地址是非常简单的,但是在win8系统下,有用户反映修改IP地址后,却出现无法保存的问题,对于该问题是什么原因造成的,我们应该如何解决呢?下面看小编为大家带来的解决win8系统无法修改IP地址的方法,希望对您有所帮助. win8系统修改IP地址无法保存的解决方法1.首先检测网卡驱动

无线路由器的ip地址忘了的解决办法

有时有设置完无线路由器的ip过一段时间后可能会忘记,想要改wifi密码的时候很无奈. 方法一 1.点击屏幕右下角的网络连接的图标打开网络和共享中心 . 2.打开本地连接 或无线网络连接. 3.点击详细信息. 4.里面的IPv4 默认网关 和 IPv4 DHCP 服务器 里的内容就是无线路由器的IP了 方法二 1.还有一种方法也可以看到 而且很快捷.那就是利用cmd命令. 2.打开开始 里面写上cmd.也可以利用快捷键 Win+R键呼出运行窗口输入cmd回车. 3.打开后输入 ipconfig 命

F5 负载均衡,获取不到真实的ip地址,有没有解决办法??

问题描述 最近项目中在试用一个BIG-F5V9的负载均衡器产品,发现在服务器端竟然取不到客户端的真实IP,取到的只是负载均衡器的虚拟IP,不知是不是哪个地方配置有问题,不过在V4.5版本上不用做什么特殊配置就可以正常取得的啊. 解决方案 解决方案二: 解决方案三:貌似有一个地方可以配置,让F5在http的head里面加一个属性来保持真实的地址,你查查看

请教大家一个问题, ifconfig 命令改网卡的ip地址后,能否通知改arp缓存?

问题描述 请教大家一个问题,ifconfig命令改网卡的ip地址后,能否通知改arp缓存?该问题来自CSDNDocker技术交流群(303806405),由版主xinshubiao整理. 解决方案 解决方案二:不通知,应该你有操作了,比如ping具体的ip了,比如跟某个机器有网络交互,才会更新arp缓存.

如何禁止修改ip地址

注册表设置法 首先,需要将桌面上的"网上邻居"图标隐藏起来,让其他人无法通过"网上邻居"属性窗口,进入到TCP/IP参数设置界面.依次展开注册表编辑窗口中的"HKEY_CURRENT_USER"."Software"."Microsoft"." Windows"."CurrentVersion"."Policies"."Explorer&

dos环境下修改ip地址_DOS/BAT

netsh interface ip dump >c:\pc1.txt  该命令是显示当然"本地连接" 的接口IP 配置,并保存在pc1.txt文本文件中 我查看一下c:\pc1.txt这个文件 显示的是当前"本地连接"的接口的IP配置,我们用命令ipconfig/all看看当前接口的配置是否和pc1.txt这个文件一样 可以看到两者是一样的.我们打开PC1.TXT这个文件,把"set address name = "本地连接" 

如何修改IP地址和DNS地址

  笔记本在无线wifi网状连接时,如何修改IP地址和DNS地址: 操作步骤 鼠标左键点击通知区域里面的无线图标,在弹出的界面点击打开网络和共享中心. 然后在查看活动网络里面点击连接上的无线网络. 在状态界面点击属性按钮. 双击IPv4/TCP协议. 不选自动获取,手动填写即可,确定之后保存修改.

如何修改ip地址,更改ip地址的方法

如何修改ip地址的方法(本文所指修改ip地址的方法,只针对局域网ip(静态ip),动态ip是DHCP自动分配的,是无法更改的): 处在局域网中的计算机可能会遇到被网管限制带宽.限制浏览等情况,这些操作通常都是针对ip地址实现的,想要摆脱限制就需要更改ip地址,那么如何修更改ip地址呢? 鼠标右键点击"网上邻居"-->选择"属性"-->右键点击"本地连接"-->选择"属性"-->在弹出的"本地连