⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc1661.txt

📁 RFC规范的翻译稿
💻 TXT
📖 第 1 页 / 共 5 页
字号:
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确实有着不同的功能。然而他们总是引起相同的转换。

Events Actions

Up = lower layer is Up tlu = This-Layer-Up
Down = lower layer is Down tld = This-Layer-Down
Open = administrative Open tls = This-Layer-Started
Close= administrative Close tlf = This-Layer-Finished

TO+ = Timeout with counter > 0 irc = Initialize-Restart-Count
TO- = Timeout with counter expired zrc = Zero-Restart-Count

RCR+ = Receive-Configure-Request (Good) scr = Send-Configure-Request
RCR- = Receive-Configure-Request (Bad)
RCA = Receive-Configure-Ack sca = Send-Configure-Ack
RCN = Receive-Configure-Nak/Rej scn = Send-Configure-Nak/Rej

RTR = Receive-Terminate-Request str = Send-Terminate-Request
RTA = Receive-Terminate-Ack sta = Send-Terminate-Ack

RUC = Receive-Unknown-Code scj = Send-Code-Reject
RXJ+ = Receive-Code-Reject (permitted)
or Receive-Protocol-Reject
RXJ- = Receive-Code-Reject (catastrophic)
or Receive-Protocol-Reject
RXR = Receive-Echo-Request ser = Send-Echo-Reply
or Receive-Echo-Reply
or Receive-Discard-Request
4-1 状态迁移图
  全部的状态转换如下表。状态在水平轴,事件在垂直轴。状态转换和动作备表示成:动作/新状态的形式。多个动作用逗号分隔,无先后顺序。状态后面跟的那个字母是说明性的脚注。短划线('-')代表无效的转换。

| State
| 0 1 2 3 4 5
Events| Initial Starting Closed Stopped Closing Stopping
------+-----------------------------------------------------------
Up | 2 irc,scr/6 - - - -
Down | - - 0 tls/1 0 1
Open | tls/1 1 irc,scr/6 3r 5r 5r
Close| 0 tlf/0 2 2 4 4
|
TO+ | - - - - str/4 str/5
TO- | - - - - tlf/2 tlf/3
|
RCR+ | - - sta/2 irc,scr,sca/8 4 5
RCR- | - - sta/2 irc,scr,scn/6 4 5
RCA | - - sta/2 sta/3 4 5
RCN | - - sta/2 sta/3 4 5
|
RTR | - - sta/2 sta/3 sta/4 sta/5
RTA | - - 2 3 tlf/2 tlf/3
|
RUC | - - scj/2 scj/3 scj/4 scj/5
RXJ+ | - - 2 3 4 5
RXJ- | - - tlf/2 tlf/3 tlf/2 tlf/3
|
RXR | - - 2 3 4 5

| State
| 6 7 8 9
Events| Req-Sent Ack-Rcvd Ack-Sent Opened
------+-----------------------------------------
Up | - - - -
Down | 1 1 1 tld/1
Open | 6 7 8 9r
Close|irc,str/4 irc,str/4 irc,str/4 tld,irc,str/4
|
TO+ | scr/6 scr/6 scr/8 -
TO- | tlf/3p tlf/3p tlf/3p -
|
RCR+ | sca/8 sca,tlu/9 sca/8 tld,scr,sca/8
RCR- | scn/6 scn/7 scn/6 tld,scr,scn/6
RCA | irc/7 scr/6x irc,tlu/9 tld,scr/6x
RCN |irc,scr/6 scr/6x irc,scr/8 tld,scr/6x
|
RTR | sta/6 sta/6 sta/6 tld,zrc,sta/5
RTA | 6 6 8 tld,scr/6
|
RUC | scj/6 scj/7 scj/8 scj/9
RXJ+ | 6 6 8 9
RXJ- | tlf/3 tlf/3 tlf/3 tld,irc,str/5
|
RXR | 6 7 8 ser/9
  那些其中运行着重启计时器的状态,是可以由存在的TO事件确认的。只有 Send-Configure-Request,Send-Terminate-Request和Zero-Restart-Count动作才启动或者重新启动重启定时器。当从任意一个定时器运行的状态转换到一个定时器不运行的状态时,重启定时器(Restart timer)停止。
  根据消息通过体系机构而不是信号通知体系机构,(人们)定义了事件和动作。如果希望一个动作去控制特定的信号(如DTR),那么就可能需要额外的动作。
  [p] 被动选项;见Stopped状态讨论。
  [r] 重启选项;见Open事件讨论。
  [x] 交叉连接;见RCA事件讨论。
