您所在位置 : 首页 > 技术中心 > 网络工程系统集成技术 客户的满意是我们的追求 卓越的品质的我们的根本

网络工程系统集成技术

全国服务热线:
025-83693855
网桥、hub、路由器、交换机的区别
作者:兆通网络    时间:2019-12-07 11:18:00
信息摘要:
第一层交换:网络最底层的转接设备是中继器repeater,它工作在物理层,功能就是双向发大信号,通常的作用就是当线路比较长的时候保证型号不至于太衰减变形,除了产生一些延迟以外,和直接线缆相连没有区别。
    第二层交换:bridge和hub以及交换机switcher都工作在数据链路层,但是二者的机制不同。严格的讲,hub虽然连接多个主机,但不是交换设备,它面对的是以太网的帧,它的工作就是在一个端口收到的以太网的帧,向其他的所有端口进行广播(也有可能进行链路层的纠错),这样来看,它的中继器的工作机制是一样的,只是工作的层次不同。这样来看,只有hub的连接,只能是一个局域网段。而且hub的进出口是没有区别的。     交换机switcher也是连接多个计算机的,但是它会记录下来每个端口对应的主机的MAC地址,这样它的转发就不是广播形式,而是有选择的。只有交换机的连接,也只能是一个局域网段。而且switcher的进出口是有区别的。对于入口,每个端口只对应一个MAC地址,其他情况下的MAC地址都对应到出口。
    bridge也工作在数据链路层,它的作用也是连接两个网段,进行以太网帧的转发,但是它的转发机制不是广播,和交换机类似,内部有一个表来进行有选择的转发。不同的是,bridge是不区分入口和出口的。可以这样理解,二者在硬件上基本相同,不同的是bridge的每一个入口可以对应多个MAC地址。
    第三层交换:这就是路由器了,它操作的是IP地址,这个大家都很熟了。我觉得要注意的一点就是,高层的交换设备可以当着底层的交换设备来用,例如,你可以使用hub就连接距离比较远的两台机器,只使用其中的电信号放大功能。也可以使用路由器当Hub或者交换机来使用,只是连接一些主机作为一个局域网。

Q2:如果一个ether网帧的目的MAC地址,不是本机,网卡驱动应该还是收取到驱动缓冲区吧,然后由硬件丢弃??如果网口设为混杂模式,是不是就是网卡收到,还交给链路层?? 设为混杂模式和普通模式,工作方式有什么不同?
    网卡处理可以进行优化,不让所有的以太网帧都拿来处理。该功能称为Onboard Address Reconition(板上地址识别),只有MAC地址是本机的才交给上层处理,这就是普通模式。     所谓混杂模式promiscuous mode就是关闭了这个优化功能,只要是所有收到的包,都给上层处理。

Q3:所谓修改MAC地址,是怎么工作的?这个问题没有研究过,但是猜测有两种可能。
a、确实网卡的MAC地址被修改过了。例如MAC地址写在网卡上面EPROM里面,提供了驱动程序使用IOCTRL进行修改的接口。如果是这样的话,在一个机器上面修改了MAC地址以后,换一个机器的话,MAC地址仍然是修改后的。某些在DOS下运行的网卡确实支持这种方式的修改。
b、Windows里面的MAC地址实际上是一个逻辑意义上的地址,例如写在IO地址映射空间的内容里面(网卡分配的地址是E800-E8FF,总共256个字节,足够了)。网卡的硬件工作在物理层,负责电信号处理,驱动程序应该是工作在数据链路层,负责将码流形成帧,给TCP/IP处理(考虑到不安装TCP/IP协议仍然可以联网,哪个数据链路层的工作应该是由网卡驱动实现的)。驱动程序不会每次都读取网卡的寄存器来获得本机的MAC地址,应该是启动设备的时候读入,放到地址空间里面(呵呵,根据PCI总线配置空间猜想)。如果修改了这个IO地址空间里面的MAC数据,驱动程序组装以太网帧的时候是就使用你设置的新的MAC地址了。
我猜想应该是后面一种方式,具体的过程可以参考linux中关于以太网网卡驱动的部分。

他们还浏览了...
Copyright 2022 南京兆通网络工程有限公司 版权所有 苏ICP备08012394号