三台计算机互连
那么我们就要回到文章开头提到的hub了。
这是一个工作在物理层的设备。
拥有多个网络端口,解决了电脑只有一个网络端口的问题。多台计算机的网线可以插入集线器中。
同时,工作原理也非常简单。从某个端口接收到的数据被输入到中继电路。
中继电路的基本功能是将传入信号广播到集线器的所有端口。
简单来说,就是无脑复制N份到剩下的N个端口。
集线器互连
数据复制到N个端口后。对应转发到N台机器。
轮毂内部结构
至此,我们对hub已经有了一个大概的了解。
接下来我们看一下轮毂的内部结构。
轮毂内部结构
此时从网络端口A进入集线器的消息仍然是电信号。这里传递一个PHY模块。
要了解PHY模块的作用,首先要了解每个网口都可能连接一根网线(废话),并且每条网线的传输格式可能不同。 PHY的作用就是将这些格式转换成通用的格式。
举个例子。 PHY就像一个翻译器。有些人说英语,有些人说日语。但PHY会统一转换成普通话并在内部电路中进行处理。内部电路处理后,经过PHY模块,转换成英文或日文从相应的网口输出。
经过PHY处理后,以电信号的形式输入到中继电路,进行无脑广播,然后再次经过PHY模块,变成BCD网口格式输出。
这里的电信号会受到噪声的干扰,造成信号变形误差。
但即使错了,依然会原封不动地播出。这就是上面所说的无脑的本质。

如果信号出错怎么办?
接收者只有在收到消息后才能验证该消息。
还记得上面提到的数据链路层MAC头末尾的FCS吗?
FCS中存储的是发送方通过循环冗余校验CRC计算出的值。
接收器使用接收到的数据计算 CRC 并将其与 FCS 中的值进行比较。
如果一致,就证明数据没有问题。如果出现错误,直接丢弃。
当然,丢弃数据包不会影响数据传输,因为丢弃的数据包不会触发确认响应。因此,协议栈的TCP模块会检测到数据包丢失并重传数据包。
如果报文没有错误,但由于无脑广播,C也能收到A发给B的数据包。
这时C收到数据包后就会一层层“剥离”。
一般情况下,当数据链路层识别出目的MAC地址与C的不一致时,数据也会被丢弃。

当集线器互连时广播消息
什么是开关
目前ABC机只有三台,每次广播消息都是可以的。
如果机器越来越多,每台机器发送一条消息,就会被广播,这就有点不堪重负了。
举个例子。
假设有N台机器,其中两台机器A和B,A发送给B,B发送给A,总共两条消息。
如果使用这N台机器,它们就是集线器。或者AB之间互相发送消息。如果广播每条消息,则将是(N-1)+(N-1)条消息。差距相当大,网络资源浪费严重。
那么,是否可以避免将A发送给B的消息转发给C呢?
是的,用交换机替换集线器。
交换机也称为交换机,看起来与集线器非常相似。
但它的功能更强。从网络分层上来说,属于数据链路层,比集线器所在的物理层高一层。
所有发送到交换机的数据都会首先进入交换机的缓冲区。然后消息被转发到相应的机器。
注意这里使用的是转发,而不是集线器的广播。交换机如何转发?
MAC地址表
交换机内部维护着一张MAC地址表。
记录端口号和MAC地址的对应关系。
此表中的数据是交换机不断学习的结果。
当A向交换机发送报文时,交换机发现该报文来自端口1kaiyun.ccm,并将端口1对应的A的MAC地址记录在MAC地址表中。
如果A长时间没有向这个1号端口发送消息,那么这条记录就会过期并被删除。
然后,当时间足够长,ABC已经向交换机发送了消息时,地址表就有了完整的关系信息。

交换机互连时转发消息1
两种特殊情况
正常的流程已经很清楚了,我们来看两种特殊情况:
交换机查询地址表时,发现目的MAC地址的目的端口和该报文的源端口是同一个端口。我应该怎么办?
先说结论吧。这个包会被直接丢弃。
让我们看看如果不丢弃会发生什么。

