3.4 PPP
PPP是为点对点之间的数据传输提供一种封装方法,可以支持IP、IPX和AppleTalk多种网络层协议,替代原来非标准的链路层协议。它即支持异步的物理线路传输,也支持同步的HDLC和SONET的物理线路传输,支持链路的配置,质量检测和网络层协议的复用。
3.4.1 PPP的封装帧格式
PPP工作在数据链路层,它的数据封装帧格式提供帧定界、检错和协议标识,使得不同网络层协议可以同时在同一链路上传输。PPP可以工作在不同的物理层,同步线路,异步线路和以太网等,这样就形成了PPP的多种封装帧格式。
1、同步线路上的PPP封装
PPP工作在同步线路时,使用HDLC的UI帧。HDLC的UI帧的INFO部分扩展“协议字段”包括Flag、Address、Control、Protocol、Information、FCS几个部分。
Flag:标志字段,表示帧的开始或者结束,由二进制序列01111110构成,即0x7E,
Address:地址字段,由二进制序列11111111构成,是标准的广播地址,
Control:控制字段,由二进制序列00000011构成,要求用户数据传输采用UI无编号帧,地址字段和控制字段所填内容为固定值,通过PPP的LCP协商,可以节省2字节的传输。由于没有字段来传送数据帧的序号,PPP默认情况下不提供基于序号和应答机制的可靠传输。Protocol:协议字段,用来识别PPP帧的Information字段所封装的协议。
Protocol协议取值有0xc021、0xc023、0xc223、0xc8021、0xc0021五种。
0xc021:信息域中承载的是LCP的数据报文,
0xc023:信息域中承载的是PAP的认证报文,
0xc223:信息域中承载的是CHAP的认证报文,
0xc8021:信息域中承载的是NCP的数据报文,
0xc0021:信息域中承载的是IP数据报文。
Information:包含Protocol字段中指定的协议数据报。
FCS:帧校验序列字段,用于 PPP数据帧传输的正确性进行CRC检测。
因PPP是面向字符型的,所以UI帧的长度是整数字节。在同步线路上,PPP直接使用HDLC的UI帧,也使用HDLC的透明传输方式“0比特插入和删除算法”。
2、异步上的PPP封装
PPP在异步线路上传输时使用的帧与同步传输是一样的,差别在于成帧和透明传输使用的方法。因为起止式异步传输是面向字符的,PPP在异步线路上不能采用HDLC所使用面向比特的首位标志成帧算法,即使用0x7E作为帧的首位标志,也不能使用“0比特插入和删除算法”实现透明传输。
3、以太网上的PPP封装
随着xDSL技术、宽带接入技术的广泛应用,PPP又被广泛用于以太网上,这就是PPPoE。PPPoE在两个阶段以太网帧的类型域的值是不同的,在发展阶段,以太网的类型域填充为0x8863,在会话阶段,以太网的类型与填充为0x8864。PPPoE数据报文最开始的4位为版本域,紧接在版本域后的4位是类型域。
3.4.2 PPP的子层
为了适应多重物理和网络层,PPP划分了相应的LCP子层和NCP子层以完成不同功能。PPP首先通过发送LCP报文来配置和测试链路,建立起LCP连接。链路层激活后,需要的话可以进行认证,最后要通过发送相应的NCP报文建立相应的网络子层连接。
1、 LCP
LCP位于物理层之上,负责设备之间链路的创建、维护和终止。
2、 NCP
NCP主要完成点对点通信设备之间网络子层所需参数的配置,功能是网络层地址协商。