1、详细的 PPP 会话建立流程如下:1、 当物理层不可用时,PPP 链路处于 Dead 阶段,链路必须从这个阶段开始和结束。2、 当物理层可用时进入 Establish 阶段。PPP 链路在 Establish 阶段进行 LCP 协商,协商的内容包括是否采用链路捆绑、使用哪种验证方式、最大传输单元等。协商成功后 LCP进入 Opened 状态,便是底层链路已经建立。3、 如果配置了验证,则进入 Authenticate 阶段,开始 CHAP 或者 PPP 验证。4、 如果验证失败则进入 Terminate 阶段,拆除链路,LCP 状态转为 Down;如果验证成功则进入 Network 阶段,由
2、NCP 协商网络层参数,此时 LCP 状态仍为 Opend,而 NCP状态从 Initial 转到 Request。5、 NCP 协商支持 IPCP 协商, IPCP 协商主要包括双方的 ip 地址。通过 NCP 协商来选择和配置一个网络层协议只有相应的网络层协商成功后,该网络层协议才可以通过这条PPP 链路发送报文。6、 PPP 链路将一直保持通信,直至有明确的 LCP 或 NCP 帧来关闭这条链路,或者发生了某些外部事件(例如线路别切断) 。CHAP 验证为三次握手验证,验证过程如下:1、 Challenge:主验证方主动发起验证请求,主验证方向被验证方发送一个随机产生的数值,并同时将本端
3、 local-user 的用户名发送给被验证方。2、 Response:被验证方接受到主验证方的验证请求后,检查本地密码。如果本端接口上配置了默认的 CHAP 密码,则被验证方选用此密码;如果没有配置默认的 CHAP 密码,则被验证方根据主验证的用户名在本端的用户名表中查找该用户对应的密码,并选用找到的密码。随后,被验证方利用 MD5 算法对报文 ID,密码和随机数生成一个摘要,并将此摘要和接口下配置用户名发回给主验证方。3、 Acknowledge or Not Acknowledge:主验证方用 MD5 算法对报文 ID、本地保存的被验证方密码和原随机数生成一个摘要,并与收到的摘要值进行比较。如果相同则向被验证方发送 Acknowledge 消息生命验证4、 通过;如果不同这不通过,向被验证方发送 Not Acknowledge。