1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- @startuml
- [*] --> IDLE
- ESTABLISHING : PROBE_TIMEOUT: SendProbeIfAnySentPktsUnacked() [default]
- state ACTIVE {
- state ESTABLISHING {
- PROACTIVE_VER_NEG :
- PRE_INITIAL :
- INITIAL_EXCHANGE_A :
- REACTIVE_VER_NEG :
- INITIAL_EXCHANGE_B :
- INITIAL_EXCHANGE_CONTINUED :
- HANDSHAKE :
- HANDSHAKE_CONTINUED :
- HANDSHAKE_COMPLETED :
- HANDSHAKE_CONFIRMED :
- [*] --> PROACTIVE_VER_NEG : use proactive VN?
- [*] --> PRE_INITIAL : else
- PROACTIVE_VER_NEG --> PRE_INITIAL : RX:VER_NEG
- PROACTIVE_VER_NEG --> PROACTIVE_VER_NEG : PROBE_TIMEOUT
- PRE_INITIAL --> INITIAL_EXCHANGE_A : ε
- INITIAL_EXCHANGE_A --> INITIAL_EXCHANGE_B : RX:RETRY
- INITIAL_EXCHANGE_A --> INITIAL_EXCHANGE_CONTINUED : RX:INITIAL
- INITIAL_EXCHANGE_A --> REACTIVE_VER_NEG : RX:VER_NEG
- REACTIVE_VER_NEG --> PRE_INITIAL : ε
- INITIAL_EXCHANGE_B --> INITIAL_EXCHANGE_CONTINUED : RX:INITIAL
- INITIAL_EXCHANGE_CONTINUED --> HANDSHAKE : TLS:HAVE_EL(HANDSHAKE)
- HANDSHAKE --> HANDSHAKE_CONTINUED : RX:HANDSHAKE
- HANDSHAKE_CONTINUED --> HANDSHAKE_COMPLETED : TLS:HANDSHAKE_COMPLETE
- HANDSHAKE_COMPLETED --> HANDSHAKE_CONFIRMED : RX:1RTT[HANDSHAKE_DONE]
- }
- OPEN :
- [*] --> ESTABLISHING
- }
- state TERMINATING {
- CLOSING :
- DRAINING :
- CLOSING --> DRAINING : RX:ANY[CONNECTION_CLOSE]
- }
- HANDSHAKE_CONFIRMED --> OPEN : ε
- IDLE --> ACTIVE : APP:CONNECT
- IDLE --> TERMINATED : APP:CLOSE
- TERMINATING --> TERMINATED : TERMINATING_TIMEOUT, RX:STATELESS_RESET
- ACTIVE --> CLOSING : APP:CLOSE
- ACTIVE --> DRAINING : RX:ANY[CONNECTION_CLOSE]
- ACTIVE --> TERMINATED : IDLE_TIMEOUT, RX:STATELESS_RESET
- @enduml
|