单位的ADSL路由器由于质量欠佳,经常出一些莫名其妙的问题(并非设置不当造成)。于是笔者买了一台新的ADSL路由器,对照说明书,将相关网络参数与旧的路由器设置为一样的,然后“以旧换新”,但是却出现了无法连通的现象。换用旧的路由器,工作正常。
笔者怀疑新的路由器有问题,但却发现网内一台计算机在重新启动后,可以正常上网了。此时想到有可能是ARP导致此次故障发生,在不能上网的计算机上删掉原来的路由器的ARP缓存条目后,网络便恢复正常了。
网上数据的传输,是要用到机器物理地址的,就如同你要给一个朋友打电话,知道他的姓名但不知道他的电话号码,是没有办法和他通话的,此时你会拨打114进行查询。而ARP协议就像114查号台一样,能够帮你找到朋友的电话号码。和朋友通话完毕后,或许你怕自己记性不好,会将这个人的名字和电话号码记录在通讯录上以备下次使用。
计算机也是一样的,当第一次与网内的计算机通信时,只知道对方的IP地址(如192.168.1.1)而不知道它的物理地址,借助ARP协议可以得到对方的物理地址,并能将这个地址与相应的IP地址一并写入被称为“ARP缓存”的地方,以备需要时取用。如果这个条目很长时间未被使用,计算机会把它删掉以节省存储空间。以后,凡是与192.168.1.1进行通信,计算机不会查询对方的物理地址,而是直接到ARP缓存中读取。
回到本例,由于更换新路由器时其他计算机的ARP缓存中有网关IP地址的物理地址,但这个物理地址却是旧的路由器的物理地址,因此新的路由器就不能正常通信了,而重新启动的计算机的ARP缓存是空的,它会通过ARP协议得到新路由器的物理地址,因而能够正常通信。
此外,当你Ping一台长时间未进行通信的计算机时,一开始会收到“超时无应答”的提示,但短时间后就Ping通了。这就是因为计算机需要一定的时间来用ARP协议查询对方的物理地址。
【相关文章】