网络是怎样连接的(二十)—— 信号在网线和集线器中传输

396 阅读10分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第18天,点击查看活动详情

前言

在前面的文章中,我们探索了客户端中的协议栈和网卡,介绍了发送网络包,也就是将网络包转换成电信号通过网线传输出去的过程。本我们将继续跟着前文的脚步,看一看通过网线传输出去的包是如何经过集线器、交换机和路由器等网络设备,最终进入互联网的。

信号从计算机中流出之后,会在网线中经过集线器等设备前进。本文中我们会探索 信号是如何在网线和集线器传输 的,以及如何抑制 信号在传输过程中会衰减,受到噪声干扰而失真 等影响;

下面就开始我们今天的学习之旅!

每个包都是独立传输的

在探索信号传输之前我们先来明确一个概念,就是 每个包都是独立传输的。

从计算机发送出来的网络包会通过集线器、路由器等设备被转发,最终到达目的地。转发设备会根据包头部的控制信息,在转发设备内部一个写有转发规则的表中进行查询,以此来判断包的目的地,然后将包朝目的地的方向进行转发。而且,转发设备在进行转发时也不看数据的内容。

因此,无论包里面装的是应用程序的数据或者是 TCP 协议的控制信息,都不会对包的传输操作本身产生影响。换句话说,HTTP 请求的方法,TCP 的确认响应和序号,客户端和服务器之间的关系,这一切都与包的传输无关。因此,所有的包在传输到目的地的过程中都是独立的,相互之间没有任何关联。

局域网结构

image.png

在探索网络包哎进入互联网之前的传输过程之前,我们假设客户端计算机连接的局域网结构如上图所示。

也就是说,网络包从客户端计算机发出之后,要经过集线器、交换机和路由器最终进入互联网。实际上,我们家里用的路由器已经集成了集线器和交换机的功能,像图上这样使用独立设备的情况很少见。不过,把每个功能独立出来更容易理解,而且理解了这种模式之后,也就能理解集成了多种功能的设备了,因此,我们会将这里的所有功能独立出来,逐个来进行探索。

信号衰减问题

以太网信号的本质是正负变化的电压。

信号通过网线传输,到达集线器的时候并不是跟刚发送出去的时候一模一样。集线器收到的信号有时会出现衰减。信号在网线的传输过程中,能量会逐渐损失。网线越长,信号衰减就越严重。  在发送方一端还十分清晰的矩形信号波形,在传输过程不断衰减,波形也会失真,导致接收方难以读取。

而且,信号损失能量并非只是变弱而已。以太网中的信号波形是方形的,但损失能量会让信号的拐角变圆。这是因为 电信号的频率越高,能量的损失率越大(高频信号会释放出更多的电磁波,这些电磁波带走了一部分能量,就造成了能量的损失)。信号的拐角意味着电压发生了剧烈的变化,而剧烈的变化意味着这个部分的信号频率很高。高频信号更容易损失能量,因此本来剧烈变化的部分就会变成缓慢的变化,拐角也就变圆了。

即便线路条件很好,没有噪声,信号在传输过程中依然会发生失真,如果再加上噪音的影响,失真就会更厉害。  噪声根据强度和类型会产生不同的影响,无法一概而论,但如果本来就已经衰减的信号再进一步失真,就会出现对 0 和 1 的误判,这就是产生通信错误的原因。

用“双绞”来抑制噪声

那么是如何来抑制噪声呢?答案是“双绞”。所谓“双绞”的意思就是以两根信号线为一组缠绕在一起,这种拧麻花一样的设计是为了抑制噪声的影响。  局域网网线使用的就是双绞线。

噪声产生的原因

那么双绞线为什么能够抑制噪声呢?首先,我们来看看噪声是如何产生的。

产生噪声的原因是网线周围的电磁波,当电磁波接触到金属等导体时,在其中就会产生电流。因此,如果网线周围存在电磁波,就会在网线中产生和原本的信号不同的电流。

由于信号本身也是一种带有电压变化的电流,其本质和噪声产生的电流是一样的,所以信号和噪声的电流就会混杂在一起,导致信号的波形发生失真,这就是噪声的影响。

双绞线抑制噪音原理

影响网线的电磁波分为两种。一种是由电机、荧光灯、CRT显示器等设备泄漏出来的电磁波,这种电磁波来自网线之外的其他设备,

我们来看看双绞线如何抑制这种电磁波的影响。首先,信号线是用金属做成的,当电磁波接触到信号线时,会沿电磁波传播的右旋方向产生电流,这种电流会导致波形发生失真。如果我们将信号线缠绕在一起,信号线就变成了螺旋形,其中两根信号线中产生的噪声电流方向就会 相反,从而使得噪声电流相互抵消,噪声就得到了抑制

当然,即便信号线变成螺旋形,里面的信号依然可以原样传输,也就是说,信号没有变,只是噪声被削弱了。

另一种电磁波是从网线中相邻的信号线泄漏出来的。  由于传输的信号本身就是一种电流,当电流流过时就会向周围发出电磁波,这些电磁波对于其他信号线来说就成了噪声。这种内部产生的噪声称为串扰(crosstalk)。

这种噪声的强度其实并不高,但问题是噪声源的距离太近了。距离发生源越远,电磁波就会因扩散而变得越弱,但在同一根网线中的信号线之间距离很近,这些电磁波还没怎么衰减就已经接触到了相邻的信号线。因此,尽管信号线产生的电磁波十分微弱,也能够在相邻的信号线中产生感应电流。

要抑制这种噪声,关键在于双绞线的缠绕方式。在一根网线中,每一对信号线的扭绞间隔(节距)都有一定的差异,这使得在某些地方正信号线距离近,另一些地方则是负信号线距离近。由于正负信号线产生的噪声影响是相反的,所以两者就会相互抵消。从网线整体来看,正负的分布保持平衡,自然就会削弱噪声的影响。

总结一下双绞线抑制噪音的原理就是:

  1. 通过两根信号线的缠绕抵消源外噪声
  2. 通过改变节距抑制内源噪声

除此之外还有其他一些工艺也能够帮助提升性能。例如 在信号线之间加入隔板保持距离,以及 在外面包裹可阻挡电磁波的金属屏蔽网等。

集线器功能

接下来我们再来探索下集线器的功能。

集线器会将信号发送给所有连接在它上面的线路 。当信号到达集线器后,会被广播到整个网络中。以太网的基本架构就是将包发送到所有的设备,然后由设备根据接收方 MAC 地址来判断应该接收哪些包,而集线器就是这一家沟的忠实体现,它就是负责按照以太网的基本架构将信号广播出去。

由于集线器只是原封不动地将信号广播出去,所以及时信号受到噪声的干扰发生了失真,也会原样发送到目的地。这时,接收信号的设备,也就是交换机、路由器、服务器等,会在将信号转换为数字信息后通过 FCS 校验发现错误,并将出错的包丢弃。当然,丢弃包并不会影响数据的传输,因为丢弃的包不会触发确认响应。因此协议栈的 TCP 模块会检测到丢包,并对该包进行重传。

总结

  1. 所有的包在传输到目的地的过程中都是独立的,相互之间没有任何关联。

  2. 信号在网线的传输过程中,能量会逐渐损失。网线越长,信号衰减就越严重。

  3. 信号在传输的过程中,也会受到噪声的影响,可以通过双绞线来抑制噪声。双绞线抑制噪声的原理就是:

    1. 通过两根信号线的缠绕抵消源外噪声
    2. 通过改变节距抑制内源噪声
  4. 集线器的作用就是 将信号发送给所有连接在它上面的线路

参考文档

  • 《网络是怎样连接的》—— 户根勤

往期文章