📄 rfc1548.txt
字号:
Simpson [Page 12]
RFC 1548 The Point-to-Point Protocol December 1993
RCR TO+
+--sta-->+ +------->+
| | | |
+-------+ | RTA +-------+ | Close +-------+
| |<-----+<------| |<-str-+<------| |
|Closed | |Closing| |Opened |
| | Open | | | |
| |------+ | | | |
+-------+ | +-------+ +-------+
| ^
| |
| +-sca----------------->+
| | ^
RCN,TO+ V RCR+ | RCR- RCA | RCN,TO+
+------->+ | +------->+ | +--scr-->+
| | | | | | | |
+-------+ | TO+ +-------+ | +-------+ |
| |<-scr-+<------| |<-scn-+ | |<-----+
| Req- | | Ack- | | Ack- |
| Sent | RCA | Rcvd | | Sent |
+-scn->| |------------->| | +-sca->| |
| +-------+ +-------+ | +-------+
| RCR- | | RCR+ | RCR+ | | RCR-
| | +------------------------------->+<-------+ |
| | |
+<-------+<------------------------------------------------+
Simpson [Page 13]
RFC 1548 The Point-to-Point Protocol December 1993
4.2 State Transition Table
The complete state transition table follows. States are indicated
horizontally, and events are read vertically. State transitions and
actions are represented in the form action/new-state. Multiple
actions are separated by commas, and may continue on succeeding lines
as space requires; multiple actions may be implemented in any
convenient order. The state may be followed by a letter, which
indicates an explanatory footnote. The dash ('-') indicates an
illegal transition.
| 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 14]
RFC 1548 The Point-to-Point Protocol December 1993
| 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
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 is 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.
4.3 A Day in the Life
Here is an example of how a typical implementation might use the
automaton to implement LCP in a dial-up environment:
- The Network Access Server is powered on (Initial state, Link Dead
phase).
- A configuration file indicates that a particular link is to be
Simpson [Page 15]
RFC 1548 The Point-to-Point Protocol December 1993
used for PPP access (Open: tls/Starting). The This-Layer-Started
event turns on DTR to a modem, readying it for accepting calls.
- An incoming call is answered. The modem CD triggers configuration
negotiation (Up: irc,scr/Req-Sent, Link Establishment phase).
- A Configure-Request is received, which is acknowleged (RCR+:
sca/Ack-Sent).
- The Request is acknowleged (RCA: irc,tlu/Opened). The This-
Layer-Up event starts authentication and quality monitoring
protocols (Authentication phase).
- When authentication and quality monitoring are satisfied, they
send an Up event to start the available NCPs (Network-Layer
Protocol phase).
- Later, the peer is finished, and closes the link. A Terminate-
Request arrives (RTR: tld,zrc,sta/Stopping, Termination phase).
The This-Layer-Down action sends the Down event to any NCPs, while
the Terminate-Ack is sent. The Zero-Restart-Counter action causes
the link to wait for the peer to process the Terminate-Ack, with
no retries.
- When the Restart Timer times out (TO-: tlf/Stopped), the This-
Layer-Finished action signals the modem to hang up by dropping
DTR.
- When the CD from the modem drops (Down: tls/Starting), the This-
Layer-Started action raises DTR again, readying it for the next
call (returning to the Link Dead phase).
4.4 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.
Simpson [Page 16]
RFC 1548 The Point-to-Point Protocol December 1993
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
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.
Simpson [Page 17]
RFC 1548 The Point-to-Point Protocol December 1993
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
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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -