Service Specific Connection-Oriented Protocol (SSCOP)

 

 

Introduction

In ATM networks, there is no concept of error detection and/or correction at the data-link level. So any user needing reliability of data transfer needs to employ his own error-control protocol. Signaling protocol is such a user which assumes the underlying link as reliable. To provide this facility to signaling and other potential users, ITU-T devised a new protocol, keeping the characteristics of ATM in mind. This was important because a reliable protocol like TCP assumes the link to be loss-prone and slow, which won't fit into the ATM requirements. The protocol was devised keeping in mind the user at large, and not only the signaling protocol. Thus the interfaces were defined to be generic nature, and any user, at any OSI layer can use them to deliver his data reliably to the other end. What follows is a brief discussion of the basic points of the protocol, and an explanation of its use by the signaling user.

 

Protocol Procedures

A number of packet formats have been defined in the protocol that are used at different states of the connection. A connection goes through several states during its life time, depending on the current state and the incoming packet type. A BGN packet is the first packet sent by the end station that wishes to communicate with the next station. It contains a connection sequence number (used to detect retransmission), and a receive window size(how many outstanding packets can be there at a time). A BGAK packet is sent in response to the BGN packet, which contains receive window size of the other end. This simple exchange establishes the connection between the two entities. This state is called data_transfer_ready state.

While in data_transfer_ready state, the two ends exchange data packets, called SD packet. It contains a sequence number for each packet. Not all packets are acknowledged by the receiving end. Periodically, the transmitting end sends POLL packet, which contains a poll sequence number (to match the response with the request). On receipt of as POLL packet, the system generates a STAT packet, which contains information about all the missing packets, if any. Also the sequence number contained in the POLL packet is inserted into STAT packet. When the STAT packet is received by the transmitter, he retransmits the unacknowledged packets. Also, when the receiver gets an out-of-sequence packet, it generates, a USTAT (unacknowledged STAT)packet, which contains the Sequence number it was expecting and the number it actually got (i.e. all the packets in between are missing). Transmitter then sends the missing packets.

In case certain errors, there are error recovery mechanisms, using ERR and ERRAK packets, for the details please refer the actual ITU-T standard.

If an end station feels that he has lost synchronization with the other end, there are synchronization mechanisms available, which basically synchronizes the two ends with respect to the unacknowledged and pending data.

 

Timers

Timer_cc: To control the protocol states, several timers are defined in the protocol, whose values need to be chosen based on the link rate. To control the connection setup procedures, timer_cc (connection control) is defined. An end system will retransmit a BGN packet after every timer_cc units of time, until BGAK is received or a specified count (typically four)is reached. If the connection is not setup by this, the upper layer is notified about the failure, and the layer may then ask SSCOP to restart the setup attempts. Note that the since all the four transmissions of BGN are retransmissions of the same packet, they will have the same connection sequence number, so the receiving end can identify the retransmitted ones if he has accepted one. On the other hand, when the upper layer instructs it to retry, it will have a new connection sequence number.

Timer_no_response controls the time between two receipts of STAT packet, and if it doesn't receive a STAT packet in this time, the connection is cleared by sending an END packet. Non-receipt in this case is assumed to occur because the link between the nodes has gone down or the end system has gone down. Thus, the value of this timer needs to be chosen carefully.

Timer_poll is the time after which a poll packet is generated by the system to be sent across. The value of this timer will determine the responsiveness of the system towards packet drops, small value means the end can retransmit the packet with less delay, but it also means more traffic.

Timer_idle: When there is no data is unacknowledged, the end systems, to reduce the traffic, may decide to send the POLL packets less frequently. Timer_idle is the time after which the system will generate a POLL packet in the absence of any data traffic. Note that POLL/STAT sequence is used both for data protection, and connection health monitoring. When data transfer is going on, it needs to be more frequent because both the tasks need to be performed. But when there is no data transfer, only link monitoring is required so the systems can afford to relax.

 

Signaling - SSCOP interaction

As mentioned above, SSCOP is a generic protocol, which just exports a set of interfaces to be used by a higher layer, and requires an interface to send/receive data. For Signaling to use this protocol for its own use, and to make it fit into the AAL5 paradigm, a layer is needed which can map the signaling requirements to SSCOP interfaces. This is a Service Specific Coordination Function (SSCF). There is a separate document, Q.2130 for UNI, and Q.2140 for NNI(Network Node Interface). Q.2130 defines a layer that absorbs most of the interfaces of SSCOP and provides default actions for them. Interfaces UNI signaling require are ESTABLISH and RELEASE, request and indication.

 


Revised on: July 5, 1998

Back to ATM Home Page