ADSL 接入网的结构和工作方式

互联网的基本结构和家庭、公司网络是相同的,转发设备之间的距离和路由的维护方式是不同的。

网络包在通过交换机和路由器的转发之后,进入互联网。路由根据包IP头部的接收方IP地址在路由表的目标地址中进行匹配,找到相应的路由记录后将包转发到这条路由的目标网关。互联网接入路由器发送网络包的操作和以太网路由器有一点儿不同,互联网接入路由器是按照接入网规则来发送包的。

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

ADSL 不对称数字用户线,是一种利用架设在电线杆上的金属电话线来进行高速通信的技术。

用户端路由器发出的网络包通过ADSL 调制解调器(猫)和电话线到达电话局,然后到达ADSL的网络运营商ISP。

在网络包从用户传输到运营商的过程中,会变化几种不同的形态。

  • 客户端生产的网络包,经过集线器、交换机到达互联网接入路由器。

  • 互联网接入路由器会在网络包前边加上MAC头部、PPPoE头部、PPP头部,然后发给ADSL modem调制解调器。

  • 调制解调器将包拆分成很多信元。并转换成电信号发送给分离器

    信元是一个非常小的数据块,开头是有5个字节的头部,后面是48个字节的数据。用于一种叫做ATM(异步传输)的通信技术。

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

    ADSL通过使用多个波来提高速率。不同频率的波可以合成,也可以用滤波器从合成的 波中分离出某个特定频率的波,因此可以使用多个频率合成的波来传输信号。

  • ADSL信号会和电话的语音信号混合起来一期从电话线传输出去。在信号从用户端发出去时,电话和ADSL信号只是同时流到一条线路上而已,分离器实际上没有做什么事。

    分离器的作用是在相反的方向,也就是信号从电话线传入的时候。这时分离器需要负责将电话和ADSL的信号进行分离。具体来说分离器的功能是将一定频率以上的信号过滤掉,也就是过滤掉ADSL使用的高频信号,这样一来,只有电话信号才会传入电话机;但对于另一头的ADSL调制解调器,则是传输原本的混合信号。ADSL调制解调器内部已经具备将ADSL频率外的信号过滤掉的功能,因此不需要在分离器中进行过滤。

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

    保安器是为了防止雷电等情况下电话线中产生过大电流的一种保护装置,内部有保险丝。

  • 接下来信号会进入电线杆上架设的电话电缆。(有时埋在地下,电缆隧道)。通过电缆隧道进入电话局后,电缆会逐根连接到电话局的MDF上

    电话电缆中的信号也会收到噪声的干扰。不过电话线受到干扰的方式和双绞线有些不同,双绞线只有一路方波信号,信号失真后就无法读取还原成数字信号。于是就会产生错误,但ADSL信号受到干扰后并不会立即造成错误。ADSL信号分布在多个频段上,只有和噪音频率相同的信号会收到影响而无法读取。

  • 信号到达电话局之后,会经过配线盘、分离器到达DSLAM(数字用户线接入复用设备)。这里电信号会被还原成数字信息-信元。DSLAM通过读取信号波形,根据振幅和相位判断对应的比特值,将信号还原成数字信息。这一过程和客户端的ADSL调制解调器接收数据过程是一样的。电话局使用了DSLAM设备,相当于多个ASDL调制解调器的功能集中在一个外壳里的设备。

    DSLAM 和客户端 ADSL 不同点:

    ADSL 调制解调器具备以太网接口,可以与用户端的路由器和计算机交互,收发以太网包。

    DSLAM 一般不用于以太网接口,而是用ATM接口,和后方路由器收发数据时使用原始网络包拆分后的ATM信元形式。

  • 信号从DSLAM出来之后,会到达一个叫做BAS的包转发设备。BAS负责将ATM信元还原成网络包并转发到互联网内部。BAS同DSLAM一样,都具备ATM接口,可接收ATM信元,还可以将接收到的ATM信元还原成原始的包。此时,BAS的接收工作就完成了。接下来他会将收到包前边的MAC头部和PPPoE头部丢弃,取出PPP头以及后面的数据(和具有以太网接口的路由器在接收到包之后丢弃MAC头部道理是一样的)。接下来BAS会在包的前面加上隧道专用头部,并发送到隧道的出口。

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