当交换机源端口和目的端口一致时
A只发送了一条消息,B却收到了两条消息,这显然是错误的。
因此,当交换机查询地址表,发现目的端口和源端口是同一个端口时,就会丢弃该数据包。
在MAC地址表中找不到对应的MAC地址。我应该怎么办?
这可能是因为该地址的设备还没有向交换机发送过数据包,或者该设备已经有一段时间没有工作,导致该地址被从地址表中删除。
在这种情况下,交换机无法确定数据包应转发到哪个端口。它只能将数据包转发到除源端口之外的所有端口。无论设备连接到哪个端口,都可以接收到数据包。
此时,交换机将像集线器一样进行广播。
发送数据包后,目标设备将做出响应。只要返回响应数据包开yun体育app官网网页登录入口,交换机就可以将其地址写入地址表中,而无需下次将数据包发送到所有端口。
开关内部结构
我们先来看看交换机的内部结构。

开关内部结构
其实通过比较可以发现,交换机和集线器的内部结构非常相似。
值得一提的是MAC模块。消息以电信号的形式从网络端口进入,到达PHY时被转换为通用格式的电信号。 MAC模块的作用就是将这个电信号转换成数字信号,这样就可以提取出MAC数据包头,并通过MAC数据帧末尾的FCS来检查数据包是否有问题。如果没有问题,数据就会被放入内存缓冲区中。区,否则直接丢弃。
另外,这个MAC模块是这样称呼的。但实际上,交换机MAC模块是没有MAC地址的。因此,交换机端口不会检查接收方MAC地址,而是直接接收所有数据包并将其存储在缓冲区中。
MAC地址和端口号放入内存缓冲区后,也会记录在MAC地址表中。同时检查目的MAC地址是否在MAC地址表中。如果有则转发到对应的端口。否则广播。
交换机和网桥的区别
网桥本质上可以理解为有两个网线端口的交换机,只能连接两台计算机,也称为网桥。交换机是具有多个网线端口的网桥,可以连接(桥接)多台计算机。
其他功能方面,都差不多,不用太担心。
交换机、二层交换机、三层交换机有什么区别?
本节提到的交换机实际上是二层交换机,即工作在第二层(数据链路层)的交换机。两者没有区别。
三层交换机是工作在第三层(网络层)的交换机。其实就是接下来要提到的路由器。
什么是路由器
有了交换机,小网吧里的所有电脑都可以连接起来。是不是交换机的网口不够?然后连接另一个开关。
但是世界上有这么多的计算机云开·全站体育app登录,我们需要记住交换机中所有的MAC地址表吗?
显然这是不可能的。为了解决这个问题。
于是就有了路由器,它工作在网络层,比数据链路层高一层。
网络层引入了IP的概念。
什么是IP
比如前面提到的192.168.0.105就是一个IP,同一个局域网内可能还有另一个IP 192.168.0.106。你有没有注意到,它们都是192.168.0.xxx。
看起来像上海黄浦区南京东路105号这样的地址。在现实生活中,我们可以使用地址来定位我们想去的地方。当我们到达上海市黄浦区南京东路105号楼时,我们可以去找一个身份证是xiaobaixxxxx的人。
在互联网世界中,我们还可以通过IP地址来定位某个WAN网段,然后通过WAN内局域网的MAC地址来定位特定的计算机。
上海市黄浦区南京东路105号可以帮助我们找到位于南京东路的105号楼。但还有一些路,比如南京西路,可能不仅到105号,还可能到257号。
事实上,IP由网络号和主机号组成,共32位。如果用前24位作为网络号,那么主机号就只剩下8位了,2的8次方=256,也就是最多256号楼。因此,为了表示多几层,可以在网络号上多移动几个数字作为主机号。
那么使用多少位数字作为网络号呢?您可以在 IP 后面添加一个数字来表明这一点。
于是就有了表示方法192.168.0.105/24,它表示前24位192.168.0.0是网络号,105是主机号。

网络号和主机号
通过网络段,可以一次表示大量地址。不需要像交换机那样将MAC地址一一记录在表中。
路由表
路由器的作用可以帮助我们将消息转发到互联网世界中对应的IP。
比较一下。
交换机根据MAC头中接收者的MAC地址确定转发目标。
根据IP头中的IP地址来判断路由器。
由于使用的地址不同,记录转发信息的表也会不同。
与交换机的MAC地址表类似,路由器也维护着路由表。
路由表用于告诉路由器什么样的消息应该转发到哪个端口。

