3.3.2 Client Details

The following diagram defines the client state machine.

Client state machine

Figure 18: Client state machine

State

Description

ESTABLISHED

The client has received a transport connect complete indicating that a new transport connection has been established.

WAIT for UNSECURE_BIND_ACK

The client has sent the bind PDU, in case of an unsecure call.

CONTEXT_NEGOTIATED

The client is ready to send the request PDU.

WAIT for SECURE_BIND_ACK

The client has sent a bind PDU, in case of a secure call.

WAIT for SECURE_ALTER_CONTEXT_RESP

The client has sent a SECURE_ALTER_CONTEXT  PDU and is waiting for an answer.

WAIT_RSP

The client is waiting for a response PDU.

Notes on this state machine:

When a state does not show an error transition, these extensions handle the error from this state by closing the connection.

When concurrent multiplexing is used on a connection, as soon as an independent logical thread of execution makes a transition from CONTEXT_NEGOTIATED to WAIT_RSP state, another independent logical thread of execution can make the transition from CONTEXT_NEGOTIATED to WAIT_RSP. Only one logical thread of execution is allowed to make this transition at a given time, but multiple logical threads of execution can be in the WAIT_RSP state. A client MUST NOT send any request PDU for request N+1 before it sends all request PDUs for request N.

If concurrent multiplexing on a connection is not enabled, a client MUST NOT send any request PDU for request N+1 before it receives all the response PDUs for request N.