混杂模式(Promiscuous Mode)
就是接收所有经过网卡的数据包,包括不是发给本机的包。默认情况下网卡只把发给本机的包(包括广播包)传递给上层程序,其它的包一律丢弃。简单的讲,混杂模式就是指网卡能接受所有通过它的数据流,不管是什么格式,什么地址的。事实上,计算机收到数据包后,由网络层进行判断,确定是递交上层(传输层),还是丢弃,还是递交下层(数据链路层、MAC子层)转发。
对于广播式集线器(Hub)来说,假如PC1、PC2、PC3接在同一个Hub上,当PC1给PC3发送包时,Hub将广播这个包,所以PC2实际上也可以看到这个包,但一般情况下它会将这个发给PC3的包丢弃,但如果处于混杂模式,PC2的网卡驱动程序就不会丢弃这个包,而是把这个包送给上层的驱动程序、应用程序。
通常在需要用到抓包工具,例如ethereal、sniffer时,需要把网卡置于混杂模式,需要用到软件Winpcap,或者libpcap库。
linux下设置方法:
ifconfig eth0 promisc 设置混杂模式
ifconfig eth0 -promisc 取消混杂模式