4-2 状态
  下面是每个自动机状态的详细描述。
  Initial(初始):
  在初始状态,下层是不可获得的(Down),并且没有Open发生。Restart timer不在该状态下运行。
  Starting(启动):
  启动状态是初始状态的Open相似物。一个管理的Open被初始化,但下层仍旧不可用(Down)。Restart timer不在该状态下运行。
  当下层变为可用(Up)时,发送一个Configure-Request。
  Closed(关闭):
  在关闭状态,链路时可用的(Up),但是没有Open发生。Restart timer不在该状态下运行。当收到Configure-Request packets时,发送一个Terminate-Ack。Terminate-Acks被静静的丢弃,以防止造成循环。
Stopped(停止)
  停止状态是关闭状态的Open相似物。当在This-Layer-Finished动作之后,或是发送Terminate-Ack之后,自动机正等待Down事件的时候,进入该状态。Restart timer不在该状态下运行。
  当收到Configure-Request packets时,发送一个适当的响应。当收到其他packets时,发送一个Terminate-Ack。Terminate-Acks被静静的丢弃,以防止造成循环。
  基本原理:
  停止状态是链路终止,链路设定失败,和其他自动机失败模式的一个接合(中间)状态。这些各自独立的状态被潜在的联合起来。
  在Down事件应答(从This-Layer-Finished动作)和Receive-Configure-Request事件之间,有一种竞赛条件。当Configure-Request在Down事件之前到来,代替Down事件的是自动机返回到Starting状态。这防止了由重复产生的攻击。
  执行选项:
  在peer对Configure-Requests响应失败之后,一个执行可以被动的等待peer发送Configure-Requests。在这种情况下,在状态Req-Sent,Ack-Rcvd,和Ack-Sent里,动作This-Layer-Finished不用于TO- 事件。
  这个选项对于专用电路或者没有可用的状态信号的电路有用,但禁止用于交换电路。
  Closing(结束)
  在结束状态里,为了终止连接作了一次尝试。发送了一个Terminate-Request,并运行了Restart timer,但没有收到Terminate-Ack。
  当收到Terminate-Ack时,就进入了Closed状态。当Restart timer期满时,传输一个新的Terminate-Request,并且Restart timer被重新启动。在Restart timer达到Max-Terminate时间后,就进入了Closed状态。
  Stopping(停下)
  停下状态是结束状态的Open相似物。发送了一个Terminate-Request,并运行了Restart timer,但没有收到Terminate-Ack。
  基本原理:
  停下状态提供了一个很好的机会在允许新的通信量之前终止链路。在链路终止后,经由Stopped或Starting状态,会出现一个新的配置(设定)。
  Request-Sent(要求-发送)
  在要求-发送状态,尝试着配置(设定)连接。发送了一个Terminate-Request,并运行了Restart timer,但没有收到Terminate-Ack。
  Ack-Received(Ack-接收)
  在Ack-接收状态,发送了一个Configure-Request,接收了一个Configure-Ack。因为还没有发送Configure-Ack,所以Restart timer仍旧运行。
  Ack-Sent(Ack-发送)
  在Ack-发送状态,Configure-Request和Configure-Ack都被发送了。但没有接收到Configure-Ack。因为还没有接收到Configure-Ack,所以Restart timer仍旧运行。
  Opened(开启)
  在开启状态,发送了一个Configure-Ack,也接收了一个Configure-Ack。Restart timer不运行。
