PPP 协议知识点#
视频讲解#
https://www.bilibili.com/video/BV13Upr6cEWe/(嗒特老师)
基本概念#
定义与用途#
- PPP 是点对点协议(Point-to-Point Protocol)。
- PPP 用于点对点信道的数据链路层。
- PPP 是目前使用最广泛的点对点数据链路层协议。
- 用户计算机接入 ISP 时使用的数据链路层协议是 PPP。
- PPP 协议已不是纯粹的数据链路层协议,还涉及物理层与网络层。
PPP 的组成#
三个组成部分#
- PPP 由三部分组成:将 IP 数据报封装到串行链路的方法、链路控制协议 LCP、网络控制协议 NCP。
- LCP 用来建立、配置和测试数据链路连接。
- NCP 是一套网络控制协议,每个协议支持不同的网络层协议。
- NCP 可负责给新接入用户分配临时 IP 地址,IP 对应 IPCP。
身份认证#
- 身份认证是可选项,可在 LCP 与 NCP 之间进行。
- PAP / CHAP 是 PPP 中可能使用的认证协议。
组成口径差异#
- 关于 PPP 组成存在两种口径:一种为封装方法、LCP、NCP;另一种把认证协议也列为组成部分。
PPP 帧格式#
标志字段#
- 帧首尾标志字段 F = 0x7E,即 01111110,用作帧定界符。
地址与控制字段#
- 地址字段 A 固定为 0xFF。
- 控制字段 C 固定为 0x03。
- 地址字段 A 和控制字段 C 实际不携带 PPP 帧信息。
协议字段#
- 协议字段为 2 字节,用来标识信息字段装的是谁。
信息字段#
- 信息字段长度可变,不超过 1500 字节。
帧检验序列#
- 尾部有使用 CRC 的帧检验序列 FCS。
- FCS 位数有 2 字节与 4 字节两种。
帧字段顺序#
- 帧字段顺序可表示为:标志 0x7E、地址 0xFF、控制 0x03、协议、信息、FCS、标志 0x7E。
字节填充与透明传输#
异步传输字节填充#
- 异步传输时使用字节填充。
- 信息字段中的 0x7E 转变成 2 字节序列 (0x7D, 0x5E)。
- 转义字符是 0x7D。
- 若信息字段中出现一个 0x7D,则转变成 (0x7D, 0x5D)。
- 若出现数值小于 0x20 的 ASCII 控制字符,前面加 0x7D 并改变其编码。
透明传输#
- 透明传输的意义:无论数据里出现什么字节,都不会被误认成帧边界。
十六进制写法#
- 十六进制写法可用 0x7E,也可写 7E 或 01111110。
其他相关知识点#
零比特填充#
- 同步传输使用零比特填充:5 个连续 1 后填 0。
工作状态机#
- PPP 工作状态机:链路静止 → 建立 → 鉴别 → 联网 → 打开 → 终止。
可靠传输#
- PPP 不需要纠错、流量控制、序号,因为 TCP 已负责可靠传输。
与 HDLC 对比#
- PPP 与 HDLC 的对比:PPP 面向字节,HDLC 面向比特。
PPPoE#
- PPPoE 是在以太网上跑 PPP。