- Nodes running as processes
- Each node has a UDP server thread which listens for incoming packets and a main thread which sends hello to all peers
- 1000x1000 grid space where each node will have a random physical coordinate
- 20 nodes
- Every node will form links with 5 nearest neighbors
- Balancing NUM_NODES and CONNECTIVITY (k) will give a graph which will be connected even when some nodes die.
- Install packages
pip install -r requirements.txt
- Execute main.py
cd simulations && python3 main.py
- Simulate wireless network using dynamic node positions
- a central coordinate for every group
- nodes running in group get coordinates within the defined radius of the group
- neighbor discovery: every node listens for neighbors: calculate received signal strength as a function of euclidean distance and noise
- A common file for all node to figure out its coordinates and neighbors
- All communication using UDP packets
- Advertisements to all nearby nodes.
- Content
- Data information
- Current timestamp
- Proof of identity signed data + timestamp
- public key
- When received and verified, node registers as a neighbor and adds to neighbor table as a link
- Node has an advertisement period
- If neighbor fails to send 3 times (dampening), then it is removed from table
- Content
- Node:
- Neighbor table -> FIB
- Cache -> Content Store
- Pending Interest Table -> PIT
- Node - either sensor or collecter
- Longest prefix match