![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/7698ae34d1604a16abe9376cca985b5e.jpeg#pic_center)
点对点协议PPP概述
点对点协议(Point-to-Point Protocol,PPP)是目前使用最广泛的点对点数据链路层协议。
点对点协议PPP是因特网工程任务组(Internet Engineering Task Force,IETF)于1992年制定的。经过多次修订,目前PPP已成为因特网的正式标准[RFC1661,RFC1662]。
点对点协议PPP主要有两种应用(下图):
从网络体系结构的角度看点对点协议PPP的组成(下图):
PPP的帧格式
PPP的帧格式如下图:
标志(Flag)字段:PPP帧的定界符,取值为0x7E。
地址(Address)字段:取值为0xFF,预留(目前没有什么作用)。
控制(Control)字段:取值为0x03,预留(目前没有什么作用)。
协议(Protocol)字段:其值用来指明帧的数据载荷应向上交付给哪个协议处理。
帧检验序列(Frame Check Sequence,FCS)字段:其值是使用循环冗余校验CRC计算出的检错码。
PPP桢的透明传输
-
面向字节的异步链路使用字节填充来实现透明传输[RFC1662]
发送方的处理:
(1)将数据载荷中出现的每一个 0x7E 减去0x20(相当于异或0x20),然后在其前面插入转义字符0x7D。
(2)若数据载荷中原来就含有0x7D,则把每一个0x7D减去0x20,然后在其前面插入转义字符0x7D。
(3)将数据载荷中出现的每一个ASCII码控制字符(即数值小于0x20的字符),加上0x20(相当于异或0x20,将其转换成非控制字符),然后在其前面插入转义字符0x7D。接收方的处理:
进行与发送方相反的变换,就可以正确地恢复出未经过字节填充的原始数据载荷。
-
面向比特的同步链路使用零比特填充来实现透明传输
发送方的处理:
对帧的数据载荷进行扫描(一般由硬件完成),每出现5个连续的比特1,则在其后填充一个比特0。接收方的处理:
对帧的数据载荷进行扫描,每出现5个连续的比特1时,就把其后的一个比特0删除。
PPP帧的差错检测
帧检验序列FCS字段:其值是使用循环冗余校验CRC计算出的检错码。
CRC采用的生成多项式为 CRC−CCITT=X^16+X^12+X^5+1
接收方每收到一个PPP帧,就进行CRC检验。若CRC检验正确,就收下这个帧;否则,就丢弃这个帧。
使用PPP的数据链路层,向上提供的是不可靠数据传输服务。
PPP的工作状态
以用户主机拨号接入因特网服务提供者ISP的拨号服务器的过程为例
PPP协议的工作状态有六种,分别是链路静止、链路建立、鉴别、网络层协议、链路打开、链路终止。这些状态共同构成了PPP协议的状态转换图,确保用户与ISP之间能够建立稳定可靠的通信连接。
链路静止:这是PPP协议的初始状态,表示链路没有被使用,物理层活动载体,链路处于静默状态。
链路建立:当其中一端要进行通信时,将进入建立连接阶段,建立链路层的LCP连接;此阶段双方进行协商,确保双方对数据链路层的参数达成一致。
鉴别:在链路建立之后,进行身份鉴别,确保通信双方的身份真实性。
网络层协议:在鉴别成功后,进入网络层协议状态,此时双方开始交换网络层控制分组,如IP地址等,以便双方能够正确地进行网络层通信。
链路打开:当网络层配置完毕后,链路就进入可进行数据通信的“链路打开”状态。链路的两个PPP端点可以彼此向对方发送分组。
链路终止:当通信结束或出现错误时,进入链路终止状态,释放资源,准备下一次通信或进入链路静止状态。
通过这些状态的转换,PPP协议确保了用户与ISP之间能够建立起稳定可靠的通信连接,并能够在需要时进行身份验证和网络配置,从而实现了高效的数据传输和服务.