doc: add some message sequence charts

- Connection establishment
- Connection close
- Packet transfer
This commit is contained in:
Thomas Kolb 2024-06-22 01:29:29 +02:00
parent 95d9eda0a0
commit 1840b3099c
2 changed files with 110 additions and 1 deletions

View file

@ -1,2 +1,2 @@
hamnet70.html: hamnet70.adoc hamnet70.html: hamnet70.adoc
asciidoctor $< asciidoctor -r asciidoctor-diagram $<

View file

@ -228,12 +228,121 @@ Due to the long possible bursts, this system can achieve high throughput if ther
=== Ideas === Ideas
To be defined: To be defined:
- connection establishment procedure (request, response) - connection establishment procedure (request, response)
- how do clients get an IP(v6) address? -> should be derived from the call sign - how do clients get an IP(v6) address? -> should be derived from the call sign
- when are new clients allowed to connect? -> base station calls for any new stations in regular intervals - when are new clients allowed to connect? -> base station calls for any new stations in regular intervals
- handling of packets from unknown clients that are not connection requests - handling of packets from unknown clients that are not connection requests
- signal quality handling - signal quality handling
=== Message Sequence Charts
==== Connection Establishment
[mermaid,format=svg,svg-type=interactive]
.Connection establishment
....
sequenceDiagram
participant digi as Digipeater
participant client as Client
digi -->> client: Beacon (Broadcast)
digi -->> client: Beacon (Broadcast)
digi -->> client: Beacon (Broadcast)
Note over client: Decides to connect
client ->> digi: Connection Request
alt Connection accepted
digi ->> client: Connection Parameters
client ->> digi: Connection Acknowledgement
Note over digi,client: Connection established
else Connection rejected
digi ->> client: Connection Refusal
end
....
==== Communication during a Connection
[mermaid,format=svg,svg-type=interactive]
.In-connection communication
....
sequenceDiagram
participant digi as Digipeater
participant client as Client
Note over digi,client: Connection established
loop For up to 14 packets
digi ->> client: Packet without Transmission Request
end
digi ->> client: Packet with Transmission Request
Note over digi: Start timeout timer
alt Normal reply
loop For up to 14 packets
client ->> digi: Packet without Transmission Request
end
client ->> digi: Packet with Transmission Request
else Partial reply
loop For up to 14 packets
client ->> digi: Packet without Transmission Request
end
client --x digi: Packet with Transmission Request (lost)
Note over digi: Timeout expired
else No reply
Note over digi: Timeout expired
end
Note over digi: Query next client
....
==== Connection Shutdown
===== Client-initiated
[mermaid,format=svg,svg-type=interactive]
.Client-initiated shutdown
....
sequenceDiagram
participant digi as Digipeater
participant client as Client
Note over digi,client: Connection established
Note over client: Decides to disconnect
digi ->> client: Transmission Request
client ->> digi: Disconnect
Note over digi,client: Connection closed
....
===== Digipeater-initiated
[mermaid,format=svg,svg-type=interactive]
.Digipeater-initiated shutdown
....
sequenceDiagram
participant digi as Digipeater
participant client as Client
Note over digi,client: Connection established
Note over digi: Decides to disconnect client
digi ->> client: Disconnect Request
client ->> digi: Disconnect
Note over digi,client: Connection closed
....
== Higher Layer Protocols == Higher Layer Protocols
[appendix] [appendix]