网络是怎样连接的(二十六)—— ADSL 接入网的结构和工作方式

837 阅读16分钟

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

前言

在前面的文章中,我们了解了接入网。所谓接入网,就是指连接互联网与家庭、公司网络的通信线路。一般家用的接入网方式包括 ADSL、FTTH、CATV、电话线、ISDN 等,公司则还可能使用专线。

接入网的线路有很多种类,今天我们来学习一个比较有代表性的例子 —— ADSL。

数据传输过程

ADSL 技术使用的接入线路,其内部结构如下图所示。用户端路由器发出的网络包通过 ADSL Modem(调制解调器,俗称“猫”)和电话线到达电话局,然后到达 ADSL 的网络运营商(即 ISP,互联网服务提供商)。在网络包从用户传输到运营商的过程中,会变化几种不同的形态,下面就让我们一起来学习下。

image.png

ADSL Modem 将包拆分成信元

首先,客户端生成的网络包先经过集线器和交换机到达互联网接入路由器,并在此从以太网包中取出 IP 包并判断转发目标。

接下来,包发送的操作也很类似。如果互联网接入路由器和 ADSL Modem 之间是通过以太网连接的,那么就会按照以太网的规则执行包发送的操作,发送信号本身的过程跟之前是一样的,但以太网的头部会有一些差异,网络包会加上 MAC 头部、PPPoE 头部、PPP 头部总共 3 种头部,然后按照以太网规则转化成电信号后被发送出去。

互联网接入路由器将包发送出去之后,包就到达了 ADSL Modem,然后,ADSL Modem 会把包拆分成很多小格子,每一个小格子称为一个 信元信元是一个非常小的数据块,开头是有 5 个字节的头部,后面是 48 个字节的数据,用于一种叫做 ATM(Asynchronous Transfer Mode,异步传输。它是在以电话线为载体的传统电话技术基础上扩展出来的一种通信方式。它的数据传输是以“信元”为单位来进行的,这和以包为单位传输数据的 TCP/IP 很想,但这种方式并不适用于计算机通信) 的通信技术。我们可以将信元理解为一种更小一号的包,原理上跟 TCP/IP 将应用程序的数据拆分成块装进一个个包的过程是一样的。

ADSL Modem 将包拆分成信元,并转换成电信号发送给分离器。

ADSL 将信元“调制”成信号

将网络包拆分成信元之后,接下来就要将这些信元转换成信号了。在前面的文章中我们介绍过,以太网采用的是用 方波信号 表示 0 和 1 的方式,这种方式很简单,但同样是将数字信号转换成模拟信号,ADSL 采用的方法要复杂一些。其中有两个原因:

  1. 一个原因是方波信号的波形容易失真,随着距离的延长错误率也会提高;
  2. 另一个原因是方波信号覆盖了从低频到高频的宽广频段,信号频率越高,辐射出来的电磁噪声就越强,因此信号频谱太宽就难以控制噪声。

因此,ADSL Modem 采用了一种用 圆滑波形(正弦波)对信号进行合成来表示 0 和 1 的技术,这种技术称为调制。调制有很多方式,ADSL 采用的调制方式是振幅调制(ASK)和相位调制(PSK)相结合的正交振幅调制(QAM)方式。

下面我们先来看一下它的两个组成要素。

振幅调制

振幅调制是用 信号的强弱,也就是信号振幅的大小来对应 0 和 1 的方式。振幅小的信号为 0,振幅达的信号为 1,这是一种最简单的对应关系。这种振幅大小只有两个级别,如果增加振幅变化的级别,就可以对应更多的比特。例如:如果将振幅增加到 4 个级别,则振幅从小到大可分别对应 00、01、10 和 11,这样就可以表示两个比特了。

这样做可以将单位时间内传输的数据量加倍,也就能够提高速率。

以此类推,如果振幅有 8 个级别,就可以表示 3 个比特,16 个级别就可以表示 4 个比特,速率也就越来越高。

不过,信号会在传说过程中发生衰减,也会受到噪声影响而失真,如果振幅级别太多,接收方对信号的识别就容易出错,因此振幅级别也不能太多。

相位调制

另一个组成要素是相位机制。这是一种根据 信号的相位 来对应 0 和 1 的方式。Modem 产生的信号是以一定周期振动的波。(我们可以把它理解为正弦曲线)振动的起始位置不同,波的形状也就不同。如果将波的一个振动周期理解为一个圆,则起始位置就可以用 0 度到 360 度的角度来表示,这个角度就是相位,用角度来对应 0 和 1 的方式就叫做相位机制。

