链路层-PPP:点对点协议(2)
PPP数据帧的格式看上去很像ISO的HDLC(高层数据链路控制)标准。下图就是PPP数据帧的格式
每一帧都以标志字符0×7e开始和结束。紧接着是一个地址字节,值始终是0xff,然后是一个值为0×03的控制字节。
接下来是协议字段,类似于以太网中类型字段的功能。当它的值为0×0021时,表示信息字段是一个IP数据包;值为0xc021时,表示信息字段是链路控制数据;值为0×8021时,表示信息字段是网络控制数据。
CRC字段(或FCS,帧检验序列)是一个循环冗余检验码,以检测数据帧中的错误。
由于标志字符的值是0×7e,因此当该字符出现在信息字段中时,PPP需要对它进行转义。在同步链路中,该过程是通过一种称作比特填充(bit stuffing)的硬件技术来完成的。在异步链路中,特殊字符0×7d用作转义字符。当它出现在PPP数据帧中时,那么紧接着的字符的第6个比特要取其补码。具体实现过程如下:
1)当遇到字符0×7e时,需要连续传送两个字符:0×7d和0×5e,以实现标志字符的转义。
2)当遇到转义字符0×7d时,需连续传送两个字符:0×7d和0×5d,以实现转义字符的转义。
3)默认情况下,如果字符的值小于0×20(比如,一个ASCII控制字符),一般都要进行转义。例如,遇到字符0×01时需连续传送0×7d和0×21两个字符(这时,第6个比特取补码后变为1,而前面两种情况均把它变为0)。

















