X.25 Reset Requests and Indications are a feature for which there is no equivalent in TCP/IP. The term “Reset” when applied to a TCP connection actually means closing the connection.
The purpose of the X.25 Reset is to reset the data transfer states associated with a virtual circuit (such as the send and receive sequence numbers, and the flow control state), without disconnecting the Virtual Circuit. Once the Reset has completed, data transfer can start off again.
A Reset can be initiated by a DTE by transmitting the Reset Request packet; the DTE then has to wait for a Reset Confirmation packet from the DCE, at which point the reset operation is completed, and data transfer can recommence.
Alternatively, the Reset can be initiated by the DCE (this includes the situation when it’s originated by a remote DTE) – the local DTE will receive a Reset Indication packet, and then responds with a Reset Confirmation packet.
It’s possible for Reset Requests and Indications to collide – when this happens, they confirm each other, without the need for the transmission of Reset Confirmation packets. In other words, when a DTE transmits a Reset Request packet, the reset operation is completed by the reception of either a Reset Confirmation or a Reset Indication packet.
A reset can be initiated by the application attached to the virtual circuit; it can also result from the X.25 protocol engine detecting some sort of error (for example, a received packet being too large). An application attached to virtual circuit via the FarSync X.25 API will be notified of such Resets as if they were a Reset Indication.
Resets and SVCs
The ability to reset a virtual circuit is frankly of little practical use for SVCs – indeed, if a Reset Indication is received, a client application attached to the virtual circuit would be well advised to clear the SVC and start a new one. In fact, by default, the FarSync X.25 software closes SVC sessions automatically.
Note that if an SVC is to be cleared as a result of a Reset Indication, there is no need for a Reset Confirmation packet to be transmitted; a Clear Request takes precedence.
Resets and PVCs
On PVCs, the use of Resets is essential as there is no way to close and reopen a PVC.
Typically, when an application attaches to a PVC, it should transmit a Reset Request, to ensure that the states at the other end of the PVC get reset; sequence numbers at the other end might be non-zero from the previous time the PVC was used.
A Reset Indication can be used by the network to indicate the state of the PVC – for example, the remote DTE might be powered off or disconnected.