点到点协议
本文由华中理工大学 电子系 aijing 翻译,转载请附作者
1.简介
点到点协议是为在两个对等实体间传输数据包建立简单连接而设计的。这种连接提供了同
时的双向的全双工操作,并且假定数据包是按顺序投递的。PPP连接提供了一种广泛的
解决办法,方便地将多种多样不忘的值作为最大接收单元的值。
填充域
在传输中,信息域可能会由附加任意数目的字节填充至最大接收单元长度。这由
每个协议负责将信息域和填充域区分开来。
3.PPP连接操作
3.1概述
为了在点到点连接中建立通信,PPP连接的每一端都必须首先发送LCP数据
包来配置和测试数据连接。在连接建立后,对等实体还有可能需要认证。
然后,PPP必须发送NCP数据包来选择一种或多种网络层协议来配置。一旦
被选中的网络层协议被配置好后,该网络层的数据报就可以在链路上传送了。
链路将保持可配置的状态直到有LCP数据包和NCP数据包终止连接,或者由
其他外部事件发生时(例如非活动时钟计时已满或网络管理人员的干涉)。
3.2状态图
在配置维持和终止点到点连接的过程中,PPP连接经历了几个不同的阶段,这
些阶段由以下简化的状态图说明:
+------+ +-----------+ +--------------+
| | 连接 | | 已打开 | | 成功/无
| 死亡 |------->| 建立 |---------->| 认证 |--+
| | | | | | |
+------+ +-----------+ +--------------+ |
^ | | |
| 失败 | 失败 | |
+<--------------+ +----------+ |
| | |
| +-----------+ | +---------+ |
| 断开 | | | 正在关闭 | | |
+------------| 终止 |<---+<----------| 网络 |<-+
| | | |
+-----------+ +---------+
3.3连接死亡阶段(物理层未准备好)
一个连接的开始和结束都要经历此阶段。当一个外部事件(例如检测到载波或网
络管理人员配置)指示物理层已准备好并可以使用时,PPP将进入建立连接阶段。
在此阶段,LCP协议自动机(后面将提到)处在初始或正在开始状态。当进入
到建立连接阶段后会引发UP事件通知LCP协议自动机。
应用注意事项:
典型的,一个连接将在调制解调器连接断开后自动返回到此阶段。在使用电话线
的连接情况下,这个阶段将相当的短,短到很少有足够的时间能用仪器检测到它的存在。
3.4建立连接阶段
链路控制协议(LCP)通过交换配置数据包建立连接。当LCP协议自动机进
入已打开状态,并且发送和接收过配置确认数据包时,为建立连接的交换过程才完成。
所有的配置选项都被假定为缺省值,除非在配置交互的过程中改变。关于LCP
配置选项的进一步讨论参见后面的章节。
有一点是非常重要的,就是那些只有与特定网络层协议无关的选项才能被LCP
配置。配置单独的网络层协议是在网络层协议阶段由相应的网络控制协议来配置。
在此阶段接收到的任何非LCP数据包将被静默丢弃。
接收到LCP配置请求数据包将引起PPP连接从网络层协议阶段或认证阶段返
回到建立连接阶段。
3.5认证阶段
在某些连接时,在允许网络层协议数据包交换之前希望对对等实体进行认证。
缺省时,认证不是必要的。如果应用时希望对等实体使用某些认证协议进行认证
,这种要求必须在建立连接阶段提出。
认证阶段应该紧接在建立连接阶段后。然而,可能有连接质量的决定并行出现。
应用时绝对不允许连接质量决定数据包的交换使认证有不确定的延迟。
认证阶段后的网络层协议阶段必须等到认证结束后才能开始。如果认证失败,将转而进入
终止连接阶段。
仅仅是连接控制协议、认证协议、连接质量监测的数据包才被允许在此阶段中出现。所有
其它在此阶段中接收到的数据包都将被静默丢弃。
应用注意事项:
应用时不能简单的因为超时或缺少回应就认为认证失败。应该允许重传,仅当试
图认证的次数超过一定的限制时才进入终止连接阶段。
如果对方拒绝认证,己方有权进入终止连接阶段。
3.6网络层协议阶段
一旦PPP完成了上述阶段,每一个网络层协议(例如IP、IPX、
AppleTalk)必须单独的由相应的网络控制协议(NCP)配置。
每一个网络控制协议可以随时打开或关闭。
应用注意事项:
因为可能一开始就会使用需要花费大量时间的连接质量决定,所以当等待对方进
行网络控制协议配置时应该避免使用固定的超时限制。
当一个网络控制协议自动机达到已打开的状态时,PPP连接上就可以传送相应
的网络层协议数据包。当接收到的任何所支持的网络层协议数据包时,只要相应的网络控
制协议状态自动机未进入已打开状态,都将作静默丢弃处理。
应用注意事项:
只要LCP协议状态自动机处于已打开的状态,任何接收到的不支持的协议数据
包都将返回协议拒绝包(后面将提到)。所支持的协议数据包都将静默丢弃。
在此阶段,连接上流通的包括LCP数据包、NCP数据包和网络层协议数据包。
3.7终止连接阶段
PPP连接可以随时终止。原因可能是载波丢失、认证失败、连接质量失败、超
时计数器溢出,或者网络管理员关闭连接。
LCP通过交换连接终止包来终止连接。当连接正在被终止的时候,PPP会通
知网络层以便它采取相应的动作。
在交换过终止请求包后,将通知物理层断开以便使连接真正终止,尤其是在认证失败的时
侯。发送连接终止请求包的一方应该等待接收到连接终止确认包之后或超时计数器计满之
后再断开。收到连接终止确认包的一方应该等待对方首先断开,并且决不能断开直到至少
有一个超时计时器在发送了终止连接确认包之后溢出。然后PPP应该进入连接死亡阶段
。
在此阶段所有接收到的非LCP数据包都将被静默丢弃。
应用注意事项:
关闭时使用LCP就已足够。并不需要每一个NCP都发送终止连接数据包。相
反的,一个NCP协议自动机关闭并不能关闭整个PPP连接,即使这个NCP协议自动
机是当前唯一处于已打开状态。
4. 选项协商自动机
有限状态自动机由事件、动作、状态迁移定义。事件包括接收外部命令,诸如打开、关闭
、超时计时器溢出和接收到对方发送过来的数据包。动作包括打开超时计数器和向对方发
送数据包。
有些类型的数据包,诸如配置否定包和配置拒绝包,或者编号拒绝包和协议拒绝包,或者
回应请求包、回应回答包和丢弃请求包在自动机的描述中都是不可区分的。正如后面将要
提到的,虽然这些不同类型的数据包会引起相同的状态迁移,但它们确实起到了不同的作
用。
事件 动作
Up = 低层已连接 tlu = 该层已连接
Down = 低层已断开 tld = 该层已断开
Open = 打开连接 tls = 该层已开始连接
Close= 关闭连接 tlf = 该层已关闭连接
TO+ = 超时计时器溢出且超时计数器值大于零 irc = 初始化超时计数器
TO- = 超时计时器溢出且超时计数器值小于零 zrc = 超时计数器清零
RCR+ = 收到正确的配置请求包 scr = 发送配置请求包
RCR- = 收到不正确的配置请求包
RCA = 收到配置确认包 sca = 发送配置确认包
RCN = 收到配置否定包/拒绝包 scn = 发送配置否定包/拒绝包
RTR = 收到终止请求包 str = 发送终止请求包
RTA = 收到终止确认包 sta = 发送终止确认包
RUC = 收到未知编码包 scj = 发送编码拒绝包
RXJ+ = 收到编码拒绝包 (允许的)
或受到协议拒绝包
RXJ- = 收到编码拒绝包 (糟糕的)
或受到协议拒绝包
RXR = 收到回应请求包 ser = 发送回应回答包
或者收到回应回答包
或者收到丢弃请求包