本文主要取材于 《网络是怎样连接的》 第四章。
目录
4.1 互联网的基本结构
4.2光纤接入网(FTTH)
4.3 接入网中使用的PPP和隧道
4.4 网络运营商的内部
4.5 跨越运营商的网络包
简述:本文主要内容是解释 网络包是如何通过互联网接入路由器,最终进入互联网内部的。
首先,可以将网络看成两个部分,接入网和互联网;接入网有各种协议,例如ADSL(不对称数字用户线),FTTH(光纤接入网);接入网会汇总到互联网(此处狭义地把互联网看作标准的使用IP的网络)。
- 用户接入互联网首先需要使用PPPoE或者PPPoA等进行拨号,BAS(Broadband Access Server)验证其登录名和密码后可以使用互联网。
- 接通后,网络包已经通过接入网,接入网与用户签约的运营商设备相连,接下来包就到达了网络运营商的路由器POP(Point of Presence,接入点),网络包会从这里进入互联网内部。
- 到达PoP之后,根据目标IP和客户端是否在同一运营商内,路由器会选择相应的路径转发(一般POP传来的网络包都会集中到NOC(Network Operation Center,网络运营中心),并从这里被转发到离目的地更近的POP,或者是转发到其他的运营商。)
4.1 互联网的基本结构
互联网的基本工作方式与家庭和公司网络一样 ,也是通过路由器来转发包的。不过在家庭和公司中,转发设备一般只有几十米到几百米,而互联网甚至要跨越国家和海洋,使用以太网线无法 完成这样的连接。另外,互联网也是根据路由表中的记录来判断转发目标的,但路由表记录的维护方式不同。互联网中的路由器上有超过10万条路由记录,而且这些记录还在不断变化,当出现线路故障时,或者新的公司加入互联网时,都会引发路由的变化。
互联网接入路由器发送网络包的操作和以太网路由器有一点不同,互联网接入路由器是按照接入网规则来发送包的。接入网,就是指连接互联网与家庭、公司网络的通信线路。一般家用的接入网方式包括ADSL、FTTH、CATV、电话线、ISDN等,公司则还可能使用专线。
互联网接入路由器会在网络包前面加上MAC头部、PPPoE头部、PPP头部总共3种头部,然后发送给ADSL Modem (PPPoE方式下)。
4.1章节主要介绍了ADSL技术,是一种接入网技术,此处省略不讲。
4.2 光纤接入网(FTTH)
FTTH,是一种基于光纤的接入网技术。光纤是由一种双层结构的纤维状透明材质(玻璃和塑料)构成的,通过在里面的纤芯中传导光信号来传输数字信息(图4.10)。ADSL信号是由多个频段的信号组成的,比较复杂,但光信号却非常简单,亮表示1,暗表示0。
用户端的光纤收发器将以太网的电信号转换成光信号。这一步只进行电信号到光信号的转换,而不会像ADSL一样还需要将包拆分成信元,大家可以认为是将以太网包原原本本地转换成了光信号。接下来,光信号通过连接到光纤收发器的光纤直接到达BAS前面的多路光纤收发器。FTTH一般使用单模光纤,因此其纤芯中只有特定角度的光信号能够反射并前进。然后,多路光纤收发器将光信号转换成电信号,BAS的端口接收之后,将包转发到互联网内部。波长不同的光混合后可通过棱镜原理进行分离,因此光纤中的上行和下行信号即便混合起来也可以识别。像这样在一条光纤中使用不同的波长传输多个光信号的方式叫作波分复用。
另一种光纤的接入方式是在用户附近的电线杆上安装一个名为分光器的设备,通过这个设备让光纤分路,同时连接多个用户。
FTTH可以分为直连和分路两种方式,这两种方式只是光信号的传输方式有一些区别,实际传输的网络包是相同的。
4.3 接入网中使用的PPP和隧道
随着接入网发展到ADSL和FTTH,接入网连接的路由器也跟着演进,而这种进化型的路由器就叫作BAS。首先是用户认证和配置下发功能。ADSL和FTTH接入网中,都需要先输入用户名和密码[插图],登录之后才能访问互联网,而BAS(Broadband Access Server)就是登录操作的窗口。BAS使用PPPoE方式来实现这个功能。PPPoE是由传统电话拨号上网上使用的PPP协议发展而来的,所以我们先来看一看PPP拨号上网的工作方式。
PPP是如图4.17这样工作的。首先,用户向运营商的接入点拨打电话(图4.17①-1),电话接通后(图4.17①-2)输入用户名和密码进行登录操作(图4.17②-2)。用户名和密码通过RADIUS[插图]协议从RAS[插图]发送到认证服务器,认证服务器校验这些信息是否正确。当确认无误后,认证服务器会返回IP地址等配置信息,并将这些信息下发给用户(图4.17②-3)。用户的计算机根据这些信息配置IP地址等参数,完成TCP/IP收发网络包的准备工作,接下来就可以发送TCP/IP包了(图4.17③)。
BAS除了作为用户认证的窗口之外,还可以使用隧道方式来传输网络包。所谓隧道,就类似于套接字之间建立的TCP连接。隧道有两种实现方式,一是TCP连接,首先需要在网络上的两台隧道路由器之间建立TCP连接,然后将连接两端的套接字当作是路由器的端口,并从这个端口来收发数据;另一种基于封装(encapsulation)的隧道实现方式,这种方式是将包含头部在内的整个包装入另一个包中传输到隧道的另一端。
接入网的整体工作过程
接入网的工作从用户端的互联网接入路由器进行连接操作开始。首先,接入路由器中需要配置运营商分配的用户名和密码。然后,接入路由器会根据PPPoE的发现机制来寻找BAS。这一机制和ARP一样是基于广播来实现的,过程如下,很简单。用户询问:“BAS在不在?在的话请报告MAC地址。”BAS回答:“我在这里,我的MAC地址是xx:xx:xx:xx:xx:xx。”接下来,如图4.17②-1到②-4中所示,进入用户认证和下发配置的阶段。
用户名和密码如何发给BAS?
一种是将密码进行加密的CHAP(Challenge Handshake Authentication Protocol,挑战握手认证协议
)方式,另一种是不加密的PAP(Password Authentication Protocol,密码验证协议
)方式,在互联网接入路由器的设置画面中可以选择。
在校验密码之后BAS如何向用户下发TCP/IP配置信息?
BAS下发的TCP/IP参数会被配置到互联网接入路由器的BAS端的端口上,这样路由器就完成接入互联网的准备了。
一对一连接的端口可以不分配IP地址,这种方式称为无编号。
4.4 网络运营商的内部
网络包已经通过接入网,到达了网络运营商的路由器。这里是互联网的入口,网络包会从这里进入互联网内部。ADSL、FTTH等接入网是与用户签约的运营商设备相连的,这些设备称为POP(Point of Presence,接入点),互联网的入口就位于这里。POP的结构根据接入网类型以及运营商的业务类型不同而不同,POP中包括各种类型的路由器,路由器的基本工作方式是相同的,但根据其角色分成了不同的类型。
- 专线,这里用的路由器就是具有通信线路端口的一般路由器。专线不需要用户认证、配置下发等功能[插图],因此用一般的路由器就可以了。
- 电话、ISDN等拨号方式的接入网,使用的路由器称为RAS。拨号接入需要对用户拨电话的动作进行应答,而RAS就具备这样的功能。此外,之前我们讲过通过PPP协议进行身份认证和配置下发的过程,RAS也具备这些功能。
- PPPoE方式中,ADSL、FTTH接入服务商会使用BAS,运营商的路由器则与BAS相连。PPPoE中的身份认证和配置下发操作由接入服务商的BAS来负责,运营商的路由器只负责对包进行转发,因此这里也是使用一般的路由器就可以了。
- 若ADSL采用PPPoA方式接入,DSLAM通过ATM交换机与ADSL的运营商的BAS相连,然后再连接到运营商的路由器。用户端传输的信号先经过ADSL Modem拆分成ATM信元并进行调制,然后DSLAM将信号还原成信元,通过ATM交换机转发到BAS,最后BAS将信元还原成网络包,再通过运营商的路由器转发到互联网内部。
NOC是运营商的核心设备,从POP传来的网络包都会集中到这里,并从这里被转发到离目的地更近的POP,或者是转发到其他的运营商。这里也需要配备高性能的路由器。面向运营商的高性能路由器中有些产品的数据吞吐量超过1 Tbit/s,而一般面向个人的路由器的数据吞吐量也就100 Mbit/s左右,两者相差1万多倍。
POP和NOC遍布全国各地,它们各自的规模有大有小,但看起来跟公司里的机房没什么太大区别,都是位于一幢建筑物中的,其中的路由器或者通过线路直接连接,或者通过交换机进行连接,这些和公司以及家庭网络都是相同的。
4.5 跨越运营商的网络包
网络包到达POP路由器之后,网络包是如何前往下一站的?
如果最终目的地Web服务器和客户端是连接在同一个运营商中的,那么POP路由器的路由表中应该有相应的转发目标。路由器根据路由表中的信息判断转发目标,这个转发目标可能是NOC,也可能是相邻的POP,无论如何,路由器都会把包转发出去,然后下一个路由器也同样根据自己路由表中的信息继续转发。经过几次转发之后,网络包就到达了Web服务器所在的POP的路由器,然后从这里被继续转发到Web服务器。
如果服务器的运营商和客户端的运营商不同,网络包需要先发到服务器所在的运营商,这些信息也可以在路由表中找到,这是因为运营商的路由器和其他运营商的路由器也在交换路由信息。
运营商之间的路由信息交换
只要让相连的路由器告知路由信息就可以了。只要获得了对方的路由信息,就可以知道对方路由器连接的所有网络,将这些信息写入自己的路由表中,也就可以向那些网络发送包了。这个路由信息交换的过程是由路由器自动完成的,这里使用的机制称为BGP(Border Gateway Protocol)。
根据所告知的路由信息的内容,这种路由交换可分为两类。一类是将互联网中的路由全部告知对方。例如图4.26中,如果运营商D将互联网上所有路由都告知运营商E,则运营商E不但可以访问运营商D,还可以访问运营商D后面的运营商B、A和C。然后,通过运营商D就可以向所有的运营商发送包。像这样,通过运营商D来发送网络包的方式称为转接。
另一种类型是两个运营商之间仅将与各自网络相关的路由信息告知对方。这样,只有双方之间的网络可以互相收发网络包,这种方式称为非转接,也叫对等。
IX的核心是具有大量高速以太网端口的二层交换机(图4.28)。二层交换机的基本原理和一般交换机相同,大家可以认为IX的核心就是大型的、高速的交换机。
接下来就是将各个运营商的路由器连接到IX核心交换机上,连接方法有几种。首先,当运营商NOC和IX位于同一幢大楼里时,只要从NOC中将光纤延长出来接到IX交换机就可以了(图4.28①)。这种情况和公司、家庭网络中的路由器与交换机的连接方法是相同的。
如果NOC和IX不在同一幢大楼里又该怎么办呢?我们可以用通信线路将路由器和交换机连起来。这种情况下有两种连法,一种是从路由器延伸出一根通信线路并连接到IX交换机上(图4.28②),另一种是将路由器搬到IX机房里,用通信线路将路由器和NOC连起来,再将路由器连到IX交换机上(图4.28③)。
运营商之间通过谈判签订合约,然后按照合约来交换路由信息,实现网络包的收发。运营商之间可以直接连接,也可以通过IX连接,无论是哪种方式,最终网络包都会到达服务器所在的运营商,然后通过POP进入服务器端的网络。