TODO: Write this out in more detail. Feel free to skip for now.
Physical network abstraction
The physical network abstraction layer is responsible for:
- Keeping and continuously updating routing tables mapping external identities and compositions thereof to IP addresses (and compositions thereof)
- Keeping and continuously updating routing tables tracking which agents are interested in which topics
- Efficient pub-sub topic broadcast (particularly for messages to the "all" identity)
- Frequently testing latency to other known external identities and providing this as a measure of physical entanglement which can be used by higher layers
- Routing messages to and from other agents, including those not destined for this agent (this will require some configuration from higher layers for anti-DoS)
- Also, keeping track of "routing kudos" in some approximate fashion which doesn't incur too much overhead.