概述
集线器网络时代下,集线器的工作原理是转发数据包给所有非源端口,所以,非目的主机也会收到数据包。
1、标准模式
一般情况下,我们知道网卡往往只会接受目的地址是他的数据包而不会接受目的地址不是的它的数据包,所以我们应该知道网卡只会接受我们该接收的包而不会接受其他的地址的网络数据包。
2、混杂模式
混杂模式是指一台主机能够接受所有经过它的数据流,不论这个数据流的目的地址是不是它,它都会接受这个数据包。也就是说,混杂模式下,网卡会把所有的发往它的包全部都接收。在这种情况下,可以接收同一集线器局域网的所有数据。
交换机网络时代,交换机会在内部计算目的主机究竟在哪一个端口,然后只会将数据包发往该端口,所以这不仅减少了网络流量,也提高了安全性。
交换式网络环境下进行网络嗅探依赖端口镜像,采集端口的主机获取来自进出源端口的所有数据包,有两个问题:1)是否设置目的端口主机网卡为混杂模式?2)如何采集到源端口进出(inboud和outbound)的所有数据包?wireshark可以实现,其代码可以参考!通过冒充路由,来实现数据包经过本机,做到抓包。
端口镜像模式,可以将交换机所有端口转到一个端口,从而实现抓包。
如果不才采用端口镜像,则只能监视一个端口的流量。
---------------------
作者:lengye7
来源:CSDN
原文:https://blog.csdn.net/lengye7/article/details/71191291
版权声明:本文为博主原创文章,转载请附上博文链接!
混杂模式的意义
参阅过很多的文章,在描述“混杂模式”的作用时,很多人将其最大的功能描述为能接收所有发送至该网卡的IP数据包,这种说法并没有错,特别是在早期的集线器时代。但到了交换机的时代,这种现象并不常见。图2.10描述了集线器与交换机工作模式的对比。
在集线器模式下,源主机“主机2”要向目标主机“主机3”发送数据,当数据到达集线器后,集线器会向除了源主机“主机2”本身之外的所有主机发送数据,即除了源主机“主机2”之外的所有主机都可以收到“主机2”所发的数据。目标主机“主机3”判断到该数据是给自己的,就进行处理;其余主机判断到所发的数据是给“主机3”的,而不是给自己的,就不进行处理。该模式下,硬件设计简单、速度快,并且对主机的开机(新主机加入)和关机(当前在线主机的离开)都具有很好的适应性,只要发送的时候,目标主机在线,就可以马上进入工作状态。但缺点是该模式对冲突的解决是非常麻烦的,例如,当“主机2”向某一台主机发送数据的期间,“主机4”也再向另一台主机发送数据,则二者的数据会出现冲突,这种冲突会导致二主机所发的数据全部出错。解决办法就是二者各“等”一会儿再重发,但再重发并不能避免产生新的冲突。这种现象在频繁数据交换的时候,冲突的现象非常明显,会大大减低网络带宽,现在这种模式已被交换机模式所代替。
在交换机模式下,源主机“主机2”要向目标主机“主机3”发送数据,当数据到达交换机后,交换机会分析目标主机“主机3”所在的端口,然后只向该端口发送数据,这样,其余主机就接不到由源主机“主机2”所发出来的。这样,使得别的主机就不需要处理不属于自己的数据,从而减少了负荷,而且如果此前“主机5”要向“主机1”发送数据时,就不会出现冲突。在该模式下,由于有效地减少了“冲突”的可能,所以整个带宽的利用率大大提高,并且各个主机也减少了处理不属于自己数据包的工作。但这样做也有一些缺点,比如新主机的加入和当前在线主机的离开,通常都需要交换机花费一定时间来判断新的变化。当前绝大多数以太网所使用的都是交换机模式。
通过上面的分析,不难看出,当前以交换机作为交换设备的网络中,即使是将某一个网卡设置成“混杂模式”,除非使用一些特殊技术,网卡本身一般是接不到不是发送给自身的数据,所接到的只是给本身IP的数据和广播数据,但这时RAW Socket可以监听所有的数据了。这点与“常规模式”不同。
最后
以上就是欢呼唇膏为你收集整理的混杂模式的意义的全部内容,希望文章能够帮你解决混杂模式的意义所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复