我们都知道PPP协议是点对点协议,这些基础内容我们在上一节已经讲解过了,这次我们主要解析一下PPP链路问题。它帮助人们在简单的点对点链路上实现了上层协议的封装。但是,目前丰富多彩的互联网世界是承载在复杂、庞大的广 域网上,灵活方便的非点对点的以太网络是现代网络世界的主要常用媒介,那PPP是否已经远离了我们呢?答案是否定的,实际上,现在我在家中利用ADSL接 入ISP登录到我的博客来写这篇文章,这一过程就离不开PPP协议,且听我慢慢道来。
就让我用我们最熟悉的上网为例来讲解吧。早期,人们用计算机外接modem(调制解调器)再通过电话线拨号来接入ISP(Internet接入服务 提供商)连接Internet,就使用了PPP协议,具体来说,就是在“用户拨出计算机 - 用户modem - ISP modem -接入服务器”这样一条PPP链路上,使用PPP封装了IP报文来实现用户至Internet网络接入服务器之间IP报文的流控和计费等功能,如下图:
PPP链路拨号接入ISP
上图中,”电话线“这一串行连接是通过用户电话拨入电话局提供的接入号码来建立起来的,”拨号“这一概念,也就发端于此。这种拨号方式,用户计算机 与ISP接入服务器之间的连接线路完全占用了电话线的信道,所以用户在使用计算机接入网络之后,电话就处于占线状态,不能再同时接入语音电话。并且,这种 使用modem通过电话线传输模拟信号的接入方式,***就只能达到56kbps的上网速率(实际使用时,由于链路问题,连这个速率都很难达到),生活在 2009年的我们可以想象那时网民的生活是多么的水深火热…
针对于上述缺陷,人们利用ISDN(综合业务数字网)技术改进了网络接入方案。使用ISDN技术,我们可以在依然使用原来的普通电话线的情况下,在 电话线上传输数字信号。这是通过在电话线上建立ISDN信道来实现的,ISDN的BRI(基础速率接口)支持2个B信道+1个D信道总共128kbps的 连接速率,我们使用MLPPP(多链路PPP) 协议将ISDN提供的多条点对点链路复合为一条点对点链路,这样就可以利用BRI的128kbps速率高速(相对于原来的modem方式)接入网络了。同 时,ISDN可以在一条电话线线路上同时接入多个终端设备(计算机、电话等)同时使用。这一切,只需要将上图中的调制解调器换为ISDN接入设备即可。
和ISDN技术类似的,我们现在经常听到和使用的ADSL技术,也是在一定程度上对传统电话线路的信道使用方式进行了优化改造。ADSL是xDSL 技术族的一员,传输速率可以达到Mbps数量级,xDSL有ADSL、VDSL、HDSL等多种模型,他们的区别就在于信号传输速率和传输距离上,其中 ADSL在这些指标上显示出其非常适合作为家庭接入Internet的特点,所以人们普遍采用了ADSL。
其实,ISDN和ADSL相对于传统modem拨号方式,只是改变了承载信号的物理层。
讲上面这些ISDN和ADSL的内容,目的是为了逐步引出这篇文章的主角 - PPPoE,但是,说真的,直到写完了上面的内容,外加查了很久的资料,我也没真正找到确实可信的论据来证明为什么在ADSL物理链路上我们要选择使用 PPPoE来接入ISP… ^o^ (使用PPPoE协议可将PPP帧之外再封装上一层PPPoE头,以达到在Ethernet网络这种非PPP链路上传输PPP帧的目的。)
当然,虽然没有找到直接论据,但是分析了众多的资料后我是有收获的,我可以说说自己的理解,有不对之处还请各位指点。
传统的modem拨号和ISDN拨号都是用modem拨ISP的一个号码,也就是得到ISP分配的一条电话线连接来建立起点对点物理链路的,而 ADSL也是类似的物理层拓扑,所以我想应该也是可以同样的拨号方式直接接入ISP的。但是,为什么现实中ADSL不是这样来使用的呢,为什么要在 ADSL物理层之上再封装“ethernet层+PPPoE层”然后再承载PPP而不是直接在ADSL物理层上承载PPP呢?ISP运营商到底出于什么考 虑呢?
在ADSL网络上直接封装PPP,则这条点对点链路是起始与用户的ADSL猫,终结于ISP运营商的DSLAM(数字用户接入复用)设备,也就是 ADSL物理链路的终点。对于用户的管理与认证授权控制必须要放在DSLAM设备上(当然PPP支持远程授权,但这无疑将增加复杂度和风险),这 样,ISP必须在很接近用户物理位置也就是网络的末梢底层的地方(因为ADSL物理线路不会很远)来管理用户。
ADSL拨号接入ISP网络时的PPP链路
而如果采取PPPoE的方式,先将PPP封装在PPPoE内,再在PPPoE外封装Ethernet头,然后再将这Ethernet帧通过ATM或 LAPD(Link Access Procedure on the D channel)等链路层协议封装在ADSL或ISDN物理连接上。这样,点对点链路的起点将是封装PPPoE的用户计算机,终点可以是DSLAM,也可 以是DSLAM之后的更高层的BAS(宽带接入服务器)设备或其他哪里,就看PPPoE服务器被设置在哪里了(PPPoE报文在PPPoE服务器被解 开),如上图这种经典的应用场景中PPP链路就直到LNS设备才终结(PC到DSLAM之间是ADSL PPP链路承载PPPoE,DSLAM到BAS之间 是ATM链路承载PPPoE,在BAS设备将PPP从PPPoE封装中解出,然后,从BAS到LNS设备之间使用L2TP协议承载了PPP报文,L2TP 将在本系列文行的后续文章中介绍)。这样,一是解决方案更加灵活,另外,由于管理设备可以位于更高(更靠近网络核心)的位置,集中管理的用户可以更多,可 以降低运营商的成本。
解释到这里,我觉得我这个解释是很合理可信的:PPPoE虚拟拨号的使用使得PPP接入连接(也就是客户)的认证、授权点位置更加灵活,可是将其设 置在更接近网路的核心的位置。我认为,PPPoE这种协议的存在,重要的是提供了一种PPP报文的封装方式,至于具体如何封装并不是决定性的,用 Ethernet封装就是PPPoE,用ATM封装就是PPPoA。但是,为什么普通modem拨号和ISDN没有采用这样的PPPoE拨号呢?我真的解 释不了,因为,理论上是绝对可行的。
本文中讲到了PPPoE协议,但是截至目前,只是讲到用它封装了PPP帧然后放在专线链路(ADSL/ISDN)上传输。至于为什么要用PPPoE,以及PPPoE的具体本领,还是下篇文章再向大家介绍吧。