分类:
2012-11-05 15:58:57
这几天研究了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要好。 |