例如,从 0 度开始的波为 0,从 180 度开始的波为 1,这是一种最简单的对应关系。

和振幅调制一样,相位调制也可以通过将角度划分为更细的级别来增加对应的比特数量,从而提高速率。但是,角度太接近的时候也容易产生误判,因此这样提升速率还是有限度的。

正交振幅调制

ADSL 使用的正交振幅调制就是将前面这两种方式组合起来实现的。

如果信号的振幅可以表示 1 个比特,相位可以表示 1 个比特,那么加起来就可以表示 2 个比特。因此,将两种方式组合起来,正交振幅调制就可以用一个波表示更多的比特,从而提高传输速率。

正交振幅条之中,通过增加振幅和相位的级别,就可以增加能表示的比特数。例如,如果振幅和相位各自都有 4 个级别,那么组合起来就有 16 个级别,也就可以表示 4 个比特的值。

当然,和单独使用振幅调制或相位调制的情况一样,级别过多就容易发生误判,因此这种方法提升的速率是有限度的。

多波方案

上面我们举的例子是一个频率的波,实际上信号不一定要限制在一个频率。不同频率的波可以合成,也可以用滤波器从合成的波中分离出某个特定频率的波。因此,我们可以使用多个频率合成的波来传输信号,这样一来,能够表示的比特数就可以成倍提高了。

ADSL 就是利用了这一性质,通过多个波增加能表示的比特数来提高速率的。

具体来说,ADSL 使用间隔为 4.3125kHz 的上百个不同频率的波进行合成,每个波表示的比特数是可变的。也就是说,噪声小的频段可以给波分配更多的比特,噪声大的频段则给波分配较少的比特(一般情况下,一个波可表示几个比特到几十个比特),每个频段表示的比特数加起来,就决定了整体的传输速率。

ADSL 技术中,上行方向(用户到互联网)和下行方向(互联网到用户)的传输速率也是不同的,原因也在这里。  如果上行使用 26 个频段,下行则可以使用 95 个或者 223 个频段,波的数量不同,导致了上下行速率不同。

当然,下行使用的频段较高,这些信号容易衰减而且更容易受到噪声的影响,因此这些频段可能只能表示较少的比特数,或者干脆无法传输信号。距离越远,频率越高,这种情况也就越显著,因此如果你家距离电话局太远,速率就会下降。

噪声和衰减等影响线路质量的因素在每条线路上都不同,而且会随着时间发生变化。因此,ADSL 会持续检查线路质量,动态判断使用的频段数量,以及每个频段分配的比特数。具体来说,当 Modem 通电后,会发送测试信号,并根据信号的接收情况判断使用的频段数量和每个频段的比特数,这个过程称为训练(握手),需要几秒到几十秒的时间。

分离器对信号分离

ADSL Modem 将信元转换为电信号之后,信号会进入一个叫做分离器的设备,然后 ADSL 信号会和电话的语音信号混合起来一起从电话线传输出去。在信号从用户端发送出去时,电话和 ADSL 信号只是同时流到一条线路上而已,分离器实际上并没有做什么事。

分离器的作用其实在相反的方向,也就是信号从电话线传入的时候。这时,分离器需要负责将电话和 ADSL 的信号进行分离。电话线传入的信号是电话的语音信号和 ADSL 信号混合在一起的,如果这个混合信号直接进入电话机,ADSL 信号就会变成噪音,导致电话难以听清。为了避免这样的问题,就需要通过分离器将传入的信号分离,以确保 ADSL 信号不会传入电话机。

具体来说,分离器的功能是将一定频率以上的信号过滤掉,也就是过滤掉了 ADSL 使用的高频信号,这样一来,只有电话信号才会传入电话机,但对于另一头的 ADSL Modem,则是传输原本的混合信号。

ADSL Modem 内部已经具备将 ADSL 频率外的信号过滤掉的功能,因此不需要在分离器进行过滤。

分离器不仅可以防止 ADSL 对电话产生干扰,而且还防止电话对 ADSL 产生干扰。

如果没有分离器,拿起电话听筒接通电话的状态,和放下听筒挂断电话的状态下,信号的传输方式是不同的。当放下听筒时,电话机的电路和电话线是断开的,当拿起听筒时电话机就和电话线相连,电话机的信号就会传到电话线上。这两种状态的差异会导致噪声等线路状态的改变,如果 ADSL 通信过程中拿起话筒导致线路状态改变,就需要重新训练(握手),这就会导致几十秒的通信中断,分离器可以防止发生这样的问题。

