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

📄 rfc1134.txt

📁 283个中文RFC文档
💻 TXT
📖 第 1 页 / 共 4 页
字号:


























4.1.3状态迁移表
状态迁移表如下所示,状态位于水平位置,而事件位于垂直位置。状态迁移
和动作则以动作/新状态  形式表达。由同一个事件引发的两个动作则以
action1&action2的形式表达。


Events
State

1
2
3
4
5
6
7

Closed
Listen
Req-Sen
t
Ack-Rc
vd
Ack-Sen
t
Open
Closing
AO
Scr/3
Scr/3
3
4
5
6
Scr/3
PO
2
2
2*
4
5
6
Sta/3*
C
1
1
1*
1
Str/7
Str/7
7
TO
1
2
Scr/3
Scr/3
Scr/3
6
Str/7*
PLD
1
1
1
1
1
1
1
PCR+
Sta/1
Scr&sca
/5
Sca/5
Sca/6
Sca/5
Scr&sca
/5
7
PCR-
Sta/1
Scr&scn
/3
Scn/3
Scn/4
Scn/3
Scr&scn
/3
7
RCA
Sta/1
Sta/2
4
Scr/3
6
Scr/3
7
RCN
Sta/1
Sta/2
Scr/3
Scr/3
Scr/5
Scr/3
7
RTR
Sta/1
Sta/2
Sta/3
Sta/3
Sta/3
Sta/1
Sta/7
RTA
1
2
3
3
3
1
1
RCJ
1
2
1
1
1
1
1
RUC
Scj/1
Scj/1
Scj/1
Scj/1
Scj/1
Scj/1
Scj/1
RER
Sta/1
Sta/2
3
4
5
Ser/1
7
Notes:
RCR+:Receive Configure Request (Good)
RCR-:Receive Configure Request(Bad)
RCJ:Receive Code Reject
RUC:Receive Unknown Code
RER:Receive Echo Request
Scj:Send Code Reply
Ser:Send Echo Reply
*:Special attention necessary,see detailed text:
4.1.4事件
在LCP状态机制中,状态迁移和动作产生都是由事件引起的。一些事件是本
地命令引起的(比如:Active-Open,Passive-Open,Close),另一些则是由于接收
到远端的LCP包引起的,比如RCR,RCA,RCN,RTR,RTA),还有一些是Restart
定时器超时引起的,这些定时器是别的一些时间启动的。
下面是LCP事件的一个列表:
?	Active-Open(AO):AO事件是在本端执行Active-Open命令引起的,命令的
执行者是网络管理员(人或程序)。当此时间发生,LCP应该通过和对端交
换配置包来打开这个连接。
?	Passive-Open(PO):PO事件和AO事件相似,然而,不同于在AO中立即
交换配置包,PO往往是等对端发送第一个包,这只会在LCP对端发生
AO事件时才会发生。
?	Timeout(TO):Timeout事件说明了LCPRestart定时器超时,它是由别的
LCP事件启动的。Restart定时器用于发送Configure-Request和
Terminate-Request包的超时,并在超时时引发Timeout事件,它能触发对
应的Configure-Request和Terminate-Request包的重传。Restart定时器是
可配置的,缺省的值为3秒。
?	Receive-Configure-Request(RCR)
RCR事件会在收到对端的LCP的Configure-Request消息后发生。
Configure-Request包指出了打开LCP连接的愿望并可能说明配置选项。
Configure-Request包下一节会作更全面的描述。
?	Receive-Configure-Ack(RCA)
RCA事件会在收到对端LCP的有效Configure-Ack包后发生,这个包是
对Configure-Request包的肯定回应。
?	Receive-Configure-Nak(RCN)
RCN事件会在收到对端LCP有效的Configure-Nak和Configure-Reject包
后发生。这两个包是对Configure-Request包的否定回应。
?	Receive-Terminate-Request(RTR)
RTR事件会在收到对端LCP的Terminate-Request包后发生,这个包表明
希望关闭LCP连接。
?	Receive-Terminate-Ack(RTA)
RTA事件会在收到对端LCP的Terminate-Ack包后发生,它是对
Terminate-Request包的回应。
?	Receive-Code-Reject(RCJ)
RCJ事件会在收到对端LCP的Code-Reject包后发生。Code-Reject包是
通知在通信中发生了一个导致连接关闭的错误。
?	Receive-Unknown-Code(RUC)
RUC事件在从LCP对端收到一个不可解释的包后发生,Code-Reject包是
对无法识别包的一个响应。
?	Receive-Echo-Request(RER)
RER事件是在从LCP对端收到Echo-Request,Echo-Reply或
Disconnect-Request包后发生的。Echo-Reply是对Echo-Request的响应,
而对Discard-Request则不须回应。
?	Physical Layer Down(PLD)
PLD事件是当物理层指出其无法工作时发生。
4.1.5动作
在LCP状态机制中,动作是由事件引起的,主要表现为包的发送和/或启动或
停止Restart定时器。下面是LCP动作的列表。
?	Send-Configure-Request(scr)
Scr动作发送Configure-Request包,这指出希望以一组特定的配置选项来
打开一个LCP连接。当Configure-Request包发送后,启动Restart定时器
以防止包丢失。
?	Send-Configure-Ack(sca)
Sca动作发送一个Configure-Ack包。它表明对收到Configure-Request包
的认可和包中一组配置选项的接受。
?	Send-Configure-Nak(scn)
Scn动作适当地传送一个Configure-Nak或Configure-Reject包。这是一个
对Configure-Request包否定的响应,它报告了对Configure-Request包的
接收和对配置选项的不可接受。Configure-Nak包用于拒绝配置选项的值,
并建议一个新的、可接受的值。Configure-Reject包用于拒绝对配置选项
的所有协商,它表明了这些配置选项不可识别或实现。Configure-Nak和
Configure-Reject的用法比较会在LCP包格式中进行完整描述。
?	Send-Terminate-Req(str)
Str动作发送一个Terminate-Request包,这表明希望关闭LCP连接。当
Terminate-Request包发送后,Restart定时器会启动来防止包丢失。
?	Send-Terminate-Ack(sta)
Sta动作发送一个Terminate-Ack包,它是对收到的Terminate-Request包
的证实或是确信LCP连接已关闭。
?	Send-Code-Reject(scj)
Scj动作发送一个Code-Reject包,这表明收到了一个类型不明的包。这
是一个不可恢复的错误,它导致在链路两端立即迁移到Closed状态。
?	Send-Echo-Reply(ser)
Ser动作发送一个Echo-Reply包,这是对收到的Echo-Request包的确认。
4.1.6状态
下面是关于每个LCP状态的详细描述。
?	Closed(1):起始和终结的状态。在Closed状态中连接是关闭(down)的并且
没有打开的尝试。所有从对端发起的连接请求都会被拒绝。PLD事件总
是引起当前状态立刻迁移到Closed状态。而有两个事件会使状态从Closed
状态迁移出去,即AO和PO事件。如果发生的是AO事件,那么
Configure-Request将发送出去,Restart定时器将启动,然后进
入 Request-Sent状态;如果是PO事件,那么就立刻进入Listen状态。在
Closed状态下,收到任何非Terminate-Ack的包,都将发送Terminate-Ack
的消息,如果收到Terminate-Ack,将被静默丢弃以避免循环。Restart定时
器在Closed状态并不运行。当进入到Closed状态时,物理层连接会被拆
除。
?	Listen(2):Listen状态和Closed状态在以下方面是相似的,即连接处于关
闭并且没有试图去打开它。然而,从对端来的连接请求不再被拒绝。一
旦收到一个Configure-Request包,一个Configure-Request会立刻发出,
Restart定时器也启动。收到的配置选项会被检查以发送适当的响应包。
如果Configure-Ack被发出,将进入到Ack-Sent状态。然而,如果
Configure-Nak或Configure-Reject发出,那么将进入到Request-Sent状态。
无论以上那种情况,LCP都将退出被动(passive)状态,并且开始激活打开
连接。在此状态下收到Configure-Ack或Configure-Nak包都会发送
Terminate-Ack包作为响应。Restart定时器在Listen状态也不运行。
?	Request-Sent(3):
在Request-Sent状态,正在试图打开一个连接。Configure-Request消息已
经发送,Restart定时器正在运行,但是还没有收到Configure-Ack消息,
或是它还没有发出。
当收到Configure-Ack,立刻进入到Ack-Received状态。当收到
Configure-Nak或Configure-Reject,Configure-Request的配置选项会
?	Ack-Received(4):
在Ack-Received状态,Configure-Request已经发出并且Configure-Ack已
经收到。Restart定时器仍在运行,因为Configure-Ack仍然没有发送出去。
当收到一个Configure-Request并且其配置选项可以接受,那么就会发送
Configure-Ack,Restart定时器停止,并进入Open状态。如果配置选项不
可接受,那么Configure-Nak或Configure-Reject将会适当地发送出去。
当Restart定时器超时,新的Configure-Request将发送,Restart定时器重
新启动,状态机制将返回到Request-Sent状态。
?	Ack-Sent(5)
在Ack-Sent状态,Configure-Ack和Configure-Request已经发送,但是
Configure-Ack还没有收到。Restart定时器在Ack-Sent状态下是一直运行
的。
当收到一个Configure-Ack,Restart定时器停止,并且状态机制进入Open
状态。当收到一个Configure-Nak或Configure-Reject,Configure-Request
的配置选项会作适当调整,新的Configure-Request将发送,Restart定时
器将重新启动。当Restart定时器超时,将重新发送新的
Configure-Request,Restart定时器重新启动,状态机制回到Request-Sent
状态。
?	Open(6)
在Open状态,连接始终存在并且数据通过链路进行通信。Restart定时器
在此状态下不运行。
在通常操作中,只有两个事件会导致从Open状态发生迁移。当收到一个
Close命令,Terminate-Request将发送,Restart定时器重新启动,并且进
入Closing状态。当收到一个Terminate-Request,会发送一个Terminate-Ack
作为回应,并进入Closed状态。当收到一个Echo-Request,会发送一个
Echo-Reply。Echo-Reply和Discard-Request包的处理相似,会被静默丢弃
或进行预期处理。当发生别的事件,会立即引起状态机制离开Open状态,
并且它们的处理和在Listen状态下的处理一样。
?	Closing(7)
在Closing状态,试图去关闭当前的连接。Terminate-Request已经发送,

⌨️ 快捷键说明

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