3.1.5.2 State Machine Control State Transitions

The state machine for the S20 protocol has seven transitions between the four control states. The following table and diagram illustrate these seven transitions.

Control State Transition

Description

1

The session creator node sends an S20_CREATE packet, or a new node sends an S20_JOIN packet.

2

A node receives an S20_CREATE packet from the creator node.

3

A node receives an S20_RESPOND packet from another node.

4

A node receives an S20_RESPOND packet from another node.

5

The creator node sends an S20_END packet or receives an S20_COLLISION packet. This transition also occurs when a non-creator node sends an S20_LEAVE packet or receives either an S20_END packet, an S20_DELETE packet, or an S20_COLLISION packet.

6

The creator node sends an S20_END packet or receives an S20_COLLISION packet. This transition also occurs when a non-creator node sends an S20_LEAVE packet or receives either an S20_END packet, an S20_DELETE packet, or an S20_COLLISION packet.

7

A node sends an S20_LEAVE packet or receives either an S20_END packet, S20_DELETE packet, or an S20_COLLISION packet.

The diagram in figure 5 illustrates the control flow of these seven transitions. Note that any requests sent out of order (for example, S20_JOIN while in the Share State) are ignored and discarded.

S20 protocol control state transitions

Figure 6: S20 protocol control state transitions