天天看点

20、PPP协议PPP协议的特点PPP帧格式PPP协议的三大组件PPP链路建立过程PPPoE

前面我们分了五节的内容,用了很大的篇幅介绍了局域网的数据链路层的知识,在这其中主要是以太网的相关内容。本节开始我们学习广域网的数据链路层协议,主要学习两种,PPP和HDLC。

PPP协议的特点

PPP全称“Point-to-Point Protocol”,也就是点对点协议,应用在广域网的数据链路层上。我们知道,一般的互联网用户通常都要连接到某个ISP才能接入到互联网,例如一般的家庭用户要首先向当地的某个ISP(移动、电信、联通等)申请宽带入网。

PPP协议就是用户的计算机和ISP进行通信时所使用的数据链路层协议。谢希仁教授的教材上的示意图很完美的展现出了这一点:

20、PPP协议PPP协议的特点PPP帧格式PPP协议的三大组件PPP链路建立过程PPPoE

 了解了PPP协议应用的位置之后,我们介绍一下它的特点:

①PPP协议是点对点的协议,只支持点对点的全双工链路通信,不支持多点线路。

②PPP协议能在同一条物理链路上支持多种网络层的协议(例如 IP、IPX)。

③PPP协议能够支持多种类型的链路,例如能支持串行的或并行的、同步的或异步的。

④当PPP运行在异步链路的时候,使用字节填充法来保证透明传输,如果PPP运行在同步链路的环境下,那么使用零比特填充法保证透明传输。

⑤在TCP/IP协议簇中,可靠传输由传输层的TCP协议来负责,因此位于数据链路层的PPP协议不需要进行数据纠错,不需进行流量控制等机制。

上面关于PPP协议的五条特点,全部标了红色,意味着考试的重点,尤其是对于网络工程师的考试,这是历年来必考的内容。

PPP帧格式

PPP帧和以太帧的格式有所不同,PPP的帧首部有四个字段,尾部有两个字段。对于各类的考试来讲,以太帧格式每个字段的顺序,以及每个字段所占的字节数都是要记住的,但是PPP帧就不要求了,我们只需知道每个字段的含义即可,其它的在考试中不重要。

PPP帧格式如下图所示:

20、PPP协议PPP协议的特点PPP帧格式PPP协议的三大组件PPP链路建立过程PPPoE

 标志字段,首部和尾部各有一个,标志着帧的开始和结束,也就是起到了帧定界的作用。

地址、控制,这两个字段没什么实际意义,忽略不计。

协议字段说明了上层网络层使用的是什么协议,比如IP或IPX等。这个地方值得注意的是,PPP链路的两端可以使用不同的网络层协议,但在链路层仍然使用同一个PPP链路进行通信。

信息部分就是网络层交付下来的数据包了,和以太帧一样,MTU值也是1500字节。

FCS代表帧校验,和以太帧一样。

PPP协议的三大组件

支持PPP协议运行的,一共有三大组件,也就是三个组成部分,可以说,这三大组件组成了整个的PPP协议。

①LCP(链路控制协议),这一部分负责建立、拆除和监控PPP链路,以及进行参数的协商。

②NCP(网络控制协议),它负责的是对不同的网络层协议进行连接建立。

③认证协议,主要用于ISP端对用户身份的认证,有两种认证协议:PAP和CHAP,下面会详细介绍。

由上可知,LCP的其中一个功能是进行链路两端参数的协商,那么具体会协商哪些参数呢?

主要有:

①协商MRU的大小,MRU指的是“最大接收单元”,默认值是1500字节,也就是PPP链路的两端可以对最大能够接收的字节数做限制。

②协商认证方式,PPP的双方进行通信时,PAP和CHAP两种认证方式都可以使用,但双方必须要协商一致,双方都使用PAP或都使用CHAP方式才行。不能一端是PAP,另一端是CHAP。

③协商魔术字,魔术字是一个随机产生的数字,它的作用是检测链路是否存在环路,双方互相交换魔术字,如果其中一方收到的魔术字和它自己产生的魔术字相同,则认为此链路有环路。

两种认证方式,PAP和CHAP的区别:

