目录
1. PPP
1.1 PPP 介绍
PPP协议:
点到点链路数据链路层协议,在SLIP(Serial Line Internet Protocol)基础上发展起来。可提供用户验证,易扩充,支持全双工同步异步通信。
SLIP:
只支持异步传输、不支持协商(不能协商双方IP地址等网络层属性)、只能承载IP报文等缺陷。SLIP逐步被PPP替代。
PPP可在串行通信线路上传输多种网络层协议,如IP、IPX、AppleTalk。
PPP既支持同步又支持异步,而X.25、FR(Frame Relay)等链路层仅支持同步,SLIP仅支持异步。
点到点直接连接是简单的广域网连接形式,如PPP。
PPP有良好扩展性,如需在以太网上承载PPP协议时,可扩展为PPPoE。
PPP包含:
1. LCP(Link Control Protocol)协议:
建立、拆除和监控PPP数据链路。
2. NCP(Network Control Protocol)协议:
协商网络层格式与类型。
3. CHAP 和 PAP:
CHAP:(Challenge-Handshake Authentication Protocol)。
PAP:(Password Authentication Protocol)。
1.2 PPP 帧格式
Flag域:
标识一个物理帧的起始和结束,该字节为0x7E。
Address域:
唯一标识对端,点对点链路无须对方链路层地址,0xFF即可。
Control域:
默认为0x03,表明为无序号帧,PPP默认不采用Seq和ACK来实现可靠传输。
Address和Control域一起标识此报文为PPP报文,即PPP报头为FF03。
Protocol域:标识信息域中数据包类型:
0x0021 IP
0xC021 LCP
0x8021 NCP
0xC023 PAP
0xC025 LQR
0xC223 CHAP
Information域:
最大长度MRU默认1500字节,可实际协商。长度不够可填充。
FCS域:
校验。
链路建立过程:
PPP链路建立过程:
1. Establish阶段:LCP协商
协商内容:SP(Single-link PPP)还是MP(Multilink PPP)、MRU、认证方式、魔术字等选项。
LCP协商成功后进入Opened状态,表示底层链路建立。
2. Authenticate阶段:CHAP或PAP验证,成功后为SUCCESS状态。
3. Network阶段:NCP协商
IPCP(IP Control Protocol)、MPLSCP(MPLS Control Protocol)
IPCP会协商双方IP
NCP协商后,链路建立成功。运行过程中,可能随时中断连接,物理链路断开、认证失败、超时等都可能导致链路进入Terminate阶段。
Terminate阶段,所有资源被释放,通信双方回到Dead。
1.3 LCP
LCP报文:
Code域:即编码,标识LCP报文类型
0x01 Configure-Request
0x02 Configure-Ack
0x03 Configure-Nak
0x04 Configure-Reject
0x05 Terminate-Request
0x06 Terminate-Ack
0x07 Code-Reject
0x08 Protocol-Reject
0x09 Echo-Request
0x0A Echo-Reply
0x0B Discard-Request
Identifier:即ID,
用来匹配请求和响应。
请求报文的ID从0x01递增。
Length:
即长度,Data域总长度,即Type、Length和Data总长度。
Data字段:
即LCP数据段。
type:报文类型
0x01 MRU 最主要
0x02 Async-Control-Character-Map
0x03 Authentication-Protocol (身份验证PAP or CHAP,若无认证则不包含该type)
0x04 Quality-Protocol(协商使用链路检测的方法ÿ