[笔记]ppp协议
PPP协议主要包括LCP、NCP、PAP&CHAP三族协议。LCP:建立,配置,测试PPP数据链路连接;
NCP:协商在该链路上所传输的数据包的格式与类型,建立,配置不同网络层协议;PPP扩展协议族;
PAP&CHAP:对本地和远端进行鉴权,保证网络的安全性。
PPP协商过程分为几个阶段:Dead阶段,Establish阶段,Authenticate阶段,Network阶段和Termintate阶段:
1)当物理层不可用时,PPP链路处于dead阶段,链路必须从这个阶段开始和结束.当物理层可用时,PPP在建立链路之前首先进行LCP协商,协商内容包括工作方式是SP还是MP,验证方式和最大传输单元等.
2)LCP协商过后就进入Establish阶段,此时LCP状态为Opened,表示链路已经建立.
3)如果配置了验证(远端验证本地或者本地验证远端)就进入Authenticate阶段,开始CHAP或PAP验证.
4)如果验证失败进入Terminate阶段,拆除链路,LCP状态转为Down;如果验证成功就进入Network协商阶段(NCP),此时LCP状态仍为Opened,而IPCP状态从Initial转到Request.
5)NCP协商支持IPCP协商,IPCP协商主要包括双方的IP地址.通过NCP协商来选择和配置一个网络层协议.当选中的网络层协议配置成功后,该网络层协议就可以通过这条链路发送报文了.
6)PPP链路将一直保持通信,直至有明确的LCP或NCP帧关闭这条链路,或发生了某些外部事件。
PAP验证为两次握手验证,口令为明文,适用于对网络安全要求相对较低的环境。PAP验证的过程如下:
被验证方发送用户名和口令到验证方;验证方根据用户配置查看是否有此用户以及口令是否正确,然后返回不同的响应(Acknowledge Or Not Acknowledge).如正确则会给对端发送ACK报文,通告对端已被允许进入下一阶段协商;否则发送NAK报文,通告对端验证失败.此时,并不会直接将链路关闭.只有当验证不通过次数达到一定值(缺省为4)时,才会关闭链路,来防止因误传,网络干扰等造成不必要的LCP重新协商过程.
CHAP验证为三次握手验证,口令为密文(密钥),适用于安全性要求高的环境。CHAP验证过程如下:
验证方向被验证方发送一些随机产生的报文,并同时将本端的主机名附带上一起发送给被验证方;
被验证方接到对端对本端的验证请求(Challenge)时,便根据此报文中验证方的主机名和本端的用户表查找用户口令字,如找到用户表中与验证方主机名相同的用户,便利用接收到的随机报文、此用户的密钥用Md5算法生成应答(Response),随后将应答和自己的主机名送回;验证方接到此应答后,利用对端的用户名在本端的用户表中查找本方保留的口令字,用本方保留的口令字(密钥)和随机报文用Md5算法得出结果,与被验证方应答比较,根据比较结果返回相应的结果(ACK or NAK)。
MP:为了增加带宽,将多个链路捆绑使用,MultiLink PPP
MP将报文分片后,从MP链路下的多个PPP通道发送到PPP对端,对端将这些分片组装好后,才递向网络层。