分类:
2012-11-05 15:58:57
原文地址: 作者:platinum
这几天研究了windows对arp的处理方式,便写了个arp欺骗的程序,试验结果生效。 windows接收到一个arp响应,便会更新本地arp高速缓冲表,而接收到一个arp请求,即使请求的ip地址已经记录在arp高速缓冲表中,也不会更新arp高速缓冲表,这一点让我对windows的arp处理机制产生疑问,像linux就不是这样处理。不同的操作系统更新arp缓存的方式不同,现对windows操作系统和linux操作系统对于接收到不同的arp数据包更改arp缓存的方式进行一下总结。 (1)windows xp
另外windows接收到目的物理地址为广播的arp响应,如果该ip地址已记录在arp缓冲表中,也会更新arp缓冲表的。 如果接收到一个源ip地址和目的ip地址都为本地主机ip地址的arp请求,不仅会提示用户有ip地址冲突,并且也会向发送方发送arp响应。如果接收到只有源ip地址为本地主机ip地址的arp请求,那么只会提示用户有ip地址冲突。 如果接收到一个源ip地址为本地主机ip地址的arp响应,会提示用户有ip地址冲突,但是它不会向arp响应中所记录的目的ip地址发送arp响应。 (2)windows 2003 server操作系统
(3)linux
linux不接收目的物理地址为广播的arp响应或目的物理地址为单播的arp请求报文。它只接收目的物理地址为广播的arp请求报文和目的物理地址为单播的arp响应报文。在这一点上linux做的比windows要好。 |