Glossary
Short definitions for NSB's core terminology, each linked to the page that covers it in full.
NSB Daemon โ The central server process that registers clients, distributes configuration, and routes payloads between application clients and simulator clients. See Architecture Overview.
NSBAppClient โ The application-side client class. Presents a simplified send()/receive() interface so an application can communicate over NSB as if it were a regular network. See Python / C++.
NSBSimClient โ The simulator-side client class. Presents a fetch()/post() interface that integrates a network simulator into the NSB pipeline. See Python / C++.
MessageEntry โ The object/struct returned by receive(), fetch(), and listen(), containing the source, destination, payload, and payload size of a delivered message. See Python / C++.
PULL Mode โ A system mode (mode: 0) where clients explicitly poll the daemon for messages; no message is delivered unless requested. See System Modes.
PUSH Mode โ A system mode (mode: 1) where the daemon automatically forwards payloads to clients as soon as they're available, requiring persistent connections. See System Modes.
System-Wide Mode โ A simulator mode (simulator_mode: 0) where a single NSBSimClient handles all message routing for the entire simulation. Used by top-down simulators like ns-3. See Simulator Modes.
Per-Node Mode โ A simulator mode (simulator_mode: 1) where each simulated node has its own NSBSimClient, identifier-matched to its corresponding NSBAppClient. Used by bottom-up simulators like OMNeT++. See Simulator Modes.
Payload โ The actual data being transmitted between an application and a network simulator through NSB โ raw bytes in Python, a std::string in C++. See Payload Lifecycle.
Redis Key โ A short (<32 byte>) lookup string returned when a payload is cached in Redis, transmitted through the bridge instead of the full payload to keep bridge performance independent of payload size. See Redis Storage.
nsbm โ The single Protobuf message type used for all communication between the daemon, application clients, and simulator clients in NSB. See Protobuf Schema.
INIT Handshake โ The registration sequence every client performs on startup: introducing itself to the daemon and receiving the system configuration in response. See Payload Lifecycle โ Initialization Handshake.
fetch() โ The NSBSimClient method that retrieves a payload waiting to be routed through the simulated network. See Python / C++.
post() โ The NSBSimClient method that notifies NSB a payload has arrived at its destination within the simulated network. See Python / C++.
Transport Backend โ The underlying mechanism NSB uses to move messages between clients and the daemon โ either raw TCP sockets (default) or RabbitMQ (AMQP). See Socket Backend / RabbitMQ Backend.
Co-Simulation โ Running application logic natively in its own process while a separate network simulator models the communication layer, rather than re-implementing the application inside the simulator. See Background & Related Work.
Go Deeperโ
- What is NSB? โ the full conceptual introduction
- Architecture Overview โ how all of these terms fit together