复习位置:计算机网络 → 第3章 数据链路层 → 点对点协议 PPP
重点掌握:PPP是干什么的 → LCP/NCP各管什么 → PPP帧格式 → 透明传输 → PPP建立过程 → PPP为什么是不可靠服务。
一、PPP到底是干什么的
PPP,全称:
Point-to-Point Protocol
点对点协议
它工作在:
数据链路层
主要用于:
两个结点之间的点对点链路
典型场景:
用户主机 <------ PPP ------> ISP
或者:
路由器 <------ 点对点链路 ------> 路由器
先记一句:
PPP = 数据链路层的点对点协议
它不是局域网中的多点竞争协议,因此PPP链路上:
不需要CSMA/CD
二、PPP由哪三部分组成
PPP
├── LCP:管理数据链路
├── NCP:管理网络层协议
└── PPP帧封装方法
1. LCP:链路控制协议
LCP = Link Control Protocol。
负责:
建立链路
配置链路
测试链路
终止链路
还可以协商:
最大帧长
鉴别方式
其他链路参数
一句话:
LCP管"链路本身"。
2. NCP:网络控制协议
NCP = Network Control Protocol。
PPP可以承载多种网络层协议,例如:
IP
IPX
...
不同网络层协议通过对应的NCP进行配置。
一句话:
NCP管"上面的网络层协议"。
最容易混的地方:
LCP:链路层配置
NCP:网络层配置
3. PPP帧封装
PPP规定:
网络层数据报怎样装进PPP帧
例如:
IP数据报
↓
封装进PPP信息字段
↓
在点对点链路上传输
三、PPP帧格式
┌────┬────┬────┬──────────┬──────────────┬─────┬────┐
│ F │ A │ C │ Protocol │ Information │ FCS │ F │
├────┼────┼────┼──────────┼──────────────┼─────┼────┤
│ 1B │ 1B │ 1B │ 2B │ 0~1500B │ 2B │ 1B │
└────┴────┴────┴──────────┴──────────────┴─────┴────┘
四、每个字段怎么记
1. F:标志字段
长度:
1B
固定:
0x7E
二进制:
01111110
作用:
标识PPP帧的开始和结束
2. A:地址字段
长度:
1B
固定:
0xFF
强化阶段直接记:
A = FF
3. C:控制字段
长度:
1B
固定:
0x03
直接记:
C = 03
4. Protocol:协议字段
长度:
2B
作用:
说明Information字段里装的是什么协议的数据
教材常见:
0x0021 -> IP数据报
0xC021 -> LCP分组
所以:
Protocol = "信息字段的类型说明"
5. Information:信息字段
长度:
0~1500B
里面可以放:
IP数据报
LCP分组
NCP分组
...
注意:
PPP信息字段最小可以是0B
它不像经典以太网那样,因为CSMA/CD而要求数据字段至少46B。
6. FCS:帧检验序列
长度:
2B
采用:
CRC
作用:
差错检测
但只是:
检测
不是:
检测 + 重传纠错
五、一眼背PPP帧
F A C 协议 信息 FCS F
长度:
1 1 1 2 0~1500 2 1
固定值:
F = 7E
A = FF
C = 03
六、透明传输为什么要填充
PPP用:
0x7E
作为帧边界。
如果Information字段里也出现:
0x7E
接收方可能误认为:
帧结束
所以需要透明传输处理。
七、异步传输:字节填充
PPP使用异步传输时:
采用字节填充
转义字符:
0x7D
强化阶段先记:
异步PPP
-> 字节填充
-> 7D转义
八、同步传输:零比特填充
PPP使用同步传输时:
采用零比特填充
标志:
01111110
发送端:
每连续出现5个1
就在后面插入一个0
接收端:
看到连续5个1后的0
就删除该0
直接和HDLC的比特填充一起理解即可。
九、两个填充不要混
异步PPP:
字节填充
7D转义
同步PPP:
零比特填充
连续5个1插0
一句话:
异步按字节处理,
同步按比特处理。
十、PPP建立连接的主线
状态图看起来复杂,主线其实是:
链路静止
↓
建立物理连接
↓
LCP协商
↓
鉴别(可选)
↓
NCP配置网络层
↓
链路打开
↓
正常传数据
↓
链路终止
↓
链路静止
再压缩:
物理通
-> LCP谈
-> 身份验
-> NCP谈
-> 正常传
-> 结束
十一、LCP和NCP谁先谁后
一定是:
LCP在前
NCP在后
原因:
链路本身先建立、配置好
才能谈上层网络协议怎么跑
所以:
LCP成功 ≠ 已经可以正常传IP数据
后面还要:
NCP配置
十二、鉴别是不是必须
不是。
教材流程是:
鉴别成功
或
无需鉴别
都可以进入:
网络层协议状态
所以鉴别是:
可选阶段
十三、PPP为什么是不可靠服务
PPP有:
FCS + CRC
所以能:
发现差错
但数据传输阶段:
不使用帧序号
不使用ACK确认
不负责超时重传
所以:
PPP只检错
不负责可靠重传
因此:
PPP提供不可靠的数据链路层服务
十四、最容易出的陷阱
看到:
PPP使用CRC
不能推出:
PPP可靠传输
因为:
检错 ≠ 可靠传输
可靠传输通常还需要:
确认
序号
超时重传
PPP的数据传输阶段没有这套ARQ机制。
十五、PPP高频判断
PPP用于点对点链路 √
PPP工作在数据链路层 √
PPP支持全双工 √
PPP使用CRC进行差错检测 √
PPP提供可靠传输 ×
PPP数据阶段使用ACK确认 ×
PPP支持多点共享链路 ×
PPP必须使用CSMA/CD ×
PPP信息字段最大1500B √
PPP信息字段最小必须46B ×
PPP是面向字节的协议 √
十六、为什么PPP没有46B最小数据字段
经典以太网需要:
CSMA/CD碰撞检测
因此要有:
最小帧长
但PPP是:
点对点链路
没有多个站点竞争总线,所以:
不需要CSMA/CD
因此PPP的Information:
可以为0B
十七、PPPoE
PPPoE:
PPP over Ethernet
粗略结构:
以太网帧
└── PPPoE
└── PPP
└── IP数据
强化阶段知道:
PPPoE = 在以太网上承载PPP
即可。
十八、408真题1:2014年第40题
题目:
使用浏览器访问某大学Web网站主页时,
不可能使用到的协议是( )。
A. PPP
B. ARP
C. UDP
D. SMTP
答案:
D. SMTP
为什么PPP可能出现?
因为主机接入Internet时:
可能采用PPP
ARP可能用于:
IP地址 -> MAC地址
UDP可能用于:
DNS查询
SMTP用于:
电子邮件发送
所以单纯访问Web主页时,SMTP不可能用到。
这道题告诉你:
PPP在408里经常以"协议层次/使用场景"方式出现
十九、408真题2:2012年第33题
题目:
在TCP/IP体系结构中,
直接为ICMP提供服务的协议是( )。
A. PPP
B. IP
C. UDP
D. TCP
答案:
B. IP
协议层次:
ICMP
↓
IP
↓
PPP / Ethernet
↓
物理层
ICMP直接封装在:
IP数据报
中。
所以:
IP直接为ICMP提供服务
PPP在更下面:
PPP负责把IP数据报封装成数据链路层帧
这道题真正考:
PPP属于数据链路层
服务对象是网络层
二十、典型练习:PPP帧字段
下面是典型练习,不是统考原题。
PPP帧:
F | A | C | Protocol | Information | FCS | F
下列说法正确的是:
A. FCS用于可靠重传
B. Protocol用于说明Information承载的协议类型
C. Information至少46B
D. PPP帧不需要边界标志
判断:
A ×:FCS只负责检错
B √
C ×:PPP信息字段可为0B
D ×:F=7E就是边界标志
答案:
B
二十一、典型练习:LCP和NCP
下面是典型练习,不是统考原题。
A. LCP负责给IP数据报分配端口号
B. NCP负责协商物理链路建立
C. LCP负责PPP链路参数配置
D. NCP负责CRC检验
秒杀:
LCP -> 链路本身
NCP -> 网络层协议配置
所以:
答案C
二十二、考场秒杀表
看到:
LCP
想到:
链路建立、配置、测试、终止
看到:
NCP
想到:
网络层协议配置
看到:
7E
想到:
PPP帧标志
看到:
FF / 03
想到:
地址字段 / 控制字段固定值
看到:
0021
想到:
IP
看到:
C021
想到:
LCP
看到:
异步PPP
想到:
字节填充
7D转义
看到:
同步PPP
想到:
零比特填充
5个1插0
看到:
CRC
不要直接选"可靠"。
PPP是:
只检错,不负责重传
二十三、最后只背这段
PPP是数据链路层点对点协议。
PPP三部分:
LCP管链路,
NCP管网络层,
再加PPP帧封装。
PPP帧:
F A C 协议 信息 FCS F
F=7E
A=FF
C=03
异步字节填充,
同步零比特填充。
建立流程:
物理通 -> LCP -> 鉴别 -> NCP -> 打开。
PPP有CRC但没有数据阶段ACK和重传,
所以能检错,但提供不可靠传输服务。
这段能完整复述出来,PPP选择题基本就不会丢概念分。
真题核对
本文真题部分核对自:
2012年408计算机网络第33题
2014年408计算机网络第40题