光纤接入网(FTTH)

光信号比较简单,亮表示1,暗表示0。

光通信的原理:将数字信号转换成电信号,然后再将电信号转换成光信号。

电信号比较简单,1用高电压表示,0用低电压表示。将这样的电信号输入LED、激光二极管等光源后,这些光源就根据信号电压的变化发光,高电压发光亮,低电压发光暗。这样的光信号在光纤中传导之后到达接收端。接收端有可以感应光线的光敏元件,根据光的亮度产生不同的电压,将光信号转换成电信号。最后将电信号转换成数字信息

单模与多模

不同材料的光纤透光率和折射率也不同,纤芯的直径等因素也会影响光的传导。其中纤芯的直径对光传导的影响很大

相位相同时,光纤的步调一致,互相加强;相位不同时,光纤互相抵消减弱。光反射时,相位发生改变。因此反射角度很关键。纤芯的直径也是根据这个角度来确定的。

根据纤芯的直径,光纤可以被分成几种类型。大体上包括较细的单模光纤(8~10 um)和较粗的多模光纤(50 um ~ 62.5 um)。

单模光纤的直径很小,只有射入角很小的光线才能进入。单模和多模实际上表示相位一致的角度有一个还是多个。

多模光纤中可以传导多条光线,能够通过的光线较多,对光源和光敏元件的性能要求也就较低,从而可以降低光源和光敏元件的价格。

信号失真与光在纤芯传导时反射的次数相关。多模光纤中,多条反射角不同的光线同时传导;反射角度越大的光线发射次数越多,走的距离越长;到达接收端的时间也就越长。结果多条光线达到的时间不同,信号的宽度就会被拉伸。造成失真。相对地,单模光纤则不会出现这样的错误。因为在纤芯传导的光线只有一条,不会因为行进距离的差异产生时间差,所以即使光纤很长,也不会造成严重的失真。

用光纤来代替ADSL将用户接入路由器和运营商的BAS连接起来的方式就是FTTH,从形态上大致分为两种

FTTH 和 ADSL 一样也有不同的衍生规格,主流规格和ADSL一样,采用PPPoE方式进入

用一根光纤直接从用户端接到附近电话局

用户和电话局之间通过光纤直接连接,网络包的传输方式如下:

  • 用户端的光纤收发器将以太网的电信号转换成光信号

    • 只进行光信号转换,不会像ADSL一样拆分信元。可以理解是将以太网包原原本本的转换成了光信号
  • 光信号通过连接到光纤收发器的光纤直接到达BAS前边的多路光纤收发器。

    • FTTH一般使用单模光纤,其纤芯中只有特定角度的光信号能够反射并前进。
  • 多路光纤收发器将光信号转换成电信号,BAS的端口接收之后,将包转发到互联网内部。

    将以太网的电信号转换成光信号的设备,也叫做“终端盒”。

  • 网络包发送到互联网之后,服务器会收到响应,响应包的光信号也是沿着同一条光纤传输到用户端的。

    这里前往互联网的上行光信号和前往用户的下行光信号在光纤中混合在一起,信号会变得无法识别,因此我们需要对他们进行区分,办法是上行和下行信号采用不同波长的光。波长不同的光混合后可通过棱镜原理进行分离,因此光纤中的上行和下行信号即使混合起来也可以识别。这种在一条光纤中使用不同波长传输多个光信号的方式叫做波分复用

在用户附近的电线杆上安装一个名为分光器的设备(PON 无源光网络)

通过这个设备让光纤分路,同时连接多个用户。这种情况下用户不使用光纤收发器,而是使用一个叫做ONU的设备,它将以太网的电信号转换成光信号之后,会到达BAS前边的一个叫做OLT的设备。光信号的传导方式和上边直连的方式是一样的。区别就是因为多个用户同时收发网络包时会在分光器中产生碰撞。因此OLT和ONU中具备通过调整信号收发时机来避免碰撞的功能。具体来说,OLT会调整信号发送时机并向ONU下发指令,ONU则根据OLT的指令来发送数据。反过来,当BAS端向用户发送数据时,分光器之需要将信号发给所有用户就可以了,这里并不会发生碰撞,但这样会导致一个用户会收到其他所有用户的信号,造成信号泄漏的问题,因此需要在每个包前边加上用于识别ONU的信息。当ONU收到信号后,会接收发给自己的信号并将其转换成以太网信号。

ONU :光网络单元,和光纤收发器一样,可以将点信号转换成光信号,除此之外还具备有和电弧句OLT相互配合避免信号冲突的功能。这个设备有时候也叫做终端盒

OLT :光纤路终端

两种方式指示光信号传输方式有些区别,实际传输的网络包是相同的。当使用PPPoE来传输包时,其工作过程和刚才讲过的ADSL类似。由互联网接入器在IP头部前边加上MAC头部、PPPoE头部和PPP头部,然后由光纤收发器或者ONU转换成光信号。并通过光纤到达BAS前面的多路光纤收发器和OLT,最终还原成电信号并到达BAS。

接入网中使用的PPP和隧道

用户认证和配置下发

互联网本来就是由很多台路由器相互连接组成的,因此原则上应该是接入网连接到路由器上。随着接入网发展到ADSL、FTTH,接入网连接的路由器也跟着演进。这种进化型的路由器就是BAS。

首先是用户认证和配置下发功能。ADSL和FTTH接入网中,都需要输入用户名和密码,登陆之后才能访问互联网,而BAS就是登录操作的窗口。BAS使用PPPoE方式来实现这个功能。PPPoE是传统电话拨号上网上使用PPP协议发展而来的。

PPPoE - Point-to-Point Protocol over Ethernet,以太网的点对点协议

我们先看下PPP拨号上网的工作方式。

  • 用户向运营商接入点拨打电话。

  • 电话接通后,输入用户名和密码进行登录操作。

  • 用户名和密码通过RADIUS协议从RAS发送到认证服务器,认证服务器校验这些信息是否正确。确认无误后,认证服务器会返回IP地址等配置信息,并将这些信息下发给用户。

  • 用户计算机根据这些信息配置IP地址等参数。完成TCP/IP收发网络包的准备工作,接下来就可以发送TCP/IP包了

    RADIUS - 远程认证拨号用户协议

    RAS - 远程访问服务器

以太网中传输PPP消息

ADSL和FTTH接入方式也需要为计算机分配公有地址才能上网,这一点和拨号上网是相同的。不过ADSL和FTTH中,用户和BAS直接是通过电缆或光纤固定连接在一起的,因此没有必要验证用户身份,所以实际上并不需要PPP的所有功能,然而通过用户名和密码登录的步骤可以根据用户名来切换不同的运营商。因此接入运营商在ADSL和FTTH中一般也会使用PPP。

不过拨号上网的PPP是无法直接用于ADSL和FTTH的。

传输PPP消息的思路和将IP包转入以太网包中传输是一样的。PPP协议中没有定义以太网中的头部和FCS等元素,也没有定义信号的格式,因此无法直接将PPP消息转换成信号发送。

要传输PPP消息必须有另一个包含报头、FCS、信号格式等元素的容器,然后将PPP消息装在容器中进行。于是在拨号接入中PPP借用了HDLC(高级数据联接控制,协议原本是为在专线中传输网络包而设计的,拨号接入方式对这一规格进行了修正)协议作为容器

但是ADSL和FTTH并不能使用HDLC,需要寻找另一个机制替代。于是,我们用以太包代替HDLC来装在PPP协议,此为以太网和PPP在设计上有所不同,为了弥补这些问题,重新设计了新规格就是PPPoE。

PPPoE是将PPP消息装入以太包进行传输的方式。

通过隧道将网络包发送给运营商

BAS除了作为用户认证的窗口之外,还可以使用隧道方式来传输网络包。

隧道,类似于套接字之间建立的TCP连接,将包含头部在内的整个包从隧道一头扔进去,这个包就会原封不动的从隧道的另一头出来。

像这样如果在BAS和运营商路由器之间的ADSL/FTTH接入服务时的网络中建立一条隧道,将用户到BAS的接入网连接起来,就形成了一条从用户到运营商路由器的通道,网络包通过这条通道,就可以进入互联网内部了。

在路由器收发包时,是基于隧道的规则向隧道中放入或取出网络包。

接入网的整体工作过程

  • 接入路由器中配置运营商分配的用户名和密码

  • 接入路由器会根据PPPoE的发现机制来寻找BAS

    和ARP一样,基于广播实现。

    互联网接入路由器通过PPPoE的发现机制查询BAS的MAC地址

  • 进入用户认证和下发配置阶段

    • 用户名和密码发送给BAS
      • 密码加密的CHAP方式 - 挑战握手认证协议
      • 密码不加密的PAP模式 - 密码验证协议
    • 校验密码之后,BAS向用户下发TCP/IP配置信息。
      • 包括分配给上网设备的IP地址、DNS服务器的IP地址以及默认网关的IP地址
    • BAS下发的TCP/IP参数会被配置到互联网接入路由器的BAS端的端口上。完成接入互联网准备。
  • 客户端开始发送网络包。

  • 网络包在路由器中转发

    • 包不是按照以太网规则转发,而是按照PPPoE规则转发

      要发送的包会被加上头部信息,并设置相应的字段。第一个MAC头部中,接收方MAC地址填写通过PPPoE发现机制查询到的BAS的MAC地址,发送方的MAC地址填写的是互联网接入路由器的BAS端的端口的MAC地址,然后以太类型。接下来是PPPoE头部和PPP头部。头部加上之后网络包会被转换成电信号,从相应的端口发出去

      MAC头部 | PPPoE头部 | PPP头部 | IP头部 | TCP头部 | 数据

  • 接下来网络包到达BAS,而BAS将MAC头部和PPPoE头部去掉,取出PPP头部以及后面的部分,然后通过隧道机制将包发送出去。

  • PPP包会沿隧道到达另一端的出口,也就是网络运营商的路由器。

BAS在接收到用户路由器发送的网络包之后,会去掉MAC头部和PPPoE头部,然后利用隧道机制将包发送给网络运营商的路由器

不分配IP地址的无编号端口

PPPoE的工作过程中,采用一对一连接时,也就是两台路由器的端口用一根线直接连接起来的,一段发送的包肯定会到另一端,没有必要按照路由表查询默认网关,分配IP地址。一对一连接的端口可以不分配IP地址,这种方式称为无编号

互联网接入路由器将私有地址转换成公有地址

互联网接入路由器在转发包时需要进行地址转换。BAS会向用户端下发TCP/IP的配置信息。如果将这些信息配置到计算机上,就相当于计算机拥有了公有地址。

然而如果使用路由器来上网,BAS下发的参数会被配置到路由器上,公有地址也分配给路由器。此时计算机会被分配一个私有地址

除PPPoE之外的其他方式

实际上接入网还有一些其他方式,比如PPPoA

PPPoA : Point-to-Point Protocol over ATM, 不能用于FTTH,因为FTTH不使用ATM信元

使用PPPoA方式的ADSL接入网。

ADSL使用PPPoE的方式时,先将PPP消息装入以太网包中,再将以太网包拆分并装入信元。而PPPoA方式是直接将PPP消息装入信元。由于只是开头加不加MAC地址和PPPoE头部的区别,PPP本身没有区别,因此密码校验、下发TCP/IP配置等都和PPPoE相同。

由于PPPoA没有MAC头部,所以PPP消息是无法通过以太网来传输的。

还有一种DHCP方式,不使用PPP,而是将以太网包直接转换成ADSL信号发送给DSLAM。

网络运营商的内部

POP和NOC

网络包通过接入网到达了网络运营商的路由器。这里是互联网的入口。网络包从这里进入互联网内部。

此后网络包的传输轨迹就是通过路由器的不断转发向目的地前进。

互联网是由多个运营商网络相互连接组成的。

ADSL、FTTH等接入网是与用户签约的运营商设备相连的,这些设备称为POP(接入点)。

网络包通过接入网之后,到达运营商的POP路由器。POP的结构根据接入网类型及运营商的业务类型不同而不同。POP中包含各种类型的路由器,路由器的基本工作方式是相同的,但根据其角色分成了不同的类型。

专线 就是具有通信线路端口的一般路由器。专线不需要用户认证、配置下发等功能。

电话/ISDN 等拨号方式,这里用的路由称为RAS,拨号接入需要对用户拨电话的动作进行应答,而RAS就具备这样的功能。

PPPoE方式的ADSL和FTTH PPPoE方式中,ADSL、FTTH接入服务商会使用BAS,运营商的路由器与BAS相连。PPPoE中的身份认证和配置下发操作由接入服务器的BAS负责,运营商的路由器只负责对包进行转发。因此一般的路由器就可以了。

如果ADSL采用PPPoA方式接入,那么工作过程会有所不同,DSLAM通过ATM交换机与ADSL的运营商的BAS相连,然后再连接到运营商的路由器。用户传输的信号经过ADSL调制解调器拆分成ATM信元并进行调制,然后DSLAM将信号还原成信元,通过ATM交换机转发到BAS,最后BAS将信元还原成网络包,在通过运营商的路由器转发到互联网内部。

NOC是运营商的核心设备。从POP传来的网络包都会集中到这里,并从这里被转发到离目的地更近的POP或者转发到其他的运营商。这里需要配置高性能的路由器

NOC - Network Operation Center, 网络运行中心

其实,NOC和POP并没有非常严格的界定。NOC里边也可以配备连接接入网的路由,很多情况下是和POP共用的。可以简单的认为:NOC就是规模扩大后的POP

室外通信线路的连接

POP和NOC遍布各地,规模有大有小,但看起来跟公司机房没什么太大区别,都是位于一栋建筑物内,其中的路由器或者通过线路直接连接,或者通过交换机进行连接。只不过公司机房一般使用双绞线连接设备。

大楼室内可以通过线路直接连接,对于距离较远的NOC和POP,他们之间的连接方式可以分为多种。

  • 对于自己拥有光纤的运营商,可以选择最近简单的方式,用光纤将NOC和POP直接连接起来
  • 不拥有光纤的运营商,则可以通过租借通信线路的方式将距离较远的NOC和POP连接起来。

跨越运营商的网络包

运营商之间的连接

如果网络包最终目的地web服务器和客户端是连在同一个运营商中的话,那么POP路由器的路由表中应该有响应的转发目标。运营商的路由器可以和其他路由器交换路由信息,从而自动更新自己的路由表,这样路由信息就实现了自动化管理。于是路由器根据路由表中的信息判断转发目标,这个转发目标可能是NOC,也可能是相邻的POP。下个路由器也会根据自己路由表中的信息继续转发。经过几次转发之后,网络包就到达了web服务器所在的POP路由器,然后从这里继续转发到Web服务器。

如果服务器的运营商和客户端的运营商不同。这种情况下,网络包需要先到服务所在的运营商,这些信息可以在路由表中找到,这是因为运营商的路由器和其他运营商的路由器也在交换路由信息。

总之,对于互联网内部的路由器来说,无论最终目的地是否属于一家运营商,都可以从路由表中查到,因此只要一次接一次的按照路由表中的目标地址来转发包,最终一定可以到达web服务器所在的POP。

####运营商之间的路由信息交换

路由信息交换的过程是由路由器自动完成的,这里使用的机制称为BGP

BGP - Border Gateway Protocol 边界网关协议

根据所告知的路由信息内容,这种路由交换可以分为两类。

一类是将互联网中的路由全部告知对方。这种方式称为转接。

另一种是两个运营商之间仅将与各自网络相关的路由信息告知对方。这种方式称为非转接,也叫对等。

与公司网络中自动更新路由表机制的区别

路由器之间相互交换信息自动更新路由器的方式在公司内部也会用到,不过有所区别。

公司中使用的方式是寻找目的地之间的最短路由,并按照最短路由来转发包,因此,周围的所有路由器都是平等对待的。

互联网中可以指定路由交换的对象。公司中路由信息是在所有路由器间平等交换的,但运营商之间的路由交换是在特定路由器间一对一进行的。

IX的必要性

通过运营商都连接到中心设备的方式来减少线路数量。这个中心设备就称为IX

IX - Internet eXchange ,互联网交换中心

运营商是如何通过IX互相连接

IX所在大楼具备自主发电设备,并具有一定的抗震能力。

IX的核心是具有大连高速以太网端口的二层交换机。

各个运营商的路由器连接到IX核心交换机上。

IX的交换机和一般的交换机在工作方式上没有区别,路由器发送网络包时,先通过ARP查询下一个路由器的MAC地址,然后将其写入MAC头部发送出去即可。只要填写正确的MAC地址,就可以向任何运营商的路由器发送包。

运营商之间可以直接连接,也可以通过IX连接。最终网络包都会到达服务器所在的运营商,然后经过POP进入服务器的网络。