Connection Request
Connection Indication
Connection Response
Connection Confirm
CONNECT.REQ (SSAP, DSAP, QoS)
CONNECT.IND (SSAP, DSAP, QoS, ConnID)
CONNECT.RES (SSAP, DSAP, QoS, ConnID)
CONNECT.RES (SSAP, DSAP, QoS, ConnID)
SEND.REQ (ConnID)RECEIVE.IND(ConnID)
OPEN.REQ
OPEN.IND
OPEN.RES
OPEN.CONF
SEND.REQ
RECEIVE.IND
CLOSE.IND
CLOSE.REQ
CLOSE.INDSEND.REQ
RECEIVE.IND
CLOSE.REQ
CLOSE.IND
CLOSE.REQ
CLOSE.IND
LISTEN.REQ
• Generic Listen to all possible connections• OR• One Listen per connection• One Open per connection• Listen and Open specify SAP to which they want to be
connected to and their local SAP• Listen can use a wild card to listen to a range or any
incoming calls. It will then take the first one that meets the wild card criteria.
• If another listen is done with same DSAP and SSAP then it is rejected
• If another open is done with same DSAP and SSAP then it is rejected
OP
EN
ING
ES
TA
BL
ISH
ED
ES
T.
LIS
TE
NIN
G
OPEN.REQ
OPEN.IND
OPEN.RES
OPEN.CONF
LISTEN.REQ
CALL BACK INVOKED
1. LISTEN.REQ sets up call back2. OPEN.REQ attempts to make connection. This blocks until the OPEN.CONF3. When OPEN reaches listening end the Listen Call Back Fn is called4. When the Listen Call Back Fn returns (with return value 0, i.e. Accepted) then this
represents the OPEN.RES and causes TCONS to send the ACCEPT to the Opening end
5. When ACCEPT reaches Opening end it causes the Opening application to be unblocked and an EST to be sent
6. When EST reaches Listening end the connection is established7. TCONS only accepts send and receive requests when the connection is established
i.e. TCONS in ESTABLISHED state.
CALL BACK RETURNED (ACCEPTED)
CALL BACK SET UP
BLOCKING
Opener Listener
= TCONS state
EST.IND
HA
LF
OP
EN
CALL BACK INVOKED TO INDICATE THAT CONNECTION ESTABLISHED
ACC = ACCEPTING
OPEN
ACCEPT
EST
OPEN AND LISTEN
OP
EN
ING
ES
TA
BL
ISH
ED
ES
TA
BL
ISH
ED
LIS
TE
NIN
G
OPEN.REQ
OPEN.IND
OPEN.RES
OPEN.CONF
LISTEN.REQ
CALL BACK INVOKED
CALL BACK RETURNED (ACCEPTED)
CALL BACK SET UP
BLOCKING
Opener Listener
= TCONS state
EST.IND
HA
LF
OP
EN
CALL BACK INVOKED TO INDICATE THAT CONNECTION ESTABLISHED
OPEN
ACCEPT
EST
OPEN AND LISTEN
OP
EN
ING
ES
TA
BL
ISH
ED
ES
T.
OPEN.REQ
OPEN.IND
OPEN.RES
OPEN.CONF
CALL BACK INVOKED
CALL BACK RETURNED (ACCEPTED)
BLOCKING
EST.IND
HA
LF
OP
EN
CALL BACK INVOKED TO INDICATE THAT CONNECTION ESTABLISHED
OPEN
ACCEPT
EST
OP
EN
ING
ES
TA
BL
ISH
ED
ES
T.
OPEN.REQ
OPEN.IND
OPEN.RES
OPEN.CONF
CALL BACK INVOKED
CALL BACK RETURNED (ACCEPTED)
BLOCKING
Opener Listener
= TCONS state
EST.IND
HA
LF
OP
EN
CALL BACK INVOKED TO INDICATE THAT CONNECTION ESTABLISHED
AC
C
ACC = ACCEPTING
OPEN
ACCEPT
EST
OPEN AND LISTEN
OPEN.IND
OPEN.RES
OPEN.CONF
CALL BACK INVOKED
CALL BACK RETURNED (ACCEPTED)
BLOCKING
EST.IND
CALL BACK INVOKED TO INDICATE THAT CONNECTION ESTABLISHED
OPEN
ACCEPT
EST
OP
EN
ING
ES
TA
BL
ISH
ED
ES
T.
LIS
TE
NIN
G
OPEN.REQ
OPEN.CONF
LISTEN.REQ
1. LISTEN.REQ sets up call back2. OPEN.REQ attempts to make connection. This blocks until the OPEN.CONF3. When OPEN reaches listening end the Listen Call Back Fn is called4. When the Listen Call Back Fn returns (with return value 0, i.e. Accepted) then this
represents the OPEN.RES and causes TCONS to send the ACCEPT to the Opening end
5. When ACCEPT reaches Opening end it causes the Opening application to be unblocked and an EST to be sent
6. When EST reaches Listening end the connection is established7. TCONS only accepts send and receive requests when the connection is established
i.e. TCONS in ESTABLISHED state.
CALL BACK SET UPAcceptance criteria
BLOCKING
Opener Listener
= TCONS state
EST.IND
HA
LF
OP
EN
CALL BACK
AC
C
ACC = ACCEPTING
OPEN
ACCEPT
EST
OPEN AND LISTEN
Open meets acceptance criteria
OP
EN
ING
NO
T E
ST
.
NO
T E
ST
.L
IST
EN
ING
OPEN.REQ
OPEN.IND
OPEN.RES
OPEN_FAILURE.IND
LISTEN.REQ
CALL BACK INVOKED
1. LISTEN.REQ sets up call back2. OPEN.REQ attempts to make connection. This blocks until the OPEN.CONF3. When OPEN reaches listening end the Listen Call Back Fn is called4. When the Listen Call Back Fn returns (with return value 0, i.e. Accepted) then this
represents the OPEN.RES and causes TCONS to send the ACCEPT to the Opening end
5. When ACCEPT reaches Opening end it causes the Opening application to be unblocked and an EST to be sent
6. When EST reaches Listening end the connection is established7. TCONS only accepts send and receive requests when the connection is established
i.e. TCONS in ESTABLISHED state.
CALL BACK RETURNED (ACCEPTED)
CALL BACK SET UP
BLOCKING
Opener Listener
= TCONS state
OPEN_FAILURE.IND
HA
LF
OP
EN
AC
C
ACC = ACCEPTING
OPEN
ACCEPT
OPEN AND LISTEN
TCONS TIMES OUT
NO
T E
ST
.
TCONS TIMES OUT
CALL BACK INVOKEDOPEN FAILURE
OP
EN
ING
ES
TA
BL
ISH
ED
ES
T.
LIS
TE
NIN
G
OPEN.REQ
OPEN.IND
OPEN.RES
OPEN.CONF
LISTEN.REQ
CALL BACK INVOKED
1. LISTEN.REQ sets up call back2. OPEN.REQ attempts to make connection. This blocks until the OPEN.CONF3. When OPEN reaches listening end the Listen Call Back Fn is called4. When the Listen Call Back Fn returns (with return value 0, i.e. Accepted) then this
represents the OPEN.RES and causes TCONS to send the ACCEPT to the Opening end
5. When ACCEPT reaches Opening end it causes the Opening application to be unblocked and an EST to be sent
6. When EST reaches Listening end the connection is established7. TCONS only accepts send and receive requests when the connection is established
i.e. TCONS in ESTABLISHED state.
CALL BACK RETURNED (ACCEPTED)
CALL BACK SET UP
BLOCKING
Opener Listener
= TCONS state
EST.IND
HA
LF
OP
EN
SEND OR RX rejected until connection established
AC
C
ACC = ACCEPTING
OPEN
ACCEPT
EST
OPEN AND LISTEN
ES
TA
BL
ISH
ED
SEND.REQ
RECEIVE.IND
SEND.CONF
RECEIVE.REQ
CALL BACK INVOKED
1. LISTEN.REQ sets up call back2. OPEN.REQ attempts to make connection. This blocks until the OPEN.CONF3. When OPEN reaches listening end the Listen Call Back Fn is called4. When the Listen Call Back Fn returns (with return value 0, i.e. Accepted) then this
represents the OPEN.RES and causes TCONS to send the ACCEPT to the Opening end
5. When ACCEPT reaches Opening end it causes the Opening application to be unblocked and an EST to be sent
6. When EST reaches Listening end the connection is established7. TCONS only accepts send and receive requests when the connection is established
i.e. TCONS in ESTABLISHED state.
CALL BACK SET UP
Sender Listener
= TCONS state
ACC = ACCEPTING
DATA
ACK
CALL BACK SET UPOR BLOCKING
CALL BACK INVOKEDOR UNBLOCKED
ES
TA
BL
ISH
ED
SEND AND RECEIVE
NO
T E
ST
AB
LIS
HE
D
SEND.REQ
REJECT.IND
RECEIVE.REQ
1. TCONS rejects RECEIVE.REQ because connection not established. Call Back not registered by TCONS because of error.
2. TCONS rejects SEND.REQ because connection not established. Call Back not registered by TCONS because of error.
Sender Receiver
= TCONS state
ACC = ACCEPTING
ERROR RETURNEDIMMEDIATELY
NO
T E
ST
AB
LIS
HE
D
SEND AND RECEIVEERRORS
REJECT.IND ERROR RETURNED IMMEDIATELY
ES
TA
BL
ISH
ED
SEND.REQ
RECEIVE.IND
RECEIVE.REQ
CALL BACK INVOKED
1. RECEIVE.REQ prepares TCONS to receive data i.e. gives it a buffer. TCONS sets up call back to indicate when data received.
2. SEND.REQ sends data. TCONS sets up call back and also starts timeout timer.3. No ACK received by Sender so sender times out and gives TIMEOUT.IND indication
to application.4. Blocking RECEIVE.REQ sets a timeout . If timeout timer expires before data
received then a timeout error is returned.
CALL BACK SET UP
Sender Receiver
= TCONS state
ACC = ACCEPTING
DATA
ACK
CALL BACK SET UPOR BLOCKING
CALL BACK INVOKEDOR UNBLOCKED
ES
TA
BL
ISH
ED
SEND AND RECEIVETIMEOUT
TIMEOUT.IND
RECEIVE.REQ
RETURNS TIMEOUT ERROR
BLOCKING
RETRY = 0
FAILURE.IND
ES
TA
BL
ISH
ED
SEND.REQ
RECEIVE.IND
RECEIVE.REQ
CALL BACK INVOKED
1. RECEIVE.REQ prepares TCONS to receive data i.e. gives it a buffer. TCONS sets up call back to indicate when data received.
2. SEND.REQ sends data. TCONS sets up call back and also starts timeout timer.3. No ACK received by Sender so sender times out and gives TIMEOUT.IND indication
to application.4. Blocking RECEIVE.REQ sets a timeout . If timeout timer expires before data
received then a timeout error is returned.
CALL BACK SET UP
Sender Receiver
= TCONS state
ACC = ACCEPTING
DATA
ACK
CALL BACK SET UPOR BLOCKING
ES
TA
BL
ISH
ED
SEND AND RECEIVERETRY = 1
DATATIMEOUT AND RETRY
DATA WITH SAME SEQUENCE NUMBER SO NOT PASSED TO APPLICATIONACK
SEND.CONFCALL BACK INVOKEDOR UNBLOCKED
ES
TA
BL
ISH
ED
SEND.REQ
RECEIVE.IND
RECEIVE.REQ
CALL BACK INVOKED
1. RECEIVE.REQ prepares TCONS to receive data i.e. gives it a buffer. TCONS sets up call back to indicate when data received.
2. SEND.REQ sends data. TCONS sets up call back and also starts timeout timer.3. No ACK received by Sender so sender times out and gives TIMEOUT.IND indication
to application.4. Blocking RECEIVE.REQ sets a timeout . If timeout timer expires before data
received then a timeout error is returned.
CALL BACK SET UP
Sender Receiver
= TCONS state
ACC = ACCEPTING
DATA
ACK
CALL BACK SET UPOR BLOCKING
ES
TA
BL
ISH
ED
SEND AND RECEIVERETRY = 1
DATATIMEOUT AND RETRY
CALL BACK INVOKEDOR UNBLOCKED
FAILURE.IND
ES
TA
BL
ISH
ED
SEND.REQ
RECEIVE.IND
RECEIVE.REQ
CALL BACK INVOKED
1. RECEIVE.REQ prepares TCONS to receive data i.e. gives it a buffer. TCONS sets up call back to indicate when data received.
2. SEND.REQ sends data. TCONS sets up call back and also starts timeout timer.3. No ACK received by Sender so sender times out and gives TIMEOUT.IND indication
to application.4. Blocking RECEIVE.REQ sets a timeout . If timeout timer expires before data
received then a timeout error is returned.
CALL BACK SET UP
Sender Receiver
= TCONS state
ACC = ACCEPTING
DATA
ACK
CALL BACK SET UPOR BLOCKING
ES
TA
BL
ISH
ED
SEND AND RECEIVERETRY = 1
DATATIMEOUT AND RETRY
CALL BACK INVOKEDOR UNBLOCKED
FAILURE.INDACK
DATA WITH SAME SEQUENCE NUMBER SO NOT PASSED TO APPLICATION
ACK IS IGNORED IF IT IS RECEIVED AFTER LAST RETRY TIMEOUT
CONN A QoS-A
CONN B QoS-B
CONN C QoS-C
CONN D QoS-D
ADDR
PORT
SAPNot allowed connection
Allowed connection
Top Related