我记得刚涉及电脑的时候,也就是网络刚兴起的那会,经常跑网吧里去上网。我记得很清楚,有一款名为“QQ第六感”的软件,可以嗅探到网吧里所有的QQ号码。当时网络也不懂,就在想:这软件真是神奇!后来这款软件就不起作用了,原因是什么?看完此文就懂了。

  交换机与集线器不同之处是,集线器会将网络内某一用户发送的数据包传至所有已连接到集线器的计算机。而交换机则只会将数据包发送到指定目的地的计算机(透过MAC表),相对上能减少数据碰撞及数据被窃听的机会。交换机更能将同时传到的数据包分别处理,而集线器则不能。

  最大的不同之处在于集线器的每一个接口都处于相同的冲突域,却交换机的每个接口处于独立一个冲突域。在性能方面尤为突出:例如在100Mb/s的以太网中有100个用户,使用集线器,每个用户只有1Mb/s(100Mb/s/100),因为集线器是共享式的网络;而使用交换机,每个接口有100Mb/s,如果有100个接口,总带宽为100*100Mb/s (最终的带宽大小取决于输入接口的带宽;即如果输入端口只有10000M,则达到上限前,每个用户都能使用100M带宽,但一旦所有用户的总需求超过10000M,用户将在相同优先级的原则下进行带宽分配),因为交换机是独立式的网络。


  集线器工作于物理层,每个端口相当于一个中继器,原理很简单,只对物理电信号放大中继,所有端口同属一个冲突域,主要用来延伸网络访问距离,扩展终端数量。
交换机工作于数据链路层,它的每个端口相当于一个集线器,原理是根据数据帧头的MAC地址转发帧到合适的端口,每个端口是一个独立的冲突域。

  打个不太恰当的比喻:集结器相当于一个大办公区,两个人之间沟通必然会干扰其他人,影响效率,同时也没有私密性。
而交换机相当于每个人都在独立的办公室,沟通只需要根据办公室门牌号(MAC地址)找到本人,在办公室私聊就可以了,影响的只是办公室外面走廊(背板带宽)。


  交换机(Switch)是一种基于MAC(网卡的硬件地址)识别,能完成封装转发数据包功能的网络设备。交换机可以“学习”MAC地址,并把其存放在内部地址表中,通过在数据帧的始发者和目标接收者之间建立临时的交换路径,使数据帧直接由源地址到达目的地址。

  集线器(HUB)是计算机网络中连接多个计算机或其他设备的连接设备,是对网络进行集中管理的最小单元。英文Hub就是中心的意思,像树的主干一样,它是各分支的汇集点。HUB是一个共享设备,主要提供信号放大和中转的功能,它把一个端口接收的所有信号向所有端口分发出去。

交换机与集线器的区别

  打个比方一个8口hub, 当端口1上的机器要给端口8上的机器发数据,那这个数据是这样跑的:首先她在端口1上侦听hub上有没有数据在传输,如果没有,端口1就跳出来向hub上喊:“我有数据包要给端口8,请端口8听到后回话” 这个数据被以广播的方式发送到hub上的其余7个口上,每端口都会接到这样的数据包,然后端口2---端口7会发一则消息给断口1:“我不是端口8,请你快tmd释放带宽资源” 与此同时端口8会发消息给断口1:“我是端口8,你在找我吗?”端口1收到上述消息后,会和端口8进行确认,然后他们建立传输链接,完成数据转发。等如果端口1在发送寻找断口8的消息后,没有得到相应,那她还会接着发这个消息,直到收到端口8的回答。等端口1和端口8完整数据转发后,假设他们还要进行通讯,那么hub上还会重复以上的过程。由此可见hub的通信方式点点碰撞,一个数据,需要送达所有的端口,这不但增加了数据转发的时间,更要命的是hub往往会给网络带来可怕的广播风暴。 而相同的工作再交换机就不用这么麻烦,假设端口1和端口8从没有通信过,那么开始的时候,他们的工作和hub一样,端口1要在交换机上找端口8,一旦端口8返回确认信息,那再端口1上就会生成1个和端口8的地址对应表,这个表里面有所有和端口1通过信的端口,一旦有了这地址对应表,那在以后端口1要和端口8通讯,就不用这么麻烦,可以直接送达,而且其他的断口也不会知道他们直接正在转发数据,这样不当加快了数据转发时间,而且避免了可怕的广播风暴。


  集线器(HUB)是计算机网络中连接多个计算机或其他设备的连接设备,是对网络进行集中管理的最小单元。英文Hub就是中心的意思,像树的主干一样,它是各分支的汇集点。 HUB是一个共享设备,主要提供信号放大和中转的功能,它把一个端口接收的所有信号向所有端口分发出去。(广播形式)

  交换机(Switch)是一种基于MAC(网卡的硬件地址)识别,能完成封装转发数据包功能的网络设备。交换机可以“学习”MAC地址,并把其存放在内部地址表中,通过在数据帧的始发者和目标接收者之间建立临时的交换路径,使数据帧直接由源地址到达目的地址。

举个例子

  打个比方一个8口hub。当端口1上的机器要给端口8上的机器发数据,那这个数据是这样跑的:

  首先她在端口1上侦听hub上有没有数据在传输,如果没有,端口1就跳出来向hub上喊:“我有数据包要给端口8,请端口8听到后回话” 这个数据被以广播的方式发送到hub上的其余7个口上,每端口都会接到这样的数据包。

  然后端口2---端口7会发一则消息给断口1:“我不是端口8,请你快tmd释放带宽资源” 与此同时端口8会发消息给断口1:“我是端口8,你在找我吗?”

  端口1收到上述消息后,会和端口8进行确认,然后他们建立传输链接,完成数据转发。

  如果端口1在发送寻找断口8的消息后,没有得到回应,那她还会接着发这个消息,直到收到端口8的回答。

  等端口1和端口8完整数据转发后,假设他们还要进行通讯,那么hub上还会重复以上的过程。由此可见hub的通信方式点点碰撞,一个数据,需要送达所有的端口,这不但增加了数据转发的时间,更要命的是hub往往会给网络带来可怕的广播风暴。


  集线器,数据过来以后会广播一遍,即每个人都会接收到一次,不管是不是你的数据包。

  交换机,数据过来以后会通过mac把数据直接发给指定的人,而不会每个人都收到

  集线器:pc1 = 192.168.1.50; pc2 = 192.168.1.50; pc3 = 192.168.1.50.

  交换机(非网管型):pc1 = 192.168.1.50; pc2 = 192.168.1.51; pc3 = 192.168.1.52.

  路由器:自身 = 192.168.1.1; pc1 = 192.168.1.50; pc2 = 192.168.1.51; pc3 = 192.168.1.52.