从A网口进入集线器的消息,此时还是电信号 。这里经过一个PHY模块 。
要理解PHY模块的作用,首先要先了解每个网口,都可能接着网线(废话),而每根网线的传输的格式都是有可能不同的 。而PHY的作用,就是把这些格式转化为一个通用的格式 。经过PHY的处理后,以电信号的形式输入到中继电路,被无脑广播,再次经过PHY模块后变成BCD网口的格式输出 。
举个例子 。PHY就好比一个翻译器,有的人说英文,有的人说日文 。但是PHY,会把它统一转为普通话,给内部电路处理 。内部电路处理完之后,再经过PHY模块,转为英语,或日文从对应网口里输出 。
这里面的电信号,是会受噪声干扰,导致信号形变出错的 。
但就算是错了,也还是会原封不动的广播出去,这就是上面提到无脑的精髓所在 。
那信号如果出错了怎么办?
只能让接收方收到消息后进行校验 。
还记得上文里提到的数据链路层的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呢?
可以的,把集线器换成交换机 。
交换机,又叫switch,跟集线器长得很像 。
但是功能更强一些,从网络分层上来说,属于数据链路层,比集线器所在的物理层还要高一层 。
所有发到交换机的数据,都会先进入交换机的缓存区 。接着消息再被转发到对应机器上 。
注意这里用的是转发,而不是集线器的广播,交换机是怎么做到转发的呢?
MAC地址表交换机内部维护了一张MAC地址表 。
记录了 端口号和MAC地址的对应关系 。
这个表的数据是交换机不断学习的结果 。
当A发消息到交换机时,交换机发现消息是从1号端口进来的,则会在MAC地址表上,记录A的MAC地址对应1号端口 。
如果A没有很长时间没发消息到这个1号端口,那这条记录就会过期并被删除 。
那么,当时间足够长,ABC 都发过消息给交换机后,地址表就会有完整的关系信息 。
- A准备发送消息给B,此时A会把B的MAC地址,放入要发送的数据里 。数据顺着网线发出 。
- 交换机从端口收到数据,会把数据里的源和目的MAC地址提出来,跟MAC地址表进行对比 。
- 发现B的MAC地址正好在2号端口,那么就把数据转发给2号端口 。
以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!
「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助:- PET材质的区别 塑料pp材质和pet材质的区别
- 电工与电气工程师区别对比 电工与电气工程师的区别
- HR和猎头的区别在哪里 hr跟猎头有什么区别
- 有机物与无机物的区别 有机物和无机物
- 纯水和软水三种水质到底有什么区别 软水是纯水吗?
- 洗脚还有这些好处 洗脚有啥好处
- 发表有什么区别和意义 发表的区别
- 碳酸钠和碳酸氢钠的区别 碳酸钠和碳酸氢钠的区别?
- 长春胺和甲钴胺有什么区别 长春胺和甲钴胺的区别
- 高铁和动车有什么区别 高铁和动车有什么区别视频