点对点协议PPP

点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的点对点数据链路层协议。

PPP协议是因特网工程任务组IETF在1992年制定的。经过1993年和1994年的修订,现在的PPP协议已成为因特网的正式标准[RFC1661,RFC1662]。

用户连接到ISP就是通过PPP协议。

PPP协议为在点对点链路传输各种协议数据报提供了一个标准方法,主要由以下三部分构成:

帧格式

标志(Flag)字段: PPP帧的定界符,取值为0x7E

地址(Address)字段:取值为OxFF,预留(目前没有什么作用)

控制(Control)字段:取值为Ox03,预留(目前没有什么作用)

协议(Protocol)字段:指明帧的数据部分送交哪个协议处理

帧检验序列(Frame Check Sequence)字段:CRC计算出的校验位

透明传输

面向字节的异步链路采用插入转义字符的字节填充法

发送方的处理:

接收方的处理:进行反变换即可恢复出原来的帧的数据部分。

面向比特的同步链路采用插入比特0的比特填充法

发送方的处理:

对帧的数据部分进行扫描(一般由硬件实现)。只要发现5个连续的比特1,则立即填充1个比特0

接收方的处理:

对帧的数据部分进行扫描(一般由硬件实现)。只要发现5个连续的比特1,就把其后的1个比特0删除

差错检测

RFC 1662的附录部分给出了FCS的计算方法的C语言实现(查表法)

接收方每收到一个PPP帧,就进行CRC检验。若CRC检验正确,就收下这个帧;反之,就丢弃这个帧。使用PPP的数据链路层向上不提供可靠传输服务

工作状态

PPP链路的两端互相交换网络层特定的NCP分组。

如果在PPP链路上运行的是IP,则使用IP控制协议IPCP来对PPP链路的每一端配置P模块(如分配IP地址)。