GPRS数据传输设计(五)PPP协议概述

3.3 PPP协议

随着互连网的发展,网络上出现了大量的支持TCP/IP协议的主机,这些主机中的大部分通过局域以太网连接,其它的大部分主机则通过公共广域网(比如X.25或公用数据网)进行连接。很少有主机通过串行链路建立连接,然而事实上串行链路是一种最古老的通信方法,绝大多数主机都支持串行链路。其中的原因就是没有一个标准的封装协议。点对点通信协议(Point to Point Protocol, PPP)就是因此而产生的。PPP提供了一种在位同步链路和8位异步链路上封装数据的方法,只要这些链路是全双工的,即使是电路交换网或专用网络也可以应用。PPP可以支持很多硬件并且提供了用于实现透明传输的转义机制,同时PPP可以支持不同的网络层协议在其上传输,因此PPP成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。

PPP提供了一种通过串行点对点连接传输数据包的方法。它主要包括三个部分:

1.通过串行链路封装数据包的方法。

2.用于建立、配置和测试数据连接的链路控制协议(Link Control Protocol, LCP)。

3.用于配置不同网络层协议的网络控制协议簇(Network Control Protocols, NCPS)。

3.3.1 PPP数据帧格式

PPP协议是在高级数据链路控制协议(HDLC)的基础上设计的,因此,其基本格式与HDLC相同,只是地址域和控制域已经被固定,PPP数据帧格式如表3-1:

 

 

  •       标志域

标志域为一个字节,表示数据帧的开始或结束。标志序列为16进制7E。它是数据帧间隔,两个数据帧之间只要一个标志即可,两个连续的标志表示一个空数据帧。

  •       地址域

地址域为一个内容为16进制FF的字节,该地址为广播地址,所有的终端都必须接受并使用该地址,使用其它地址的数据帧应该被忽略。

  •       控制域

控制域为一个字节,内容为16进制0x03,对于包含其它内容的数据帧应该忽略。

  •       协议域

协议域为两个字节,它表示PPP封装的信息域内的信息使用的协议。下面给出常用的几种协议编号,详细信息可以参考文献[26]:(协议编号为16进制形式)

0021: IP                     8021: IP控制协议

C021: 连接控制协议          C023: 密码鉴权协议PAP

C223: 握手挑战鉴权协议

  •       信息域

信息域的长度是可变的,其中的内容是按协议域指定的协议封装的用户数据,信息域的最大长度默认是1500字节,在经过双方协商后,可以更改为其它值。

  •       校验域

校验域(Frame Check Sequence, FCS)为2个字节,它计算的是在没有插入任何转义符号前的地址域、控制域、协议域、信息域内的数据,不包括标志域和校验域。在发送数据时,依次计算上述内容,然后将计算后的结果放入校验域;在接收时,首先去除转义字符,然后再计算校验。在接收中计算校验时可以将校验域也计算在内,计算的结果应该是固定值F0B8(16进制),有关该算法的具体实现,见文献[26]。

  •       空闲

在链路空闲时间中,异步链路可以发送全1表示链路空闲,同步链路应该发送标志序列表示空闲。由于PPP采用起始结束标志来表示数据帧的起始和结束,而在PPP的信息字段和FCS字段都可能包含7E,这样可能会被误认为是开始/结束标志,所以PPP中引入了一个转义序列。转义序列包括一个转义字符7D,后面是原来的值与0x20异或的结果,即7E转义为7D 5E。而发送7D时则转义为7D 5D。同样,这种转义方式还保护控制字符,比如XOFF是底层驱动用来中断串行传输的,为了避免引起混淆,将0x14用转义序列7D 34发送。默认的,0x00到0x1F之间的所有值都要转义,不过,经过协商后可以去除部分需要转义的值。 

3.3.2 拨号建立连接的过程

拨号建立连接的过程就是PPP操作的过程。为了在一个点对点链路上建立通信,通信双方必须发送链路控制协议数据包来配置和测试链路。当链路建立后,通信的一方可能需要进行鉴权,然后使用NCP数据包来选择和配置网络层使用的协议。当这些过程完成后,通信链路建立完毕,通信双方就可以开始发送数据了。这个链路将一直存在直到通信的一方发送LCP、NCP数据包关闭链路或发生其它意外事故。在本节我们将介绍PPP操作过程中的各个阶段,其中涉及到的协议将在下文继续说明。在建立、维持和终止PPP连接的过程中,经历了若干个阶段,如图3-3所示:

 

 

1. 链路死亡阶段(物理层不存在)

连接通常开始和结束于这个阶段。在链路死亡阶段,通信链路不存在。当有外部操作要启动连接时,PPP开始进入建立阶段并向LCP协议的状态机发送UP事件。

2.链路建立阶段

链路建立阶段使用LCP协议协商通信过程中所需要的配置信息。这些信息包括:通信过程中的数据包的最大长度、异步通信中的控制字符映射、协议和地址控制域压缩、鉴权协议以及链路检测协议等。这些选项是链路建立阶段后必须使用的。如果某些选项没有进行协商则认为使用默认值。值得注意的是,此时协商的内容都是与网络层协议无关的选项,与网络有关的选项要在网络层协议阶段使用特定的协议进行协商。当通信的双方都收到对方的确认信息后,通信链路建立完毕。

3. 鉴权阶段

鉴权阶段不是必须的,但是在很多系统都需要进行鉴权,以验证客户端的身份。需要鉴权的主机在链路建立阶段发送配置鉴权协议的选项。目前,PPP中支持的鉴权协议包括密码鉴权协议(PAP)和挑战握手协议(CHAP)。如果鉴权通过则进入网络层协商阶段,否则直接进入终止阶段。

4. 网络层协议阶段

当进入网络协议阶段后,首先必须使用特定的网络配置协议进行网络层协议配置,比如如果网络层使用IP协议,则使用IP控制协议(IP Control Protocol, IPCP)进行网络配置,以获得相关的网络协议信息。当网络协议配置通过后,就可以使用网络协议进行数据传输了,此后PPP中携带的数据将是网络协议数据。

5. 终止阶段

PPP可以在任何时候终止连接。终止连接采用LCP协议,当链路关闭时,PPP通知相应的网络层协议采取相应的行动。当通信双方交换终止数据包后,整个终止过程就完成了,PPP进入链路死亡阶段。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值