路由互连时
假设A要向D发送消息,即192.168.0.105/24要向192.168.1.11/24发送消息。
然后A将消息通过交换机发送给路由器。
路由器通过192.168.0.105/24获取自己的网络号,即192.168.0.0,目的地的网络号为192.168.1.0。两个网络号不同,并且在不同的局域网中。
查看路由表,发现e2端口上有192.168.1.0。然后消息将从 e2 端口发送并到达交换机。交换机发现该MAC地址是其局域网下的D机,并转发该报文。
当然,如果在路由表中查不到,那就调用默认网关,即从e1端口发送到IP192.0.2.1。该路由器的路由表不知道它应该去哪里。也许其他路由器知道。
路由器内部结构

路由器内部结构
路由器内部分为控制平面和数据平面。说白了,就是对应软件部分和硬件部分。
硬件部分与交换机非常相似。数据从A网口进入。此时的数据仍然是网络线格式的电信号。它将由PHY模块转换为通用信号格式,然后由MAC模块转换为数字信号。通过FCS进行错误检查,同时检查MAC地址。如果是自身,则验证通过则进入内存缓冲区,否则丢弃。
然后进入软件部分,路由处理器通过一定的规则(软件逻辑)查询路由表确定转发目标和对应的转发端口,然后通过硬件部分的交换结构进行转发。
如果在路由表中找不到匹配的记录,路由器将丢弃该数据包并通过 ICMP 消息通知发送者。
路由器和交换机的主要区别及MAC模块的区别
路由器和交换机的区别在于每个网络端口都有一个MAC地址和一个IP地址。
因为路由器有MAC地址,所以它可以作为数据链路层的发送者和接收者。
这句话怎么理解呢?
前面提到,交换机没有MAC地址,需要在MAC头中填充目的MAC地址。因此,交换机永远不是数据的目的地,它只是将数据帧转发到目的地。
但路由器有MAC地址,所以可以写入MAC头,下一个目的地就是xx路由。
到达路由器后,路由器可以重新组装下一条路由的目的MAC地址,从而实现数据在路由之间的传输。
同时,由于交换机没有MAC地址,因此不会验证收到的数据帧的MAC地址是否是自己的,会全部接受进行转发。路由器会检查数据帧MAC头中的目的MAC地址是否是自己的。如果是,则将其包含在内存缓冲区中,否则将被丢弃。
找不到转发目的地时,处理方法有所不同。
如果在路由表中找不到匹配的记录,路由器将丢弃该数据包并通过 ICMP 消息通知发送者。
当交换机在MAC地址表中找不到转发端口时,就会选择广播。
由于网络的大小,这里的两种方法有所不同。
交换机连接的网络最多只能有几千台设备,规模并不大。如果只有几千个设备,并且遇到不知道要转发到哪里的数据包,交换机可以将数据包发送到所有端口。这种方法虽然简单粗暴,但是不会产生任何问题。
但路由器工作的网络环境是互联网。世界上的所有设备都连接到互联网。规模非常大,而且规模还在不断扩大。
如果此时像交换机一样运作,将不知道该转发到哪里的数据包发送到整个网络,就会产生大量的网络数据包,造成网络拥塞。因此,当路由器遇到不知道要转发到哪里的数据包时,会直接将其丢弃。
路由器和光调制解调器有什么区别?
无论是交换机还是路由器,前面都提到过,网口是输入电信号的。但现在流行的是光纤传输,传输的是光信号。
调制解调器就是调制解调器,实际上是一种用于光电信号转换的设备。
当接收数据时,光纤中的光信号可以转换为电信号并发送给路由器。然后路由器会将其转换为数字信号,并在此基础上进行各种处理。
相反,来自路由器的电信号将被转换为光信号,发送到光纤,进入互联网。

光猫和路由器的区别2
总结
原文链接:
硬核插画! 30张图帮你看懂!路由器、集线器、交换机、网桥和光调制解调器有什么区别?