当进入该状态时,执行应该通知上层,现在Up。相反,当离开该装态时,执行应该通知上层,现在Down。
  4-3 事件
  自动机里的状态转换和动作是由事件引起的。
  Up:
  当低层指出已准备好携带packets时,发生此事件。
  典型的,该事件被调制解调器处理或呼叫过程,或被一些其他的连接于物理媒体的PPP用于通知LCP,链路正进入链路建立阶段。
  它也能被LCP用于通知每个NCP,链路进入网络层协议阶段。即,来自LCP的动作This-Layer-Up触发了NCP中的Up事件。
  Down:
  当低层指出不再准备携带packets时,发生此事件。
  典型的,该事件被调制解调器处理或呼叫过程,或被一些其他的连接于物理媒体的PPP用于通知LCP,链路正进入链路死亡阶段。
  它也能被LCP用于通知每个NCP,链路离开网络层协议阶段。即,来自LCP的动作This-Layer-Down触发了NCP中的Down事件。
  Open:
  该事件指出链路的通信量是可以管理的:即,网络管理者(人或程序)指出链路允许被Opened。当这一事件发生,且链路不处于Opened状态时,自动机则试图给peer发送配置packets。
  如果自动机不能开始配置(下层是Down,或者前一个Close事件还没有结束),那么链路的建立将被自动的推迟。
  当收到一个Terminate-Request,或者其他导致链路不可用的事件发生时,自动机将进入一个状态,在那里链路准备re-open。无需额外的管理干涉。
  执行选项:
  经验表明:当用户想就链路进行重新谈判时,他们将额外的执行一条Open命令。这表明新的值将被协商。既然这不是Open事件的含义,那就暗示着在Opened, Closing, Stopping或Stopped状态,当执行一条Open用户命令时,执行发行一个Down事件,紧接着一个Up事件。一定要注意不能有从另一个源发生的Down事件的干涉。紧接着Up事件的Down事件将引起一次有秩序的链路的再协商(通过先前进到Starting状态,再进入到Request-Sent状态)。该再协商没有负面影响。
  Close:
  该事件意味着链路没有通信量。即,网络管理者(人或程序)指示链路不允许被开放。当该事件发生且链路不处于Closed状态时,自动机试图终止连接。拒绝重新配置链路的尝试,直到一个新的Open事件发生。
  执行笔记:
  当认证失败,链路应该被终止,以防止受到重复性的攻击和为其他用户服务。这可以通过模仿一个Close事件给LCP,然后紧跟着一个Open事件来完成,既然链路在管理上是可被访问的。一定要注意不能有从另一个源发生的Down事件的干涉。
  紧接着Up事件的Down事件将引起一次有秩序的链路的再协商(通过先前进到Closing状态,再进入到Stopping状态),This-Layer-Finished动作能断开链路的连接。在Stopped或Starting状态,自动机等待下一次连接尝试。
  Timeout (TO+,TO-):
  该事件表明Restart timer期满。Restart timer用于记录对Configure-Request和Terminate-Request packets的响应的时间。
  TO+事件表明Restart counter持续大于零,它触发了相应的Configure-Request或Terminate-Request packet的发送。
  TO-事件表明Restart counter持续不大于零,不再需要发送packets。
  Receive-Configure-Request (RCR+,RCR-):
  当收到一个来自peer的Configure-Request packet时,该事件发生。Configure-Request packet表明希望开创一个连接并且可以指定配置选项。
  RCR+事件表明Configure-Request是可接受的,并且触发相应的Configure-Ack的传输。
  RCR-事件表明Configure-Request是不可接受的,并且触发相应的Configure-Nak 或Configure-Reject的传输。
  执行笔记:
  这些事件可以发生在已经处于Opened状态的连接上。该执行必须准备立即再协商配置选项。
  Receive-Configure-Ack (RCA):

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -