diff --git a/docs/about/overview/mesh-alg.mdx b/docs/about/overview/mesh-alg.mdx index 43f8b7ed..5a9336c2 100644 --- a/docs/about/overview/mesh-alg.mdx +++ b/docs/about/overview/mesh-alg.mdx @@ -69,6 +69,7 @@ The default messaging provided by Layer 1 is extended by setting the `WantAck` f > packet (because naive flooding algorithm). If it hears that, the odds (given typical LoRa topology) are very high that every node should eventually receive the message. So FloodingRouter.cpp generates an implicit ACK which is delivered to the original sender. If after some time we don't hear anyone rebroadcast our packet, we will timeout and re-transmit, using the regular resend logic. If a transmitting node does not receive an ACK (or NAK) packet after a certain expiration time, it will use Layer 1 to attempt a re-transmission of the sent packet. A reliable packet (at this 'zero hop' level) will be resent a maximum of three times. If no ACK or NAK has been received by then the local node will internally generate a NAK (either for local consumption or use by higher layers of the protocol). The re-transmission expiration time is based on the maximum time it would take to receive an (implicit) ACK, taking the airtime of the sent packet and any processing delay into account. +For direct messages, the intended recipient will also send a real ACK all the way back to the original sender, but the device will only retransmit when it received no ACK at all. ### Layer 3: (Naive) Flooding for Multi-Hop Messaging