408计算机网络第3章:PPP协议——帧格式、LCP/NCP、状态机与真题精讲

复习位置:计算机网络 → 第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题
相关推荐
MIXLLRED1 小时前
解决——Ubuntu远程桌面指令更换网络
linux·网络·ubuntu
zt1985q3 小时前
本地部署开源网络书签与内容管理工具 Karakeep 并实现外部访问
运维·服务器·网络·数据库·网络协议·开源
白狐_7985 小时前
408计算机网络第3章:以太网交换机与共享式以太网——知识总结
服务器·网络·计算机网络
笨鸟先飞,勤能补拙5 小时前
网络安全等级保护 2.0:从定级备案、建设整改到持续合规的系统指南
网络·人工智能·windows·安全·web安全·网络安全·github
wgh6536 小时前
策略路由实验
网络
難釋懷7 小时前
Nginx日志
前端·网络·nginx
Loongproxy7 小时前
大规模采集为啥用隧道代理IP?会话保持如何做到无感轮换
java·服务器·网络
老赵的博客7 小时前
工控机之UDP组播
网络·网络协议·udp
麦烤楽鸡翅7 小时前
计算机网络基础且重要芝士
网络·网络协议·计算机网络·面试算法题·无耻之徒