PPP帧 各字段的意义
-
首部四个字段,尾部两个字段
-
标志字段 F
第一个和最后一个字段都是标志字段 F,规定为 0x7e,表示一个帧的开始和结束
标志字段就是 PPP帧 的定界符
若连续出现两个标志字段,就表示这是一空帧,直接丢弃处理 -
地址字段 A
规定为 0xff
无实际意义,通过协商删去 -
控制字段 C
规定为 0x03
无实际意义,可以通过协商删去 -
协议(首部第四个字段)
长度为 2字节
为0x0021时,PPP帧的信息字段是 IP数据报
为0xc021时,PPP帧的信息字段是 PPP链路控制协议 LCP 的数据
为0x8021时,PPP帧的信息字段是网络层的控制数据 -
信息字段
长度可变,不超过 1500 Byte -
FCS
使用 CRC 的帧检验序列
长度为2 Byte
透明传输
-
PPP 使用异步传输时
按字节传送
使用字节填充来实现透明传输,规定转义字符为 0x7d -
字节填充
信息字段中出现 0x7e(F,标志字段)时,变为(0x7d,0x5e)
信息字段中出现 0x7d(转义字符本身)时,变为(0x7d,0x5d)
信息字段中出现 ASCII码的控制字符,也按某种规定转换成特定的2字节序列
(发送端进行字节填充,接收端收到数据后再进行与发送端字节填充相反的变换) -
PPP在使用同步传输时
按比特传送
使用零比特填充来实现透明传输 -
零比特填充
1、发送端
扫描整个信息字段(hw实现快,sw实现慢)
只要发现 5 个连续 1,立即填入 1 个 0
如此保证信息字段不会出现 6 个连续的 1,不可能出现 0x7e
2、接收端
到到一个帧时,先找到标志字段 F 确定一个帧的边界,
再使用 hw 对其中的比特流进行扫描
没发现 5 个连续 的 1,就删除紧接着的 0.