第二章 链路层 2.6PPP:点对点协议

PPP,点对点协议修改了SLIP协议中的所有缺陷。包括以下三个部分:

1在串行链路上封装IP数据报的方法。PPP既支持数据为8位和无奇偶检验的异步模式(如大多数计算机上都普遍存在的串行接口),还支持面向比特的同步链接。

2建立、配置及测试数据链路的链路控制协议(LCP:Link Control Protocol)。它允许通信双方进行协商,以确定不同的选项。

3 针对不同网络层协议的网络控制协议(NCP:Network Control Protocol)体系。当前RFC定义的网络层有IP、OSI网络层、DECnet以及AppleTalk。例如,IP NCP允许双方

商定是否对报文首部进行压缩,类似于CSLIP(缩写词NCP也可用在TCP的前面)。

RFC 1548描述了报文封装的方法和链路控制协议。

RFC 1332描述了针对IP的网络控制协议。

PPP数据帧的格式看上去很像ISO的HDLC(高层数据链路控制)标准。下图是PPP数据帧的格式:



每一帧都以标志字符0x7e开始和结束

地址字节:值是0xff

控制字节:值为0x03

协议字段:类似于以太网中类型字段的功能。

当它的值为0x0021时,表示信息字段是一个IP数据报

值为0xc021时,表示信息字段是链路控制数据

值为0x8021时,表示信息字段是网络控制数据

CRC字段(或FCS,帧检验序列)是一个循环冗余检验码,以检测数据帧中的错误。

由于标志字符的值是0x7e,因此当该字符出现在信息字段中时,PPP需要对它进行转义。

在同步链路中,该过程是通过一种称作比特填充(bit stuffing)的硬件技术来完成的。

在异步链路中,特殊字符0x7d用作转义字符。

当它出现在PPP数据帧中时,那么紧接着的字符的第6个比特要取其补码,具体实现过程如下:

1当遇到字符0x7e时,需连续传送两个字符:0x7d和0x5e,以实现标志字符的转义。

2当遇到转义字符0x7d时,需连续传送两个字符:0x7d和0x5d,以实现转义字符的转义。

3默认情况下,如果字符的值小于0×20(比如,一个ASCII控制字符),一般都要进行转义。

例如,遇到字符0×01时需连续传送0x7d和0×21两个字符(这时,第6个比特取补码后变为1,而前面两种情况均把它变为0)。

这样做的原因是防止它们出现在双方主机的串行接口驱动程序或调制解调器中,因为有时它们会把这些控制字符解释成特殊的含义。另一种可能是用链路控制协议来指定是否需

要对这32个字符中的某一些值进行转义。默认情况下是对所有的32个字符都进行转义。

与SLIP类似,由于PPP经常用于低速的串行链路,因此减少每一帧的字节数可以降低应用程序的交互时延。

利用链路控制协议,大多数的产品通过协商可以省略标志符和地址字段,并且把协议字段由2个字节减少到1个字节。

如果我们把PPP的帧格式与前面的SLIP的帧格式进行比较会发现,PPP只增加了3个额外的字节:1个字节留给协议字段,另2个给CRC字段使用。

另外,使用IP网络控制协议,大多数的产品可以通过协商采用Van Jacobson报文首部压缩方法(对应于CSLIP压缩),减小IP和TCP首部长度。

总的来说,PPP比SLIP具有下面这些优点:
1PPP支持在单根串行线路上运行多种协议,不只是IP协议

2 每一帧都有循环冗余检验

3 通信双方可以进行IP地址的动态协商(使用IP网络控制协议)

4 与CSLIP类似,对TCP和IP报文首部进行压缩

5 链路控制协议可以对多个数据链路选项进行设置

为这些优点付出的代价是在每一帧的首部增加3个字节,当建立链路时要发送几帧协商数据,以及更为复杂的实现。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值