从用户到电话局

从分离器出来,就是插电话线的接口,信号从这里出来之后,会通过室内电话线,然后到达大楼的 IDF(Intermediate Distribution Frame,中间接线盘)和 MDF(Main Distribution Frame,主配线盘(总配线架)),外面的电话线在这里和大楼内部的室内电话线相连接。

接下来,信号会进入电线杆上架设的电话电缆。

电话电缆在用户住宅附近一般是架设在电线杆上,但中途会沿电线杆侧面的金属管进入地下。由于电话线必须进入很多住宅和大楼,所以电话局附近就会集结数量庞大的电缆,这么多电缆要通过电线杆引入电话局是非常不现实的,电话局周围得密密麻麻地立满了电线杆,而且电线杆上架设过多的电缆,还会产生防灾方面的问题。因此,在电话局附近,电话线都是埋在地下的。由于电话局附近的地下电缆很多,集中埋设电缆的地方就形成了一条地道,这部分称为 电缆隧道  通过电缆隧道进入电话局后,电缆会逐根连接到电话局的 MDF 上。

通过 DSLAM 将电信号还原为信元

信号通过电话线到达电话局之后,会经过配线盘、分离器到达 DSLAM(DSL Access Multiplexer,数字用户线接入复用设备。它是一种电话局用的多路 ADSL Modem,可以理解为将多个 ADSL Modem 整盒在一个外壳里的设备。)。

在这里,电信号会被还原成数字信息——信元。DSLAM 通过读取信号波形,根据振幅和相位判断对应的比特值,将信号还原成数字信息,这一过程和用户端的 ADSL Modem 在接收数据时的过程是一样的。

因此,如果在电话局里安装一大堆和用户端一样的 ADSL Modem,也可以完成这些工作,只不过安装这么多 Modem 需要占用大量的空间,而且监控起来也非常困难。因此,电话局使用了 DSLAM 设备,它是一种将相当于很多个 ADSL Modem 的功能集中在一个外壳里的设备。

不过,DSLAM 和用户端 ADSL Modem 相比还是有一个不同的地方。用户端 ADSL Modem 具备以太网接口,可以与用户端的路由器和计算机交互,收发以太网包,而 DSLAM 一般不用以太网接口,而是用 ATM 接口,和后方路由器收发数据时使用的是原始网络包拆分后的 ATM 信元形式。

DSLAM 具有 ATM 接口,和后方路由器收发数据时使用的是原始网络包拆分后的 ATM 信元形式。

信元通过 BAS 还原成网络包,并转发到互联网内部

信元从 DSLAM 出来之后,会到达一个叫作 BAS 的包转发设备。BAS 和 DSLAM 一样,都具有 ATM 接口,可以接收 ATM 信元,还可以将接收到的 ATM 信元还原成原始的包。到这里,BAS 的接收工作就完成了,接下来,它会将收到的包前面的 MAC 头部和 PPPoE 头部丢弃,取出 PPP 头部以及后面的数据。

MAC 头部和 PPPoE 头部的作用是将包送达 BAS 的接口,当接口完成接收工作后,它们就完成了使命,可以被丢弃了。

具有以太网接口的路由器在接收到包之后也会丢弃其中的 MAC 头部,道理是一样的。接下来,BAS 会在包的前面加上隧道专用头部,并发送到隧道的出口。

然后,网络包会到达隧道出口的隧道专用路由器,在这里隧道头部会被去掉,IP 包会被取出,并被转发到互联网内部。

BAS 负责将 ATM 信元还原成网络包并转发到互联网内部。

总结

最后,我们来看一下网络包从用户传输到运营商的过程中,其信号变化过程。该过程如下:

  1. 首先 ADSL Modem 将包拆分成信元;
  2. 接下来 ADSL 会将信元“调制”成信号。调制方式是振幅调制(ASK)和相位调制(PSK)相结合的正交振幅调制(QAM)方式;ADSL 还会采用多波的方案来提高信号传输速率;
  3. 接着信号会经过分离器,对电话信号和 ADSL 信号进行分离,防止信号互相影响;
  4. 经过了分离器之后,信号会被送到电话局,信号通过电话线到达电话局之后,会经过配线盘、分离器到达 DSLAM,在这里,电信号会被还原成数字信息——信元;
  5. 信元从 DSLAM 出来之后,会到达一个叫作 BAS 的包转发设备,BAS 负责将 ATM 信元还原成网络包并转发到互联网内部;
  6. 至此,通过 ADSL 接入的整个过程就结束了;

参考文档

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

往期文章