链路建立流程
建立 PPP 链路,需要进行三个阶段的协商:
1)链路协商:通过LCP报文进行链路参数协商,建立链路层连接;
2)认证协商(可选):通过链路建立阶段协商的认证方式进行链路认证;
3)网络协商 :通过 NCP 协商,来选择和配置一个网络层协议,并进行网络层参数协商;
链路接口状态机
PPP协商由链路两端的接口完成。接口的状态表示了协议的协商阶段;
第一步、链路协商过程(LCP)
LCP 协商由不同的 LCP 报文交互完成,相互协商:
1)协商由任意一方发送 Configure-Request 报文发起;
2)如果对端接收此报文且参数匹配,则通过回复 Configure-Ack 响应协商成功;
参数匹配,协商成功
Magic Number:用于防环;
Configure-Request 需要相互发送。
参数相异,重新协商
在LCP报文交互中出现LCP参数不匹配时,接收方回复 Configure-NAK 响应告知对端修改参数然后重新协商;
参数未知,重新协商
在LCP报文交互中出现LCP参数不识别时,接收方回复 Configure-Reject 响应告知对端删除不识别的参数,然后重新协商;
第二步、认证协商过程(Auth)
链路协商成功后,进行认证协商(此过程可选)。认证协商有两种模式:PAP;CHAP;
PAP,Password Authentication Protocol
PAP 认证双方有两次握手。协商报文以明文的形式在链路上传输;
Auehenticate-Request,Authenticate-ACK(Authenticate-NAK)
CHAP,Challenge Handshake Authentication Protocol
CHAP认证双方有三次握手。协商报文被 HASH 后再在链路上传输;
第三步、网络协商过程(Network)
PPP认证协商后,双方进入NCP协商阶段,协商在数据链路上所传输的数据包的格式与类型;
以常见的 IPCP 协议为例,它分为:
1)静态地址协商。需要事先手动在链路两端配置IP地址,协商过程只是通知对方;
2)动态地址协商;
静态网络地址协商
动态网络地址协商
动态地址协商支持 PPP 链路一端为对端配置地址,即:某端未配置地址,另端已配置地址,此时零端负责分配地址;