PPP协议规范

2008-02-22 12:36:38来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

PPP协议规范

1 介绍

PPP是为在同等单元之间传输数据包这样的简单的链路而设计的。这种链路提供全双工操作,并按照顺序传递数据包。(人们)有意让PPP为基于各种主机、网桥和路由器的简单连接提供一种共通的解决方案。

封装:

PPP封装提供了不同网络层协议同时通过统一链路的多路技术。精心的设计PPP封装,使其保有对常用支持硬件的兼容性。当使用默认的类HDLC帧(HDLC-like framing)时,仅需要8个额外的字节,就可以形成封装。在带宽需要付费时,封装和帧可以减少到2或4个字节。为了支持高速的执行,默认的封装只使用简单的字段,多路分解只需要对其中的一个字段进行检验。默认的头和信息字段落在32-bit边界上,尾字节可以被填补到任意的边界。

PPP-1.bmp (1826 bytes)

链路控制协议(LCP):

为了在一个很宽广的环境内能足够方便的使用,PPP提供了LCP。LCP用于就封装格式选项自动的达成一致,处理数据包大小的变化,探测looped-back链路和其他普通的配置错误,以及终止链路。提供的其他可选设备有:对链路中同等单元标识的认证,和当链路功能正常或链路失败时的决定。

网络控制协议:

点对点连接可能和当前的一族网络协议产生许多问题。例如,基于电路交换的点对点连接(比如拨号模式服务),分配和管理IP地址,即使在LAN环境中,也非常困难。这些问题由一族网络控制协议(NCP)来处理,每一个协议管理着各自的网络层协议的特殊需求。

配置:

有意使PPP链路很容易配置。通过设计,标准的默认值处理全部的配置。执行者可以对默认配置进行改进,它被自动的通知给其同等单元而无需操作员的干涉。最终,操作员可以明确的为链路设定选项,以便其正常工作。

2 PPP封装

PPP封装用于消除多协议datagrams的歧义。封装需要帧同步以确定封装的开始和结束。提供帧同步的方法在参考文档中。

PPP封装的概要如下所示。字段的传输从左到右。

协议字段:

协议字段由一个或两个字节组成。它的值标识着压缩在packet的信息字段里的datagram。字段中最有意义位(最高位)被首先传输。该字段结构与ISO 3309地址字段扩充机制相一致。该字段必须是奇数:最轻意义字
节的最轻意义位(最低位)必须等于1。另外,字段必须被赋值,以便最有意义字节的最轻意义位为0。收到的不符合这些规则的frames,必须被视为带有不被承认的协议。

在范围"0***"到"3***"内的协议字段,标识着特殊packets的网络层协议。在范围"8***" 到"b***"内的协议字段,标识着packets属于联合的(相关的)网络控制协议(NCP)。在范围"4***"到"7***"内的协议字段,用于没有相关NCP的低通信量协议。在范围"c***"到"f***"内的协议字段,标识着使用链路层控制协议(例如LCP)的packets。到目前为止,协议字段的值在最近的"Assigned Numbers" RFC [2]里有详细的说明。本说明书保留以下的值:

  Value (in hex)     Protocol Name
  0001          Padding Protocol填料协议
  0003 to 001f      reserved (transparency inefficient)保留(透明度效率低的)
  007d          reserved (Control Escape)保留(控制逃逸)
  00cf          reserved (PPP NLPID)保留(PPP NLPID)
  00ff          reserved (compression inefficient)保留(压缩效率低的)
  8001 to 801f      unused(未使用)
  807d          unused(未使用)
  80cf          unused(未使用)
  80ff          unused(未使用)
  c021          Link Control Protocol链路控制协议
  c023          Password Authentication Protocol密码认证协议
  c025          Link Quality Report链路品质报告
  c223          Challenge Handshake Authentication Protocol挑战-认证握手协议

新的协议的开发者必须从the Internet Assigned Numbers Authority (IANA),atIANA@isi.edu.处获得号码。

信息字段:

信息字段是0或更多的字节。对于在协议字段里指定的协议,信息字段包含datagram。信息字段的最大长度,包含填料但不包含协议字段,术语叫做最大接收单元(MRU),默认值是1500字节。若经过协商同意,也可以使用其它的值作为MRU。

填料:

在传输的时候,信息字段会被填充若干字节以达到MRU。每个协议负责根据实际信息的大小确定填料的字节数。

3 PPP链路操作

3-1 概述

为了通过点对点链路建立通信,PPP链路的每一端,必须首先发送LCP packets以便设定和测试数据链路。在链路建立之后,peer才可以被认证。然后,PPP必须发送NCP packets以便选择和设定一个或更多的网络层协议。一旦每个被选择的网络层协议都被设定好了,来自每个网络层协议的datagrams就能在连路上发送了。链路将保持通信设定不变,直到外在的LCP和NCP关闭链路,或者是发生一些外部事件的时候(休止状态的定时器期满或者网络管理员干涉)。

3-2 阶段划分框图

在设定、维持和终止点对点链路的过程里,PPP链路经过几个清楚的阶段,如框图所示。这张图并没有给出所有的状态转换。

PPP-2.bmp (12386 bytes)

3-3 链路死亡(物理连接不存在)

链路一定开始并结束于这个阶段。当一个外部事件(例如载波侦听或网络管理员设定)指出物理层已经准备就绪时,PPP将进入链路建立阶段。在这个阶段,LCP自动机器将处于初始状态,向链路建立阶段的转换将给LCP自动机器一个UP事件信号。

执行记录:

典型的,在与调制解调器断开之后,链路将自动返回这一阶段。在用硬件实现的链路里,这一阶段相当的短--仅够侦测设备的存在。

3-4 链路建立阶段

LCP用于交换配置信息包(Configure packets),建立连接。一旦一个配置成功信息包(Configure-Ack packet)被发送且被接收,就完成了交换,进入了LCP开启状态。所有的配置选项都假定使用默认值,除非被配置交换所改变。有一点要注意:只有不依赖于特别的网络层协议的配置选项才倍LCP配置。在网络层协议阶段,个别的网络层协议的配置由个别的网络控制协议(NCP)来处理。在这个阶段接收的任何非LCP packets必须被silently discarded(静静的丢弃)。收到LCP Configure-Request(LCP配置要求)能使链路从网络层协议阶段或者认证阶段返回到链路建立阶段。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:POP3 邮局协议-版本3

下一篇:用户数据报协议(UDP)