Lines Matching refs:state
7 QUIC client-side connection state can be broken down into five coarse phases of
10 - The Idle substate (which is simply the state before we have started trying to
12 - The Active state, which comprises two substates:
13 - The Establishing state, which comprises many different substates;
14 - The Open state;
15 - The Terminating state, which comprises several substates;
16 - The Terminated state, which is the terminal state.
22 concepts. For example, the Establishing state uses Initial, Handshake and 1-RTT
34 attention should not be given to the Open state, as 1-RTT application
35 communication can occur even still in the Establishing state (for example, when
38 However, the state machine described herein is helpful as an aid to
44 - The Establishing state involves the use of Initial and Handshake
50 1-RTT packets are also invoked in the Establishing state).
54 The Establishing state is subdivided into the following substates:
61 If it is used, the time spent in this state is based on waiting for
77 Negotiation state);
79 - an Initial packet (leading to the Initial Exchange Confirmed state).
84 state and proceed as though proactive version negotiation was
93 later used to cryptographically bind the established connection state to
97 state from Initial Exchange A.
103 state);
131 to the Handshake Completed state.
151 Though this discussion only covers the client state machine, it is worth
158 The principal effect of moving to this state is that the Handshake
162 The Establishing state is now done and there is immediate transition
163 to the Open state.
165 - The Open state is the steady state of the connection. It is a single state.
173 - the Terminating — Closing state if the local application initiates an
175 - the Terminating — Draining state if the remote peer initiates
177 - the Terminated state if the idle timeout expires; a `CONNECTION_CLOSE`
179 - the Terminated state if the peer triggers a stateless reset; a
182 - The Terminating state is used when closing the connection.
186 Key updates may not be initiated in the Terminating state.
188 This state is divided into two substates:
190 - The Closing state, used for a locally initiated immediate close. In
191 this state, a packet containing a `CONNECTION_CLOSE` frame is
197 state, which exists solely to ensure delivery of the `CONNECTION_CLOSE`
200 The endpoint progresses to the Terminated state after a timeout
204 state instead, if it receives a `CONNECTION_CLOSE` frame prior
208 - The Draining state, used for a peer initiated immediate close.
211 state. It may optionally send one `CONNECTION_CLOSE` frame immediately
212 prior to entering this state.
214 The endpoint progresses to the Terminated state after a timeout
217 - The Terminated state is the terminal state of a connection.
220 state. There is no longer any requirement to send or receive any packet. No
222 totally quiescent state. The state associated with the connection may now be
225 We express this state machine in more concrete form in the form of a table,
232 Where an action is specified in the Transition/Action column but no new state,
233 no state change occurs.
433 <td>[terminal state]</td>
488 Common QUIC implementations appear to prefer modelling connection state as a set
491 hierarchical states with default handlers for common events. [The state machine
493 image).](./images/connection-state-machine.png)
498 - `APP:CONNECT`: Supported in `IDLE` state only.
507 `ESTABLISHING.PROACTIVE_VER_NEG` state, which reenters that state to trigger
514 - `TERMINATING_TIMEOUT`: Timeout used by the `TERMINATING` state only.
532 this does not require modelling as additional state.
545 From here we can discern state dependence of different events:
581 - `TERMINATING_TIMEOUT`: Timer used in `TERMINATING` state only.
599 We choose to model the CSM's state as follows:
602 `TERMINATED` states are modelled explicitly as a state variable. However,
621 - Phase 1: “Steady state only” model which jumps to the `ACTIVE.OPEN`
622 state with a hardcoded key.