📄 rfc1331.txt
字号:
finite-state automaton was used, with considerable detailed
information specified in the semantics. This lead to
interoperability problems from differing interpretations.
This table functions similarly to the previous versions, with the
up/down flags expanded to explicit states, and the active/passive
paradigm eliminated. It is believed that this table interoperates
with previous versions better than those versions themselves.
| 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 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
Simpson [Page 16]
RFC 1331 Point-to-Point Protocol May 1992
| 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 tld,scj,scr/6
RXJ+ | 6 6 8 9
RXJ- | tlf/3 tlf/3 tlf/3 tld,irc,str/5
|
RXR | 6 7 8 ser/9
The states in which the Restart timer is running are identifiable by
the presence of TO events. Only the Send-Configure-Request, Send-
Terminate-Request and Zero-Restart-Counter actions start or re-start
the Restart timer. The Restart timer SHOULD be stopped when
transitioning from any state where the timer is running to a state
where the timer is not running.
[p] Passive option; see Stopped state discussion.
[r] Restart option; see Open event discussion.
[x] Crossed connection; see RCA event discussion.
Simpson [Page 17]
RFC 1331 Point-to-Point Protocol May 1992
5.3. States
Following is a more detailed description of each automaton state.
Initial
In the Initial state, the lower layer is unavailable (Down), and
no Open has occurred. The Restart timer is not running in the
Initial state.
Starting
The Starting state is the Open counterpart to the Initial state.
An administrative Open has been initiated, but the lower layer is
still unavailable (Down). The Restart timer is not running in the
Starting state.
When the lower layer becomes available (Up), a Configure-Request
is sent.
Closed
In the Closed state, the link is available (Up), but no Open has
occurred. The Restart timer is not running in the Closed state.
Upon reception of Configure-Request packets, a Terminate-Ack is
sent. Terminate-Acks are silently discarded to avoid creating a
loop.
Stopped
The Stopped state is the Open counterpart to the Closed state. It
is entered when the automaton is waiting for a Down event after
the This-Layer-Finished action, or after sending a Terminate-Ack.
The Restart timer is not running in the Stopped state.
Upon reception of Configure-Request packets, an appropriate
response is sent. Upon reception of other packets, a Terminate-
Ack is sent. Terminate-Acks are silently discarded to avoid
creating a loop.
Rationale:
The Stopped state is a junction state for link termination,
link configuration failure, and other automaton failure modes.
These potentially separate states have been combined.
There is a race condition between the Down event response (from
Simpson [Page 18]
RFC 1331 Point-to-Point Protocol May 1992
the This-Layer-Finished action) and the Receive-Configure-
Request event. When a Configure-Request arrives before the
Down event, the Down event will supercede by returning the
automaton to the Starting state. This prevents attack by
repetition.
Implementation Option:
After the peer fails to respond to Configure-Requests, an
implementation MAY wait passively for the peer to send
Configure-Requests. In this case, the This-Layer-Finished
action is not used for the TO- event in states Req-Sent, Ack-
Rcvd and Ack-Sent.
This option is useful for dedicated circuits, or circuits which
have no status signals available, but SHOULD NOT be used for
switched circuits.
Closing
In the Closing state, an attempt is made to terminate the
connection. A Terminate-Request has been sent and the Restart
timer is running, but a Terminate-Ack has not yet been received.
Upon reception of a Terminate-Ack, the Closed state is entered.
Upon the expiration of the Restart timer, a new Terminate-Request
is transmitted and the Restart timer is restarted. After the
Restart timer has expired Max-Terminate times, this action may be
skipped, and the Closed state may be entered.
Stopping
The Stopping state is the Open counterpart to the Closing state.
A Terminate-Request has been sent and the Restart timer is
running, but a Terminate-Ack has not yet been received.
Rationale:
The Stopping state provides a well defined opportunity to
terminate a link before allowing new traffic. After the link
has terminated, a new configuration may occur via the Stopped
or Starting states.
Request-Sent
In the Request-Sent state an attempt is made to configure the
connection. A Configure-Request has been sent and the Restart
timer is running, but a Configure-Ack has not yet been received
Simpson [Page 19]
RFC 1331 Point-to-Point Protocol May 1992
nor has one been sent.
Ack-Received
In the Ack-Received state, a Configure-Request has been sent and a
Configure-Ack has been received. The Restart timer is still
running since a Configure-Ack has not yet been sent.
Ack-Sent
In the Ack-Sent state, a Configure-Request and a Configure-Ack
have both been sent but a Configure-Ack has not yet been received.
The Restart timer is always running in the Ack-Sent state.
Opened
In the Opened state, a Configure-Ack has been both sent and
received. The Restart timer is not running in the Opened state.
When entering the Opened state, the implementation SHOULD signal
the upper layers that it is now Up. Conversely, when leaving the
Opened state, the implementation SHOULD signal the upper layers
that it is now Down.
5.4. Events
Transitions and actions in the automaton are caused by events.
Up
The Up event occurs when a lower layer indicates that it is ready
to carry packets. Typically, this event is used to signal LCP
that the link is entering Link Establishment phase, or used to
signal a NCP that the link is entering Network-Layer Protocol
phase.
Down
The Down event occurs when a lower layer indicates that it is no
longer ready to carry packets. Typically, this event is used to
signal LCP that the link is entering Link Dead phase, or used to
signal a NCP that the link is leaving Network-Layer Protocol
phase.
Open
The Open event indicates that the link is administratively
available for traffic; that is, the network administrator (human
Simpson [Page 20]
RFC 1331 Point-to-Point Protocol May 1992
or program) has indicated that the link is allowed to be Opened.
When this event occurs, and the link is not in the Opened state,
the automaton attempts to send configuration packets to the peer.
If the automaton is not able to begin configuration (the lower
layer is Down, or a previous Close event has not completed), the
establishment of the link is automatically delayed.
When a Terminate-Request is received, or other events occur which
cause the link to become unavailable, the automaton will progress
to a state where the link is ready to re-open. No additional
administrative intervention should be necessary.
Implementation Note:
Experience has shown that users will execute an additional Open
command when they want to renegotiate the link. Since this is
not the meaning of the Open event, it is suggested that when an
Open user command is executed in the Opened, Closing, Stopping,
or Stopped states, the implementation issue a Down event,
immediately followed by an Up event. This will cause the
renegotiation of the link, without any harmful side effects.
Close
The Close event indicates that the link is not available for
traffic; that is, the network administrator (human or program) has
indicated that the link is not allowed to be Opened. When this
event occurs, and the link is not in the Closed state, the
automaton attempts to terminate the connection. Futher attempts
to re-configure the link are denied until a new Open event occurs.
Timeout (TO+,TO-)
This event indicates the expiration of the Restart timer. The
Restart timer is used to time responses to Configure-Request and
Terminate-Request packets.
The TO+ event indicates that the Restart counter continues to be
greater than zero, which triggers the corresponding Configure-
Request or Terminate-Request packet to be retransmitted.
The TO- event indicates that the Restart counter is not greater
than zero, and no more packets need to be retransmitted.
Receive-Configure-Request (RCR+,RCR-)
This event occurs when a Configure-Request packet is received from
Simpson [Page 21]
RFC 1331 Point-to-Point Protocol May 1992
the peer. The Configure-Request packet indicates the desire to
open a connection and may specify Configuration Options. The
Configure-Request packet is more fully described in a later
section.
The RCR+ event indicates that the Configure-Request was
acceptable, and triggers the transmission of a corresponding
Configure-Ack.
The RCR- event indicates that the Configure-Request was
unacceptable, and triggers the transmission of a corresponding
Configure-Nak or Configure-Reject.
Implementation Note:
These events may occur on a connection which is already in the
Opened state. The implementation MUST be prepared to
immediately renegotiate the Configuration Options.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -