PPP协议规范

PPP协议规范

1 介绍

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

封装:

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

链路操纵协议(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@https://www.360docs.net/doc/8218620301.html,.处获得号码。

信息字段:

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

填料:

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

3 PPP链路操作

3-1 概述

为了通过点对点链路建立通信,PPP链路的每一端,必须首先发送LCP packets以便设定和测试数据链路。在链路建立之后,peer才能够被认证。然后,PPP必须发送NCP packets以便选择和设定一个或更多的网络层协议。一旦每个被选择的网络层协议都被设定好了,来自每个网络层协议的datagrams就能在连路上发送了。链路将保持通信设定不变,直到外在的LCP和NCP关闭链路,或者是发

生一些外部事件的时候(休止状态的定时器期满或者网络治理员干涉)。

3-2 时期划分框图

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

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配置要求)能使链路从网络层协议时期或者认证时期返回到链路建立时期。

3-5 认证时期

在一些链路上,在同意网络层协议packets交换之前,链路的一端可能需要peer去认证它。默认的,认证是不需要强制执行的。假如一次执行希望peer依照某一特定的认证协议来认证,那么它必须在链路建立时期要求使用那个认证协议。应该尽可能在链路建立后立即进行认证。而,链路质量检查能够同时发生。在一次执行中,禁止因为交换链路质量检查packets而不确定地将认证向后推迟这一做法。在认证完成之前,禁止从认证时期前进到网络层协议时期。假如认证失败,认证者应该跃迁到链路终止时期。

在这一时期里,只有链路操纵协议、认证协议,和链路质量监视协议的packets是被同意的。在该时期里接收到的其他的packets必须被静静的丢弃。

执行记录:

一次执行中,仅仅是因为超时或者没有应答就造成认证的失败是不应该的。认证应该同意某种再传输,只有在若干次的认证尝试失败以后,不得已的时候,才进入链路终止时期。在执行中,哪一方拒绝了另一方的认证,哪一方就要负责开始链路终止时期。

3-6 网络层协议时期

一旦PPP完成了前面的时期,每一个网络层协议(例如IP,IPX,或AppleTalk)必须被适当的网络操纵协议(NCP)分不设定。每个NCP能够随时被打开和关闭。

执行记录:

因为一次执行最初可能需要大力浪的时刻用于链路质量检测,因此当等待peer设定NCP的时候,执行应该幸免使用固定的timeouts。当一个NCP处于Opened状态时,PPP将携带相应的网络层协议packets。当相应的NCP不处于Opened状态时,任何接收到的被支持的网络层协议packets都将被静静的丢弃。

执行记录:

当LCP处于Opened状态时,任何不被该执行所支持的协议packets 必须在Protocol-Reject里返回。只有支持的协议才被静静的丢弃。在那个时期,链路通信量由LCP,NCP,和网络层协议packets的任意可能的联合组成。

3-7 链路终止时期

PPP能够在任意时刻终止链路。引起链路终止的缘故专门多:载波丢失、认证失败、链路质量失败、空闲周期定时器期满、或者治理员关闭链路。LCP用交换Terminate(终止)packets的方法终止链路。当链路正被关闭时,PPP通知网络层协议,以便他们能够采取正确的行动。交换Terminate(终止)packets之后,执行应该通知物理层断开,以便强制链路终止,尤其当认证失败时。Terminate-Request(终止-要求)的发送者,在收到Terminate-Ack (终止-同意)后,或者在重启计数器期满后,应该断开连接。收到Terminate-Request的一方,应该等待peer去切断,在发出Terminate-Request后,至少也要通过一个Restart time(重启时刻),才同意断开。PPP应该前进到链路死亡时期。在该时期收到的任何非LCP packets,必须被静静的丢弃。

执行记录:

LCP关闭链路就足够了,不需要每一个NCP发送一个Terminate packets。相反,一个NCP关闭却不足以引起PPP链路的终止,即使那个NCP是当前唯一一个处于Opened状态的NCP。

4 自动机协商选项

finite-state automaton(有限态自动机)由事件、动作和状态转换定义。事件包括接收外部命令,例如Open and Close(打开和关闭)、重启定时器期满、和接收从peer来的packets。动作包括启动重启定时器和向peer传输packets。一些packets类型

--Configure-Naks(设定-成功)和Configure-Rejects(设定-拒绝),或Code-Rejects(编码-拒绝)和Protocol-Rejects(协议-拒绝),或Echo-Requests(回波-要求),Echo-Replies(回波-应答)和Discard-Requests(丢弃-要求)--在自动机描述中不加以区分。从后面的描述可知,这些packets确实有着不同的功能。然而他们总是引起相同的转换。

相关主题
相关文档
最新文档