一直有对bridge、hub、switch、route很混淆,所以找了一些资料,用于区分这四个设备。
交换机switch-(交换式集线器)
1二层交换机自身的MAC地址是可有可无的.二层交换机可分为"可网管"和"不可网管"两种类型,对于"可网管"的交换机,我们可以对其进行参数配置;而"不可网管"交换机,则不能对其进行配置.因为二层交换机只是用来转发数据帧,不对帧进行拆封打包,所以对转发数据来说,自身的MAC地址是无用的.但 是有时候我们需要对交换机进行配置管理,这也就是说我们需要与交换机进行通信,此时它就需要一个MAC地址,相应此时的交换机就相当于平时通信的一台主机功能而已.
2.二层交换机如果有MAC地址的话,也有可能不仅仅只有一个MAC,可以有多个MAC,比如CISCO的交换机
3.对于二层交换机,在我们的专业术语中,自身内置的MAC地址叫做:Static mac address,而其所学习的mac table中的MAC称为:dynamic mac address.
4.最后想说一下,对三层交换机来说,它不仅有MAC地址,而且是每个端口都有MAC地址的,主要是由于有路由功能造成的
三层交换技术就是二层交换技术+三层转发技术。传统交换技术是在OSI网络标准模型第二层——数据链路层进行操作的,而三层交换技术是在网络模型中的第三层实现了数据包的高速转发,既可实现网络路由功能,又可根据不同网络状况做到最优网络性能。
三层交换与路由最大的区别就在于:路由支持nat转换,而三层不支持。
三层交换机的主要功能仍是数据交换,它的路由功能通常比较简单,因为它所面对的主要是简单的局域网连接,路由路径远没有路由器那么复杂,它用在局域网中的主要用途还是提供快速数据交换功能,满足局域网数据交换频繁的应用特点
技术上,路由器和三层交换机在数据包交换操作上存在着明显区别。
路由器一般由基于微处理器的软件路由引擎执行数据包交换,而三层交换机通过硬件执行数据包交换。
三层交换机在对第一个数据流进行路由后,它将会产生一个MAC地址与IP地址的映射表,当同样的数据流再次通过时,将根据此表直接从二层通过而不是再次路由,从而消除了路由器进行路由选择而造成网络的延迟,提高了数据包转发的效率。
同时,三层交换机的路由查找是针对数据流的,它利用缓存技术,很容易利用ASIC技术来实现,因此,可以大大节约成本,并实现快速转发。而路由器的转发采用最长匹配的方式,实现复杂,通常使用软件来实现,转发效率较低
集线器(HUB)
集线器也叫Hub,工作在物理层(最底层),没有匹配的软件系统,是纯硬
件设备。集线器主要用来连接计算机等网络终端。
集线器为共享带宽,连接在集线器上的任何一个设备发送数据时,其他所有设备必须等待,此设备享有全部带宽,通讯完毕,再由其他设备使用带宽。正因此,集线器连接了一个冲突的网络。所有设备相互交替使用,就好像大家一起过一根独木桥一样。
集线器不能判断数据包的目的和类型,所以如果是广播数据包也依然转发,而且所有设备发出数据以广播方式发送到每个接口,这样集线器也连接了一个广播域的网络
集线器的工作原理很简单,比如有一个具备8个端口的集线器,共连接了8台电脑。集线器处于网络的“中心”,通过集线器对信号进行转发,8台电脑之间可以互连互通。具体通信过程是这样的:假如计算机1要将一条信息发送给计算机8,当计算机1的网卡将信息通过双绞线送到集线器上时,集线器并不会直接将信息送给计算机8,它会将信息进行“广播”——将信息同时发送给8个端口,当8个端口上的计算机接收到这条广播信息时,会对信息进行检查,如果发现该信息是发给自己的,则接收,否则不予理睬。由于该信息是计算机1发给计算机8的,因此最终计算机8会接收该信息,而其它7台电脑看完信息后,会因为信息不是自己的而不接收该信息
和交换机区别:
集线器是采用共享工作模式的代表,如果把集线器比作一个邮递员,那么这个邮递员是个不认识字的“傻瓜”——要他去送信,他不知道直接根据信件上的地址将信件送给收信人,只会拿着信分发给所有的人,然后让接收的人根据地址信息来判断是不是自己的!而交换机则是一个“聪明”的邮递员——交换机拥有一条高带宽的背部总线和内部交换矩阵。交换机的所有的端口都挂接在这条背部总线上,当控制电路收到数据包以后,处理端口会查找内存中的地址对照表以确定目的MAC(网卡的硬件地址)的NIC(网卡)挂接在哪个端口上,通过内部交换矩阵迅速将数据包传送到目的端口。目的MAC若不存在,交换机才广播到所有的端口,接收端口回应后交换机会“学习”新的地址,并把它添加入内部地址表中
网桥(bridge)
BRIDGE ,网桥,是一个网络设备或软件,用于两个或多个网络之间的互连,对帧进行转发。与路由器的区别在于它工作于数据链路层。 数据链路层互联的设备是网桥(bridge),在网络互联中它起到数据接收、地址过滤与数据转发的作用,用来实现多个网络系统之间的数据交换。 bridge在某种意义上 等同与switches,不同的地方在于bridges只包括2到4个端口(port),而switches可以包括多达上百端口.但是相同的地方是它们都可以分割大的冲突域为数个小冲突域,因为1个端口即为1个冲突域,但是它们仍然处在1个大的广播域中.分割广播域的任务,可以以routers来完成
简单的说网桥就是个硬件网络协议翻译器,假设你有2台电脑,一台兼容机安装windows,一台是Apple安装OS2,那么两台电脑之间是默认网络协议是不同的,兼容机可能只会说TCP/IP,苹果机只会说Apple talk,就好象两个外国人都不会说对方的语言,怎么办?找个翻译,网桥就是翻译。
在386、486时代网桥可能是一台安装了协议转换程序的电脑,如今交换机也包含这个功能。今天的操作系统之间为了互相交流,支持更多的协议,操作系统自己就可以是网桥,现在网桥这个概念已经淡出了。更多是所谓的桥接、转发、协议二次封装。 网桥也可以说相当一个端口少的二层交换机,再者网桥主要由软件实现,交换机主要由硬件完成。
网桥是2层,识别MAC
hub和bridge都是可以工作在以太网的设备,hub以广播的方式去传输设备发来的数据包,所以hub本身不知道它每个端口所连接的设备的mac地址,而且hub只能传输同一个网段的数据包。而bridge可以自动学习它所连接的网络里的mac地址生成一个散列表,每个端口可以对应多个mac地址,在传输数据的时候bridge将传过来的数据包的目的mac地址和散列表中的mac地址对比,在同一个网络里的数据包在到达bridge时候bridge 就将这个包丢弃,不再同一个网段里的就转发,而且bridge可以跨多个网段
网桥和交换机区别在叙述前,我们先一起看两幅图:
1.网桥的连接模式:(红点处为HUB)
2.交换机连接模式:
从图中可以看到,网桥只有2个输入/出端口,而交换机有 8个。嗯,是的,一开始的时候(那时候只有HUB这种设备),由于硬件水平不是很发达,人们为了提高局域网效率,减少广播风暴的出现,他们生产了网桥(一 个只有两个输入/出端口的链路层设备,这时的网桥已经是个比较先进的设备),然后他们把一个局域网一分为2,中间用网桥连接,这样A发给BCD的数据就不会再广播到EFGH了(网桥发现如果数据包不是转发给下面这个子网的,它会自动丢弃此包),只有从A发到EFGH的数据包才能通过网桥,到达另外一个子网 (网桥发现如果数据包是转发给下面这个子网的,它才会把包转发给这个子网)。
这样一来,非必要的传输减少了,整个网络的效率也随之提高可不少!人们发现网桥真是个好东西呀,随着硬件发展,出现了4个,8个端口的链路层设备,这就是交换机,由于交换机可以使得网络更安全(数据不容易被监听,因为数据不再广播了,注意:只是不容易而已,要搞你其实还是可以的),网络效率更高(还是因为数据不再广播!),交换机渐渐替代了HUB,成为组建局域网的重要设备。
所以说,网桥和交换机,基本上是一样的,嗯,只是基本上而已,细看还是有些不一样的,但在说明他们之间有什么不一样之前,我想先简单介绍一下网桥和交换机的工作原理。
3.网桥的工作原理:
上图是用一个网桥连接的两个网络,网桥的A端口连接A子网,B端口连接B子网,为什么网桥知道哪些数据包该转发,哪些包不该转发呢?那是因为它有两个表A和B,当有数据包进入端口A时,网桥从数据包中提取出源MAC地址和目的MAC地址。
一开始的时候,表A和表B都是空的,没有一条记录,这时,网桥会把数据包转发给B网络,并且在表A中增加一条MAC地址(把源MAC地址记录表中),说明这个MAC地址的机器是A子网的,同理,当B子网发送数据包到B端口时,网桥也会记录源MAC地址到B表。
当网桥工作一段时候后,表A基本上记录了A子网所有的机器的MAC地址,表B同理,当再有一个数据包从A子网发送给网桥时,网桥会先看看数据包的目的MAC地址是属于A子网还是B子网的,如果从A表中找到对应则,抛弃该包,如果不是,则转发给B子网,然后检查源MAC地址,是否在表中已经存在,如果不存在,在表A中增加一条记录。
噢,或许你现在会问了,为什么需要两张表呢,一张表不行么??嗯~刚才把表一分为二是为了便于理解,实际上,真正的网桥里面存的应该是一张表(当然有可能为了提速,或者其他原因,它也可能把信息存为多张表,这个得看它怎么实现了~),如果是一张信息表,表里记录的应该是:MAC-PortNum。
4.交换机有些许不同,如图:
交换机也有一张MAC-PORT对应表(这张表的学名为:CAM),和网桥不一样的是,网桥的表是一对多的(一个端口号对多个MAC地址),但交换机的CAM表却是一对一的,如果一个端口有新的MAC地址,它不会新增MAC-PORT记录,而是修改原有的记录
例如:现在交换机记录表里已经有一项:MAC1-Port1,如果此刻端口1又来了一个数据包,里面的源MAC地址是MAC2,此时,交换机会刷新交换机记录表:MAC1-Port1记录被修改为MAC2-Port1,因为交换机认为是端口1的计算机MAC地址变了,如果端口1连接的一台物理机器,MAC一般是不会变的,如果连接的是另外一个交换机,那这个端口的记录会变化得比较频繁(如上图的Port12,它是对外的接口,与一个局域网连接),另外,如果CAM表中没有找到和数据包的目的MAC地址对应的记录,交换机会对此数据包进行广播,发给本交换机的每一个端口。
网桥和交换机的缓存对比
网桥和交换机除了用CAM表指导数据包转发这点和HUB不一样外,网桥和交换机还有一个特点:缓存!对,网桥和交换机都有一定量的缓存,因为网桥和交换机转发数据包需要一些额外的操作,所以可能会占用一些时间,为了避免出现因来不及转发数据,导致大量数据丢失的情况,网桥和交换机就出现了缓存。
当然,缓存不是万能的,当网桥或交换机处理不及并且缓存用完了,以后再来的数据还是会丢失的。还一个网桥需要缓存的原因是:桥接两个传输速率不同的局域网,比如:802.3的传输速率说10mb/s,但实际上并不是真的10Mb/s,而 802.4(几乎)确实为10Mb/s,但两个局域网桥接时候必须是速率一样的,否则会有包丢失,而缓存也正好可以为不同速率网络连接时所使用。
网桥的缓存量是大于交换机的缓存量,因为网桥天生是为了连接两个网络的,两个网络桥接时所要处理的数据量会比一般的交换机需要处理的数据量要多,所以网桥的缓存也一般要比交换机大一点。