Skip to content

Commit f37fdcc

Browse files
Explain Acronyms
1 parent ad97beb commit f37fdcc

1 file changed

Lines changed: 6 additions & 5 deletions

File tree

docs/explanation/nuclearnet.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ Key design principles:
2121
- **Decentralized mesh** — no central server or message broker.
2222
Every node is equal.
2323
- **Autonomous discovery** — nodes find each other via periodic announcements, no manual configuration of peer addresses.
24-
- **UDP-only** — both discovery and data transfer use UDP (no TCP).
24+
- **UDP-only** — both discovery and data transfer use UDP (User Datagram Protocol), not TCP.
2525
This keeps the implementation simple and avoids head-of-line blocking.
2626
- **Two socket types** — each node has an *announce socket* (for receiving discovery messages) and a *data socket* (for sending announces and transferring data).
2727
- **Subscription-based routing** — nodes advertise which message types they are interested in,
@@ -81,11 +81,11 @@ The NUClearNet engine is decomposed into focused modules:
8181
| Module | Responsibility |
8282
| -------------------- | ------------------------------------------------------------------------ |
8383
| `Discovery` | Peer lifecycle — announce, join/leave detection, peer timeout |
84-
| `Fragmentation` | Splitting large messages into MTU-sized fragments, reassembly on receive |
85-
| `Reliability` | ACK/NACK tracking, retransmission scheduling |
84+
| `Fragmentation` | Splitting large messages into MTU-sized (Maximum Transmission Unit) fragments, reassembly on receive |
85+
| `Reliability` | ACK/NACK (Acknowledgment/Negative Acknowledgment) tracking, retransmission scheduling |
8686
| `Routing` | Subscription-based message filtering per peer |
8787
| `PacketDeduplicator` | Sliding-window duplicate detection per peer |
88-
| `RTTEstimator` | Per-peer round-trip time estimation for retransmission timing |
88+
| `RTTEstimator` | Per-peer RTT (Round-Trip Time) estimation for retransmission timing |
8989

9090
## Peer discovery
9191

@@ -141,6 +141,7 @@ The announce address can be:
141141

142142
### NAT-friendly port learning
143143

144+
NAT (Network Address Translation) devices translate source ports and addresses between networks.
144145
Announces are sent from the *data socket* (ephemeral port), not the announce socket.
145146
This means the receiver learns the sender's data port directly from the UDP source address — no explicit port field is needed in the announce packet.
146147
This design also works naturally with NAT devices that translate source ports.
@@ -336,7 +337,7 @@ Key mechanisms:
336337
- **Bitset ACK** — when the receiver gets a fragment,
337338
it responds with an ACK containing a bitset of *all* received fragments for that packet group.
338339
This gives the sender full visibility into what's been received.
339-
- **RTO-based retransmission** — the sender waits one Retransmission Timeout (RTO) before retransmitting un-ACKed fragments.
340+
- **RTO-based retransmission** — the sender waits one RTO (Retransmission Timeout) before retransmitting un-ACKed fragments.
340341
Retransmitting too early wastes bandwidth; too late adds latency.
341342
- **Adaptive RTO estimation** — each peer's round-trip time is tracked using the Jacobson/Karels algorithm.
342343
The RTO adapts to changing network conditions.

0 commit comments

Comments
 (0)