点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的点对点数据链路层协议
PPP协议是因特网工程任务组IETF在1992年制定的。经过1993年和1994年的修订,现在的PPP协议已成为因特网的正式标准[RFC1661RFC1662]。
PPP协议为在点对点链路传输各种协议数据报提供了一个标准方法
主要由以下三部分构成:
对各种协议数据报的封装方法(封装成)
链路控制协议LCP 用于建立、配置以及测试数据链路的连接
一套网络控制协议NCPs 其中的每一个协议支持不同的网络层协议
帧格式
标志(Flag)字段:PPP的定界符,取值为0x7E
地址(Address)字段: 取值为0xFF,预留(目前没有什么作用)
控制(Control)字段: 取值为0x03,预留(目前没有什么作用)
协议 (Protocol)字段: 指明的数据部分送交哪个协议处理
取值0x0021表示:顿的数据部分为IP数据报
取值0xC021表示:顿的数据部分为LCP分组取值
0x8021表示:顿的数据部分为NCP分组
帧检验序列 (Frame Check Sequence) 字段: CRC计算出的校验位
透明传输
透明传输 ->面向字节的异步链路采用插入转义字符的字节填充法
发送方的处理:
出现的每一个7E (PPP的定界符) 字节转变成2字节序列 (7D,5E)
出现的每一个7D (转义字符) 字节转变成2字节序列 (7D,5D)
出现的每一个ASCII码控制字符数值小于0x20的字符),则在该字符前面插入一个7D字 节,同时将该字符的编码加上0x20
接收方的处理: 进行反变换即可恢复出原来的帧的数据部分
透明传输-->面向比特的同步链路采用插入比特0的比特填充法
发送方的处理:
对帧的数据部分进行扫描(一般由硬件实现)。只要发现5个连续的比特1,则立即填充1个比特0
接收方的处理:
对帧的数据部分进行扫描(一般由硬件实现)。只要发现5个连续的比特1,就把其后的1个比特0删除