PAP(密码认证协议):在进行认证协商阶段,由被认证方(通常是用户端)明文发送用户名和密码给认证方(认证方一般是运营商端),认证方验证成功就回复ACK,如果验证不成功就回复NAK。一次验证不成功的话,被认证方可以再发起一次,两次不成功,再发起一次,这个过程可以进行无限次的尝试。

正是因为可以进行无限次的尝试,那么就给了黑客有机可乘,黑客可以用暴力破解的方法破译出用户的密码,从而进行一些破坏。所以后来,为了改善安全性,CHAP就应运而生,CHAP和PAP相比有很大的差别:

CHAP(挑战握手认证协议):在进行认证协商阶段,由认证方(运营商端)主动向用户端发起认证,并以MD5加密的方式对密码进行加密传输,有效的避免了被暴力破解。

此外,PAP和CHAP还有一个明显的区别,那就是如果PPP链路双方选择了PAP的认证方式,那么只在链路建立的阶段会进行认证,一旦链路建立成功将不在认证;而CHAP在这方面有新的改善,选择CHAP方式,在链路建立成功后具有再次验证检测机制。

PPP链路建立过程

当要通信的两端进行点对点的通信时,数据链路层使用PPP协议。一开始,通信双方均处于Dead状态,也叫链路静止状态,意思是链路此时不可用。

当两端检测到物理线路被激活时(一般是用户个人电脑通过Modem设备呼叫远端的ISP路由器,路由器就能够检测到Modem发出的载波信号),PPP就进入了Establish阶段,即链路建立阶段。

之后就开始LCP的参数协商,包括协商MRU、魔术字等参数,这些都协商成功后就进入到Opened状态,表示底层链路已建立成功。

然后进入到认证阶段,进行PAP或CHAP的认证。在这需要指出的是,认证这一步,不是必经的过程,而是可跳过的,也就是说可以认证,也可以不认证,选择不认证或者认证成功就可以进入下一步,但如果选择了认证,却又认证失败就不能进入下一步了。

LCP阶段协商好之后,下一阶段是进行NCP的协商,双方协商一致的网络层协议,只有这一步完成之后,双方这才可以通信。

在整个的过程中,如果出现连接中断、物理链路中断、认证失败或网络管理员手动强制配置关闭等情况之一,那么PPP链路将会自动进入到“链路终止”状态,等待所有的资源都被释放,通信双方将会回到Dead状态,直到双方重新建立起PPP连接。

PPPoE

PPPoE全称“PPP over Ethernet”,意思是在以太网上的PPP协议。这个技术出现的背景是:由于以太网是在局域网的数据链路层比较成熟的技术,所以我们考虑当城域网和广域网都采用千兆或万兆以太网时,在用户接入的部分使用以太网的方式接入到互联网。

但是,要使用以太网方式接入到互联网,是做不到的,因为以太帧当中并没有包含可以进行身份认证的字段,于是就提出把以太网和PPP结合,就形成了PPPoE。

在前些年的时候,家庭WiFi还没有普及,大多数家庭都是拨号入网的方式,在运营商办理了宽带业务,获得用户名和密码,每当要用电脑上网的时候,双击电脑桌面上的“宽带连接”,在弹出的对话框中输入用户名和密码,点击连接,经过一系列认证,成功之后,就会在桌面任务栏右下角显示一个“PPPoE”已连接,这就是我们见到过的PPPoE方式接入到互联网。

最后,需要说明一点的是,刚才上面说了PPPoE是拨号入网,这个不要和我们前面学过的ADSL拨号入网混淆了,虽然它们很相似,但是不一样。它们的区别是:ADSL拨号,它使用的是电话线入网,当用户电脑发送出来的以太帧到达家里的ADSL Modem之后,就转换成为了PPP的帧,所以这种方式不能成为以太网方式入网。

讲完了PPPoE,那么我们关于PPP协议的内容就介绍完了,内容很多,重点很多,要深入理解,尤其是要理解PPP链路建立的过程。下一讲,我们将学习第二种广域网的数据链路层协议HDLC。

参考教材:谢希仁《计算机网络》第七版 

继续阅读