📄 rfc1434.txt
字号:
Switches will send DISC commands to all the local systems that are
associated with the failed connections. Upon sending the DISC
command, the Data Link Switch will enter the DISCONNECT state for
each circuit.
4.2. DLS State Machine
The following state tables describe the states for a single
connection through the Data Link Switch. State information is kept
for each connection. The initial state for a connection is
DISCONNECT. The steady state is either CIRCUIT_ESTABLISHED or
CONNECTED. In the former state, an end-to-end circuit has been
established allowing the support of Type 1 LLC between the end
systems. The latter state exists when an end-to-end connection has
been established for the support of Type 2 LLC services between the
end systems.
For SNA, circuit establishment is via the use of IEEE 802.2 Test or
XID frames. SNA devices send these frames to the null SAP in order
to determine the source route information in support of bridging.
Normally SNA devices use SAP x'04', x'08', or x'0C'. Typically the
SAP would be used to determine if the Test frames should be sent to
the DLS code in the router. If both bridging and DLS are enabled,
this allows the product to ensure that SNA frames are not both
bridged and switched.
For NetBIOS, circuit establishment is via the Name Query and Name
Recognized frames. These frames are used for both address resolution
and source route determination. Normally NetBIOS devices use SAP
x'F0'.
4.2.1. Data Link Switch States
The Switch-to-Switch Protocols will be formally defined through a
single state machine. The following table lists the eleven possible
states. A separate state machine is employed for each end-to-end
circuit that is maintained by the Data Link Switch. The three steady
states are DISCONNECTED, CIRCUIT_ESTABLISHED, and CONNECTED.
Dixon & Kushi [Page 16]
RFC 1434 DLS: Switch-to-Switch Protocol March 1993
State Name Description
---------- -----------
CIRCUIT_ESTABLISHED The end-to-end circuit has been
established. At this time LLC Type 1
services are available from end-to-end.
CIRCUIT_PENDING The target DLS is awaiting a REACH_ACK
response to an ICANREACH message.
CIRCUIT_RESTART The DLS that originated the reset is
awaiting the restart of the data link
and the DL_RESTARTED response to a
RESTART_DL message.
CONNECTED The end-to-end connection has been
established thereby allowing LLC Type 2
services from end-to-end in addition to
LLC Type 1 services.
CONNECT_PENDING The origin DLS is awaiting the CONTACTED
response to a CONTACT message.
CONTACT_PENDING The target DLS is awaiting the
DLC_CONTACTED confirmation to a DLC_CONTACT
signal (i.e., DLC is waiting for a UA
response to an SABME command).
DISCONNECTED The initial state with no circuit or
connection established, the DLS is awaiting
either a CANUREACH, an ICANREACH, a
NETBIOS_NQ, or a NETBIOS_NR message.
DISCONNECT_PENDING The DLS that originated the disconnect
is awaiting the DL_HALTED response to a
HALT_DL message.
HALT_PENDING The remote DLS is awaiting the DLC_DL_HALTED
indication following the DLC_HALT_DL request
(i.e., DLC is waiting for a UA response to a
DISC command).
RESTART_PENDING The remote DLS is awaiting the DLC_DL_HALTED
indication following the DLC_HALT_DL request
(i.e., DLC is waiting for a UA response to a
DISC command), and the restart of the data
link.
RESOLVE_PENDING The target DLS is awaiting either the
DLC_DL_STARTED indication following the
DLC_START_DL reqest (i.e., DLC is waiting
for a Test response as a result of sending a
Test command), or a NB_Name_Recognized
frame in response to a NB_Name_Query frame.
Table 2. Data Link Switch States
The following figure depicts the events that cause a transition to a
new state. The resulting action(s) are not explicitly shown. The
Dixon & Kushi [Page 17]
RFC 1434 DLS: Switch-to-Switch Protocol March 1993
DISCONNECT_PENDING state will be entered whenever a DLC error
condition occurs in any of the other states (except RESOLVE_PENDING),
or when a DISC command is received by the DLC.
Dixon & Kushi [Page 18]
RFC 1434 DLS: Switch-to-Switch Protocol March 1993
DLC_RESOLVE_C+----+ +----DLC_ERROR---+
| | \|/ |
+------------+ +>+--+---------+ CANUREACH +-+----------+
| Disconnect +--DL_HALTED-->|Disconnected|------------>| Resolve |
| Pending |<+ +------->| |<-------+ | Pending |
+---------+--+ | | +-----+------+ | +-----+------+
/|\ | HALT_DL| /|\ |/|\/|\ | |
DLC_ERROR +----+ | +----+ | | +------+ | DLC_DL_STARTED
| | | |HALT_DL(ts)| +------+ |
| | ICANREACH| | HALT_DL(ts)|
+--HALT_DL(ts)+ | | | | | |
| HALT_DL(ts) | | HALT_DL(ts) | |
| | | | | | |
| +-RESTART_DL(ts)+----+ | | | | |
| | | \|/ \|/| | | \|/
+----+---+---+ | +-------+----+ | +-+----------+
| Contact |<-CONTACT--+--+ Circuit |<-REACH_ACK--+ Circuit |
| Pending | | | Established| (DLC not | Pending |
+-----+------+ | +----------+-+ contacted)+-+------+---+
| /|\ | /|\ /|\ | | | |
| | +--+----+ | | | | |
| +-CONTACT--+--+--------+----+------+----------+ REACH_ACK
| | |RESTART_DL(ts) | (DLC contacted)
DLC_CONTACTED | +------+ | | +--------------+ |
| | | | | DLC_CONTACTED | |
+---------------+-------+ | | +-----------------+ | |
+-----DL_RESTARTED | | | | | |
| (DLC not contacted) \|/| | \|/ | \|/
+-----+------+ +---+-+------+ CONTACTED +-----+------+
| Circuit |<-DLC_RESET---+ Connected |<------------+ Connect |
| Restart | | | | Pending |
+----------+-+ +------------+ +-----+------+
/|\ | DL_RESTARTED /|\ |
| +----------------(DLC contacted)--------------+ |
| |
+-------------------------DLC_RESET--------------------+
Figure 7. DLS State Transitions (ts = transitional state)
The DISCONNECT state is the initial state for a new circuit. One end
station starts the connection via a TEST or XID command (i.e.,
DLC_RESOLVE_C) or a NetBIOS Name Query command (not explicitly
shown). Upon receipt, the Data Link Switches exchange a set of
CANUREACH, ICANREACH and REACH_ACK messages. Upon completion of this
three-legged exchange, both Data Link Switches will be in the
CIRCUIT_ESTABLISHED state. Two pending states also exist during this
exchange. The RESOLVE_PENDING state is entered by the target Data
Link Switch awaiting a Test response to a Test Command and the
Dixon & Kushi [Page 19]
RFC 1434 DLS: Switch-to-Switch Protocol March 1993
CIRCUIT_PENDING state is entered by the target DLS awaiting the
REACH_ACK reply to an ICANREACH message.
The CIRCUIT_ESTABLISHED state allows for the exchange of LLC Type 1
frames such as the XID exchanges between SNA stations that occurs
prior to the establishment of a connection. Also, datagram traffic
(i.e., UI frames) may be sent and received between the end stations.
These exchanges use the XIDFRAME and DGRMFRAME messages sent between
the Data Link Switches.
In the CIRCUIT_ESTABLISHED state, the receipt of a SABME command
(i.e., DLC_CONTACTED) causes the origin DLS to issue a CONTACT
message, to send an RNR supervisory frame (i.e., DLC_ENTER_BUSY) to
the origin station, and to enter the CONNECT_PENDING state awaiting a
CONTACTED message. The target DLS, upon the receipt of a CONTACT
message, will issue a SABME command (i.e., DLC_CONTACT) and enter the
Contact Pending state. Once the UA response is received (i.e.,
DLC_CONTACTED), the target DLS sends a CONTACTED message and enters
the CONNECTED state. When received, the origin DLS enters the
Connected state and sends an RR supervisory frame (i.e.,
DLC_EXIT_BUSY).
The CONNECTED state is the steady state for normal data flow once a
connection has been established. Information frames (i.e., INFOFRAME
messages) are simply sent back and forth between the end points of
the connection. This is the path that should be optimized for
performance.
The connection is terminated upon the receipt of a DISC frame or
under some other error condition detected by DLC (i.e., DLC_ERROR).
Upon receipt of this indication, the DLS will halt the local data
link, send a HALT_DL message to the remote DLS, and enter the
DISCONNECT_PENDING State. When the HALT_DL frame is received by the
other DLS, the local DLC is halted for this data link, a DL_HALTED
message is returned, and the DISCONNECTED state is entered. Receipt
of this DL_HALTED message causes the other DLS to also enter the
DISCONNECTED state.
The CIRCUIT_RESTART state is entered if one of the Data Link Switches
receives a SABME command (i.e., DLC_RESET) while in the CONNECTED
state. This causes a DM command to be returned to the origin station
and a RESTART_DL message to be sent to the remote Data Link Switch.
This causes the remote data link to be halted and then restarted.
The remote DLS will then send a DL_RESTARTED message back to the
first DLS. The receipt of the DL_RESTARTED message causes the first
DLS to issue a new CONTACT message, assuming that the local DLC has
been contacted (i.e., the origin station has resent the SABME
command). This is eventually responded to by a CONTACTED message.
Dixon & Kushi [Page 20]
RFC 1434 DLS: Switch-to-Switch Protocol March 1993
Following this exchange, both Data Link Switches will return to the
CONNECTED state. If the local DLC has not been contacted, the
receipt of a DL_RESTARTED command causes the Data Link Switch to
enter the CIRCUIT_ESTABLISHED state awaiting the receipt of a SABME
command (i.e., DLC_CONTACTED signal).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -