一.PPP协议的特点
- PPP协议就是用户计算机和ISP(互联网服务提供商)进行通信时所使用的数据链路层协议。
二.PPP协议的组成
- PPP协议有三个组成部分:
- 一个将IP数据报封装到串行链路的方法。PPP既支持异步链路(无奇偶检验的8比特数据),也支持面向比特的同步链路。IP数据报在PPP帧中就是其信息部分。这个信息部分的长度受最大传送单元MTU的限制。
- 一个用来建立,配置和测试数据链路连接的链路控制协议LCP。通信的双方可协商一些选项。
- 一套网络控制协议NCP,其中的每个协议支持不同的网络层协议,如,IP,OSI的网络层,DECnet,以及AppleTalk等。
三.PPP协议的帧格式
- PPP帧格式如下图所示
- PPP协议的首部和尾部分别为四个字段和两个字段。首部的第一个字段和尾部的第二个字段都是标志字段F(Flag),规定为0x7E(符号0x表示它后面的字符是用十六进制表示的,7E的二进制表示是01111110)。标志字段表示一个帧的开始或结束。因此标志字段就是PPP帧的定界符。
- 地址字段A与控制字段C实际上并没有携带PPP帧的信息。
- PPP首部的第四个字段是2字节的协议字段。当协议字段为0x0021时,PPP帧的信息字段就是IP数据报。若为0xC021,则信息字段是PPP链路控制协议LCP的数据,而0x8021表示这是网络层的控制数据。
- 尾部中的第一个字段(2字节)是使用CRC的帧检验序列FCS。
四.PPP协议的工作状态
- 当用户拨号接入ISP后,就建立了一条从用户个人电脑到ISP的物理连接。这时,用户个人电脑向ISP发送系列的链路控制协议LCP分组(封装成多个PPP帧),以便建立LCP连接。这些分组及其响应选择了将要使用的一些PPP参数。接着还要进行网络层配置,网络控制协议NCP给新接入的用户个人电脑分配一个临时的IP地址。这样,用户个人电脑就成为了互联网上的一个有IP地址的主机了。
- 当用户通信完毕时,NCP释放网络层连接,收回原来分配出去的IP地址。接着,LCP释放数据链路层连接。最后释放的是物理层的连接。
- 上述过程可用下图来描述
- PPP链路的起始和终止状态永远是链路静止状态,这时在用户个人电脑和ISP的路由器之间并不存在物理层的连接。
- 当用户个人电脑通过调制解调器呼叫路由器时,路由器就能够检测到调制解调器发出的载波信号。在双方建立了物理层连接后,PPP就进入链路建立状态,其目的是建立链路层的LCP连接。
- 这时LCP开始协商一些配置选项,即发送LCP的配置请求帧。这是个PPP帧,其协议字段配置为LCP对应的代码,而信息字段包含特定的配置请求。链路的另外一端发送响应。
- LCP配置选项包含链路上的最大帧长,所使用的鉴别协议的规约,以及不使用PPP帧中的地址和控制字段。
- 协商结束后双方就建立了LCP链路,接着就进入鉴别状态。在这个状态,只允许传送LCP协议的分组,鉴别协议的分组以及监测链路质量的分组。若使用口令鉴别协议PAP,则需要发起通信的一方发送身份标识符和口令。系统可允许用户重试若干次。如果需要更好的安全性,则可使用更加复杂的口令握手鉴别协议CHAP。如鉴别身份失败,则转到链路终止状态。若鉴别成功,则进入网络层协议状态。
- 在网络层协议状态,PPP链路的两端的网络控制协议NCP根据网络层的不同协议相互交换网络层特定的网络控制分组。PPP协议两端的网络层可以运行不同的网络层协议,但任然可以使用同一个PPP协议进行通信。
- 如果在PPP链路上运行的是IP协议,则对PPP链路的每一端配置IP协议模块(如分配IP地址)时就要使用NCP中支持IP的协议 ------ IPCP。IPCP分组也封装成PPP帧在PPP链路上传送。在低速链路上运行时,双方还可以协商使用压缩的TCP和IP首部,减少在链路上发送的比特数。
- 当网络层配置完毕后,链路就进入可进行数据通信的链路打开状态。链路的两个PPP端点可以彼此向对方发送分组。两个PPP端点还可以发送回送请求LCP分组和送回回答LCP分组,以检查链路的状态。
- 数据传输结束后,可以由链路的一端发出终止请求LCP分组请求终止链路连接,在收到对方发来的终止确认LCP分组后,转到链路终止状态。如果链路出现故障,也会从链路打开状态转到链路终止状态。当调制解调器的载波停止后,则回到链路静止状态。
- PPP协议已不是纯粹的数据链路层的协议,它还包含了物理层和网络层的内容。