📄 rfc1795.txt
字号:
(i.e., DLC is waiting for a Test response as a result of sending a Test command). The DISCONNECTED state is the initial state for a new circuit. One end station starts the connection via an XID or SABME command (i.e., DLC_XID or DLC_CONTACTED). Upon receipt, the Data Link Switches exchange a set of CANUREACH_cs, ICANREACH_cs and REACH_ACK messages. Upon completion of this three-legged exchange both Data Link Switches will be in the CIRCUIT_ESTABLISHED state. Three pending states also exist during this exchange. The CIRCUIT_START state is entered by the origin Data Link Switch after it has sent the CANUREACH_cs message. The RESOLVE_PENDING state is entered by the target Data Link Switch awaiting a Test response to a Test Command. And lastly, the CIRCUIT_PENDING state is entered by the target DLSw awaiting the REACH_ACK reply to an ICANREACH_cs 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 betweenWells & Bartky [Page 22]RFC 1795 Data Link Switching April 1995 the Data Link Switches. In the CIRCUIT_ESTABLISHED state, the receipt of a SABME command (i.e., DLC_CONTACTED) causes the origin DLSw 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 DLSw, 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 DLSw sends a CONTACTED message and enters the CONNECTED state. When received, the origin DLSw 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 DLSw will halt the local data link, send a HALT_DL message to the remote DLSw, and enter the DISCONNECT_PENDING State. When the HALT_DL frame is received by the other DLSw, 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 DLSw 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) after data transfer 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 DLSw will then send a DL_RESTARTED message back to the first DLSw. The receipt of the DL_RESTARTED message causes the first DLSw 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. 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). The HALT_PENDING, HALT_PENDING_NOACK and RESTART_PENDING states correspond to the cases when the Data Link Switch is awaitingWells & Bartky [Page 23]RFC 1795 Data Link Switching April 1995 responses from the local station on the adjacent LAN (e.g., a UA response to a DISC command). Also in the RESTART_PENDING state, the Data Link Switch will attempt to restart the data link prior to sending a DL_RESTARTED message. For some implementations, the start of a data link involves the exchange of a Test command/response on the adjacent LAN (i.e., DLC_START_DL). For other implementations, this additional exchange may not be required.5.2 State Transition Tables This section provides a detailed representation of the Data Link Switch, as documented by a single state machine. Many of the transitions are dependent upon local signals between the Data Link Switch entity and one of the DLC entities. These signals and their definitions are given in the following tables. DLC Events: Event Name Description ---------- ----------- DLC_CONTACTED Contact Indication: DLC has received an SABME command or DLC has received a UA response as a result of sending an SABME command. DLC_DGRM Datagram Indication: DLC has received a UI frame. DLC_ERROR Error condition indicated by DLC: Such a condition occurs when a DISC command is received or when DLC experiences an unrecoverable error. DLC_INFO Information Indication: DLC has received an Information (I) frame. DLC_DL_HALTED Data Link Halted Indication: DLC has received a UA response to a DISC command. DLC_DL_STARTED Data Link Started Indication: DLC has received a Test response from the null SAP. DLC_RESET Reset Indication: DLC has received an SABME command during the time a connection is currently active and has responded with DM. DLC_RESOLVE_C Resolve Command Indication: DLC has received a Test command addressed to the null SAP, or an XID command addressed to the null SAP.Wells & Bartky [Page 24]RFC 1795 Data Link Switching April 1995 DLC_RESOLVED Resolve request: DLC has received a TEST response frame (or equivalent for non-LAN DLCs) but has not reserved the resources required for a circuit yet. DLC_XID XID Indication: DLC has received an XID command or response to a non-null SAP. Other Events: Event Name Description ---------- ----------- XPORT_FAILURE Failure of the transport connection used by the circuit. CS_TIMER_EXP The CIRCUIT_START timer (started when the circuit went into CIRCUIT_START state) has expired. DLC Actions: Action Name Description ----------- ----------- DLC_CONTACT Contact Station Request: DLC will send a SABME command or a UA response to an outstanding SABME command. DLC_DGRM Datagram Request: DLC will send a UI frame. DLC_ENTER_BUSY Enter Link Station Busy: DLC will send an RNR supervisory frame. DLC_EXIT_BUSY Exit Link Station Busy: DLC will send an RR supervisory frame. DLC_HALT_DL Halt Data Link Request: DLC will send a DISC command. DLC_INFO Information Request: DLC will send an I frame. DLC_RESOLVE Resolve request: DLC should issue a TEST (or appropriate equivalent for non-LAN DLCs) but need not reserve the resources required for a circuit yet. DLC_RESOLVE_R Resolve Response Request: DLC will send a Test response or XID response from the null SAP. DLC_START_DL Start Data Link Request: DLC will send a Test command to the null SAP.Wells & Bartky [Page 25]RFC 1795 Data Link Switching April 1995 DLC_XID XID Request: DLC will send an XID command or an XID response. Other Actions: Action Name Description ---------- ----------- START_CS_TIMER Start the CIRCUIT_START timer. DLC_RESOLVE_R and DLC_START_DL actions require the DLC to reserve the resources necessary for a link station as they are used only when a circuit is about to be started. The DLC_RESOLVE action is used for topology explorer traffic and does not require such resources to be reserved, though a DLC implementation may choose not to distinguish this from the DLC_START_DL action. See section 5.4 for details of the actions and events for explorer frames. The Data Link Switch is described by a state transition table as documented in the following sections. Each of the states is described below in terms of the events, actions, and next state for each transition. If a particular event is not listed for a given state, no action and no state transition should occur for that event. Any significant comments concerning the transitions within a given state are given immediately following the table representing the state. A separate state machine instance is maintained by the Data Link Switch for each end-to-end circuit. The number of circuits that may be supported by each Data Link Switch is a local implementation option. The CANUREACH_ex, ICANREACH_ex, NETBIOS_NQ_ex, and NETBIOS_NR_ex are SSP messages that are not associated with a particular circuit. The processing of these messages is covered in section 5.4.Wells & Bartky [Page 26]RFC 1795 Data Link Switching April 19955.2.1 DISCONNECTED State +----------------------+---------------------+----------------------+ | Event | Action(s) | Next State | +----------------------+---------------------+----------------------+ | Receive CANUREACH_cs | DLC_START_DL | RESOLVE_PENDING | +----------------------+---------------------+----------------------+ | Receive DATAFRAME | DLC_DGRM | | +----------------------+---------------------+----------------------+ | DLC_XID | If source route | If CANUREACH_cs was | | | bridged frame with | sent: | | | broadcast indicated:| CIRCUIT_START | | | Send CANUREACH_ex | | | | else: | | | | Send CANUREACH_cs | | | | START_CS_TIMER | | +----------------------+---------------------+----------------------+ | DLC_DGRM | If NETBIOS | | | | NAME_QUERY: | | | | Send NETBIOS_NQ_ex | | | | else: | | | | Send DATAFRAME | | +----------------------+---------------------+----------------------+ | DLC_CONTACTED | Send CANUREACH_cs | CIRCUIT_START | +----------------------+---------------------+----------------------+ It is assumed that each Data Link Switch will build a set of topology tables giving the identity of each Data Link Switch that can reach a specific MAC address or a specific NetBIOS name. This table can be built using the explorer frames, as per the Explorer FSM in section 5.4. As a consequence, the amount of search traffic can be kept to a minimum. Upon receipt of a TEST command, broadcast XID or NetBIOS NAME_QUERY, the Data Link Switch checks the topology table for the target MAC/SAP or NetBIOS name. If there is no matching entry in the table, the Data Link Switch uses the explorer FSMs in section 5.4 to locate the target MAC/SAP or NetBIOS name. When the first non-broadcast XID or SABME flows, the Data Link Switch issues a CANUREACH_cs to attempt to start a circuit. The CANUREACH_cs message is sent to only those Data Link Switches that are known to be able to reach the given MAC address. The mechanism by which a topology table entry is determined to be out-of-date and is deleted from the table is implementation specific. The DISCONNECTED state is exited upon the sending of
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -