一、PPP 是什么
PPP(Point-to-Point Protocol,点对点协议),数据链路层协议。
用于点对点串行链路上传输网络层数据包(IP等)。
典型场景:早期电话拨号上网、串口、路由器之间串口链路、4G/5G拨号。
前身是SLIP(串行线路网际协议);SLIP只有简单封装,无校验、无认证;PPP对SLIP全面增强。
二、PPP 的三大组成部分
- LCP(链路控制协议 Link Control Protocol)
负责链路建立、配置、检测、协商链路参数;协商最大帧长、是否开启认证、魔术字(检测环路)。链路建立阶段最先跑LCP。 - NCP(网络控制协议 Network Control Protocol)
LCP链路就绪后,NCP协商网络层参数;常用IPCP(IP Control Protocol),协商两端IP地址。 - PPP帧封装
对网络层报文进行封装、差错检测。
三、PPP完整会话阶段
- 链路建立阶段(LCP协商)
两端交换LCP报文,协商链路参数(认证方式、MRU魔术字等)。 - 认证阶段(可选)
LCP协商成功后,可以进行身份认证,PAP / CHAP。- PAP:密码明文发送,不安全;
- CHAP:挑战握手,密码不在线路上传输,更安全。
认证失败直接关闭链路。
- 网络层协商阶段(NCP/IPCP)
协商IP地址,两端分配IP,网络层协议(IP)可以开始通信。 - 数据传输阶段
封装IP报文,在PPP链路上收发数据。 - 链路终止阶段
任意一方发送LCP关闭报文,断开链路。
记忆顺序:LCP建立 → 认证 → NCP协商IP → 传数据 → 断开链路
四、PPP帧格式
标志字段(0x7E) | 地址 | 控制 | 协议域 | 信息(IP包) | FCS校验 | 标志(0x7E)
- 标志字段:
0x7E,标识帧开始与结束 - 地址、控制字段:固定值,点对点链路不需要MAC寻址
- 协议域:标识里面承载的是什么协议(0x0021代表IP)
- FCS:帧校验,差错检测
PPP没有MAC地址,因为是点对点链路,不存在广播。
五、PAP 和 CHAP 认证对比
| 项目 | PAP | CHAP |
|---|---|---|
| 全称 | Password Authentication Protocol | Challenge Handshake Authentication Protocol |
| 安全 | 弱,账号密码明文传输 | 强,密码不在线路传输 |
| 流程 | 客户端直接发用户名+密码 | 服务器发随机挑战串;客户端用密码哈希后返回;服务端比对哈希 |
| 认证时机 | 链路建立阶段一次性认证 | 周期性可重复挑战 |
六、PPP vs SLIP
- SLIP:仅封装IP,无校验,无认证,不能协商IP;淘汰。
- PPP:有LCP/NCP,支持差错校验、认证、动态IP协商,支持多网络层协议。
七、优缺点
✅ 优点
- 支持身份认证PAP/CHAP;
- 支持差错检测(FCS);
- 可以动态协商IP地址;
- 支持多种网络层协议(IP等);
- 简单,适合点对点串行链路。
❌ 缺点
- 只适用于点对点链路,不能用于以太网广播网络;
- PAP认证存在明文安全风险,不推荐使用。
八、小结
- PPP 数据链路层点对点协议,用于串行点对点链路;
- 由LCP(链路协商)、认证、NCP(网络层参数协商)、帧封装组成;
- 认证两种方式:PAP明文,CHAP哈希挑战(推荐);
- 通信流程:LCP建链路 → 认证 → IPCP分配IP → 传输IP报文 → 释放链路;
- 没有MAC地址,不支持广播;SLIP的替代方案。
思考题:PPP工作在点对点链路,为什么PPP帧里面保留地址字段却不使用MAC地址?
0 条笔记