路由器,集线器,交换机,网桥,光猫有啥区别?

网络分层

在这里插入图片描述

网线替代了上面的灰色部分,实现物理层互联。

如果想要两台电脑互联成功,还需要确保每一层所需要的步骤都要做到位,这样数据才能确保正确投送并返回。

从数据链路层到物理层,数据会被转为01比特流

此时需要把比特流传到另一台电脑。

通过一根网线,两段水晶头插入网口,把两台电脑连起来。


互联

A电脑和B电脑完成连接之后,可以尝试从A电脑中ping一下B,再从B电脑中ping一下A。如无意外,都能ping通。

A给B发个消息,从应用层到数据链路层,会分别加上A和B的各种’'身份信息"。比如在传输层会加上A和B的应用端口号,在网络层加上源和目的IP,在数据链路层会加上源和目的网卡的MAC头部信息

B收到消息后逐层解包,验证,最后顺利到达应用层。实现AB两台机器消息互通。


集线器

每台电脑只有一个网线口,如何实现多人互联。

集线器就登场了,这是个工作在物理层的设备。

多个网口,很好的解决了电脑上只有一个网口的问题,可以做到多台电脑的网线都插入到集线器上。

同时工作原理也非常简单,会把某个端口收到的数据,输入到中继电路

中继电路的基本功能是将输入的信号广播到集线器的所有端口上。


集线器的内部结构

在这里插入图片描述

从A网口进入集线器的消息,此时还是电信号。这里经过一个PHY模块。

要理解PHY模块的作用,首先要先了解每个网口,都可能接着网线,而每根网线的传输的格式都是有可能不同的。而PHY的作用,就是把这些格式转化为一个通用的格式。

经过PHY的处理后,以电信号的形式输入到中继电路,被无脑广播,再次经过PHY模块后变成BCD网口的格式输出。


交换机

如何机器很少的情况下,每次都是广播发消息倒还好。

如果机器越来越多,每台机器发一条消息,都会被广播,就有点顶不住了,对网络资源浪费就有些严重了。

那么,有没有可能做到,A发给B的消息,就不要转发给C呢?

可以的,把集线器换成交换机。

交换机,又叫switch,跟集线器长得很像。

但是功能更强一些,从网络分层上来说,属于数据链路层,比集线器所在的物理层还要高一层。

所有发到交换机的数据,都会先进入交换机的缓存区。接着消息再被转发到对应机器上。

注意这里用的是转发,而不是集线器的广播,交换机是怎么做到转发的呢?


MAC地址表

交换机内部维护了一张MAC地址表

记录了 端口号和MAC地址的对应关系。

这个表的数据是交换机不断学习的结果。

当A发消息到交换机时,交换机发现消息是从1号端口进来的,则会在MAC地址表上,记录A的MAC地址对应1号端口。

如果A没有很长时间没发消息到这个1号端口,那这条记录就会过期并被删除

那么,当时间足够长,ABC 都发过消息给交换机后,地址表就会有完整的关系信息。


交换机内部结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LWqIXem7-1670315750059)(C:\Users\mojiahao\AppData\Roaming\Typora\typora-user-images\image-20221206145847652.png)]

其实对比可以发现,交换机和集线器内部结构很像。

重点需要提到的是MAC模块。消息以电信号的形式从网口进入,到了PHY会被转成通用格式的电信号。而MAC模块的作用是把这个电信号转为数字信号,这样就能提取出MAC包头,并通过MAC数据帧末尾的FCS校验这个包有没有问题,如果没问题,则把数据放到内存缓冲区里,否则直接丢弃。

另外,这个MAC模块,虽然这么叫。但其实交换机MAC模块不具有 MAC 地址。因此交换机的端口不核对接收方 MAC 地址,而是直接接收所有的包并存放到缓冲区中。

放入到内存缓冲区后,还会把MAC地址和端口号记录到MAC地址表中。同时检查目的MAC地址在不在MAC地址表中,在的话则会转发到对应端口。否则广播


网桥

网桥,本质上可以理解为两个网线口的交换机,正好可以把两台电脑给连起来,也叫桥接。而交换机,则是多网线口的网桥,可以把多台电脑给连(桥接)起来。

其他功能方面,大差不差,不必太过纠结。


路由器

交换机网口是有限的,市面上电脑这么多,交换机里的MAC地址表难道全都要记住吗?

显然做不到。为了解决这个问题。

于是就有了路由器,工作在网络层,比数据链路层更高一层。

网络层引入了IP的概念。


路由表

路由器的作用,可以帮助我们在互联网世界里转发消息到对应的IP。

对比一下。

交换机,是通过 MAC 头部中,接收方 MAC 地址,来判断转发目标的。

路由器,则是根据 IP 头部中, IP 地址来判断的。

由于使用的地址不同,记录转发信息的表也会不同。

类似交换机的MAC地址表,路由器也维护了一张路由表

而路由表,是用于告诉路由器,什么样的消息该转发到什么端口。


路由器的内部结构

在这里插入图片描述

路由器内部,分为控制平面和数据平面,说白了就是对应软件部分和硬件部分

硬件部分跟交换机很像。数据从A网口进入,此时数据还是网线上格式的电信号,会被PHY模块转为通用信号格式,再被MAC模块转为数字信号,通过FCS进行错误校验,同时校验MAC地址是否是自己,通过校验则进入内存缓冲区,否则丢弃。

再进入软件部分,由路由选择处理器,通过一定规则(软件逻辑),查询路由表判断转发目标和对应转发口,再经由硬件部分交换结构转发出去。

如果路由表中无法找到匹配记录,路由器会丢弃这个包,并通过ICMP消息告知发送方。


路由器和交换机的主要区别
MAC模块的区别

路由器和交换机不同点在于,它的每个网口下,都有一个MAC地址和IP地址

正因为路由器具有 MAC 地址,因此它能够成为数据链路层的的发送方和接收方

怎么理解这句话?

前面提到交换机,是不具备MAC地址的,而MAC报头是需要填上目的MAC地址的。因此交换机从来都不是数据的目的地,它只简单转发数据帧到目的地

但路由器,是有MAC地址的,因此MAC报头就可以写上,下一站目的地就是xx路由。

到了路由器后,路由器可以再次组装下一站的目的MAC地址是再下一个路由,通过这一点,让数据在路由和路由之间传输。

而同时因为交换机不具有MAC地址,因此也不会校验收到的数据帧的MAC地址是不是自己的,全部收下做转发。而路由器则会校验数据帧的MAC报头里的目的MAC地址是不是自己,是的话才会收入内存缓冲区,否则丢弃。


找不到转发目的地时的处理方式有区别

如果在路由表中无法找到匹配的记录,路由器会丢弃这个包,并通过 ICMP消息告知发送方。

而交换机在MAC地址表里找不到转发端口时会选择广播。

这里的处理方式两者是不同的,原因在于网络规模的大小。

交换机连接的网络最多也就是几千台设备的规模,这个规模并 不大。如果只有几千台设备,遇到不知道应该转发到哪里的包,交换机可以将包发送到所有的端口上,虽然这个方法很简单粗暴,但不会引发什么 问题。

但路由器工作的网络环境就是互联网,全世界所有的设备都连接在互联网上,规模非常大,并且这个规模还在持续扩大中。如果此时它的操作跟交换机一样,将不知道应该转发到哪里的包发送到整个网络上,那就会产生大量的网络包,造成网络拥塞。因此,路由器遇到不知道该转发到哪里的包, 就会直接丢弃。


路由器和光猫有什么区别

不管是交换机还是路由器,前面都是提到网口输入的是电信号。但现在流行的是光纤传输,传输的是光信号

光猫(modem),是一种调制解调器,其实就是用于光电信号转换的设备。

接收数据时,可以将光纤里的光信号转化为电信号,发给路由器,路由器内部再转成数字信号,并在此基础上做各种处理。

相反,也会把路由器传来的电信号转为光信号,发到光纤,并进入互联网。


总结
  • 两台电脑可以通过一根网线直接连接,进行通信。

  • 机器一多,可以把网线都接到集线器(物理层)上,但是集线器会不管三七二十一进行广播

  • 不想广播,可以用(二层)交换机(数据链路层),又叫多端口网桥,它比较聪明,会自我学习生产MAC地址表,知道消息发到哪,那就不需要广播

  • 互联网电脑这么多,交换机MAC地址表总不能全放下吧。改用路由器(网络层),也叫三层交换机,通过网段的方式定位要把消息转发到哪,就不需要像交换机那样苦哈哈一条条记录MAC地址啦。

  • 路由器和光猫之间是好搭档,光猫负责把光纤里的光信号转换成电信号给路由器。

  • 现在一般情况下,家里已经不用集线器和交换机了,大部分路由器也支持交换机的功能。所以可以看到,家里的台式机电脑一般就连到一个路由器,再连个光猫就够能快乐上网了。

原文: 硬核!阿里面试就是不一样!30张图带你搞懂路由器,集线器,交换机,网桥,光猫有啥区别?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值