docs: define an Empty Frame and its usage
This commit is contained in:
parent
c9916c08da
commit
87eeb045b0
|
@ -197,6 +197,10 @@ The total Link Layer Header length is therefore at least 6 byte and at most 18 b
|
|||
| Connection management
|
||||
| Includes functions such as establishing (or denying) new connections or closing open connections.
|
||||
|
||||
| `010`
|
||||
| Empty frame
|
||||
| Used for simple acknowledgements or transmission requests. This frame itself is not acknowledged.
|
||||
|
||||
| `100`
|
||||
| Connectionless frame
|
||||
| A data packet that is sent outside of a connection.
|
||||
|
@ -221,10 +225,30 @@ The _RX sequence number_ is the packet number the sending station expects to see
|
|||
|
||||
Example: The two stations A and B just connected and expect to see sequence number 0 from each other. Station A transmits a burst with three packets: P0, P1, P2. Station B decodes packet P0 and increases the expected number to 1. P1 is not decoded due to noise and therefore lost. P2 is again decoded, but is dropped because its sequence number is 2 and not the expected 1. In its transmission cycle, station B tells station A that it expects P1 next. Station A therefore _goes back to_ P1 in its transmission queue and starts transmitting all packets after P1 again.
|
||||
|
||||
If a station does not have anything to transmit, it shall transmit an _Empty Frame_ to acknowledge the data from the other side.
|
||||
|
||||
As the sequence numbers in Hamnet70 have 4 bits, up to 15 packets can be transmitted in a burst before the numbers become ambiguous.
|
||||
|
||||
Due to the long possible bursts, this system can achieve high throughput if there is low packet loss. However, it can also become very slow if many packets are lost because all packets after the first error have to be repeated. Therefore it might be a good idea to adjust the burst length depending on the packet loss and send smaller bursts if only few packets go through.
|
||||
|
||||
=== Frame Definitions
|
||||
|
||||
==== Empty Frame
|
||||
|
||||
The Empty Frame does not contain any data and therefore only consists of the header and the CRC.
|
||||
|
||||
It is used in two cases:
|
||||
|
||||
- The digipeater requests a transmission from a client, but does not have any data or management frames queued.
|
||||
In this case the _TX Request_ field is set to 1.
|
||||
- A station acknowledges frames from another station when it does not have any data to transmit.
|
||||
Here, _TX Request_ is set to 0.
|
||||
|
||||
Empty Frames are not acknowledged.
|
||||
They therefore do not have a _TX sequence number_; this field is reserved and should be set to zero.
|
||||
|
||||
The _RX sequence number_ and all other header fields are used as usual.
|
||||
|
||||
=== Ideas
|
||||
|
||||
To be defined:
|
||||
|
|
Loading…
Reference in a new issue