网络基础PPP协议
点对点协议(point-to-point protocol,PPP)所起的作用与OSI/RM中的数据链路层一致,可以完成链路的操作、维护和管理功能。并且支持任何种类的DTE-DCE接口(包括EIA RS-232、EIA-449与ITU-TV.35)。
运行PPP协议只需要提供全双工的电路(专用的或者交换式的)以实现双向的数据传输,它对数据传输速率没有太严格的限制,能适用于多种远程接入的情形。PPP灵活的选项配置、多协议的封闭机制、良好的选项协商机制以及丰富的认证协议,使得它在远程接入技术中得到了广泛的应用。
1.PPP协议的构成
PPP由以下三个部分组成:
●在串行链路上封装IP数据报的方法:PPP既支持异步链路(无奇偶校验的8比特数据),也支持
面向比特的同步链路。
●链路控制协议(link control protocol,LCP):用于建立、配置和测试数据链路连接,通信的双方
可协商一致一些选项。
●网络控制协议(network control protocol,NCP):用于建立、配置多种不同网络层协议,如IP,
OSI网络层,DECnet以及AppleTalk等,每种网络层协议需要一个NCP来进行配置,在单个PPP
链路上可支持同时运行多种网络协议。
2.PPP的帧格式
PPP的帧格式和HDLC的相似,标准的PPP帧格式如图2-20所示。
字节111221
不超过1500字节
图2-20 PPP的帧格式
PPP的帧由六部分组成,详细介绍如下:
●标志字段,编码为01111110(0x7e),是帧的定界符,用以标识一帧的开始和结束。
●地址字段,编码为11111111(0xff),标准的广播地址,使所有的站均可以接收该帧,不指定单
个工作端的地址。
●控制字段,编码为00000011(0x03),是一个无编号帧,PPP并没有使用序号和确认机制来保证
数据帧的有序传输。
●协议字段,占2个字节,用于标识封装在PPP帧中的信息所用的协议类型。当协议字段为0x0021
时,信息字段就是IP数据报;若为0xC021,则信息字段是链路控制数据;为0x8021时,表示
信息字段是网络控制数据。
●信息字段,包含零个或多个字节,是网络层协议数据报,缺省最大长度为1500个字节。
●FCS帧校验序列字段,通常为2个字节,使用16比特的循环冗余校验CRC计算校验和。
可以看出,PPP帧的前3个字段和最后2个字段与HDLC的格式是一样的,不同的是多了一个2个字节的协议字段。PPP不是面向位的,因而它不能采用HDLC所使用的零比特填充法,而是使用一种特殊的字符填充法。具体的做法是将信息字段中出现的每个0x7E 字符转变成为2个字节序列0x7D和0x5E;若信息字段中出现一个0x7D的字符,则将其转变成为2字节序列0x7D和0x5D;若信息字段中出现ASCII码的控制字符(即小于0x20字
符),则在该字符前面加入一个0x7D字符。
3.PPP的协议族
链路控制协议(link control protocol,LCP)。用于建立、配置、维护和终止点对点的链路层连接,其工作过程主要分为4个阶段:
第一阶段是链路建立和配置协调,在网络层数据报交换之前,LCP首先打开连接,协议配置参数,并完成一个配置确认帧的发送和接收。
第二阶段是链路质量检查,在链路建立、配置协调之后,LCP允许有一个可选的链路质量检测阶段。在这一阶段,通过对链路的检测来决定链路是否满足网层协议的要求,这一阶段是可选的。LCP可以延迟网络层协议信息的传送,直到这一阶段结束。
第三阶段是网络层协议配置阶段,在LCP完成链路质量检测之后,网络层协议通过适当的NCP协议进行单独的配置,而且可以在任何时刻被激活和关闭。如果LCP关闭了链路,它会通知网络层协议采取相应的操作。
第四阶段是关闭链路,LCP可以在任何时刻关闭链路,但多数关闭是因用户的要求或发生物理故障,如载波丢失或空闲时间过长。
这种工作过程是通过交换LCP帧来实现的,LCP定义了三种帧:链路建立帧,用于建立和配置PPP链路并确定与该链路相关的参数;链路终止帧,用于终止PPP链路;链路维护帧,用于管理和调试PPP链路。
PPP可以协商数据链路层的多个选项,如最大接收单元、异步控制字符映射、认证协议、质量协议、协议域压缩、地址和控制域压缩,用以配置数据链路连接。
PPP使用一组网络控制协议NCP配置不同的网络层,其中普遍使用的是用于配置IP层的IP控制协议(internet protocol control protocol,IPCP),主要讨论了IP压缩及协商机制完成选项协商的任务,但必须在PPP链路建立起来之后进行。
4.PPP的运行机制
PPP不提供使用序号和确认的可靠传输。在噪声较大的环境下,如无线网络,则应使用有序号的工作方式。
当用户拨号接入网络服务提供商ISP时,路由器的调制解调器对拨号做出应答,并建立一条物理连接。这时,计算机向路由器发送一系列的LCP分组,这些分组及其响应选择了将要使用的一些PPP参数。接着就进行网络层配置,NCP给新接入的计算机分配一个临时的IP地址。这样,计算机就成为Internet上的一个主机了。
当用户通信完毕时,NCP释放网络层连接,收回原来分配出去的IP地址;接着,LCP 释放数据链路层连接;最后释放的是物理层连接。
当线路处于静止状态时,并不存在物理层的连接。当检测到调制解调器的载波信号,在建立物理层连接后,线路就进入建立状态。这时,LCP开始协商一些选项。协商结束后就进入鉴别状态。若通信的双方鉴别身份成功,则进入网络状态。NCP配置网络层,分配IP 地址,然后就进入可进行数据通信的打开状态。数据传输结束后就转到终止状态。载波停之后则回到静止状态。过程描述状态如图2-21所示。
2-21 建立和释放PPP链路的状态转换图