How thunderbolt404/icdtn works
The ONE is an opportunistic-network simulator. A user configures and starts a scenario; the simulator creates hosts with movement, interfaces, routers, and applications, then advances time and processes events, mobility, contacts, and message transfers. Applications can generate or handle traffic, while reports and the GUI expose simulation outcomes. The graph retains major mobility, connectivity, routing, application, reporting, and visualization areas. Evidence is limited to README statements and indexed excerpts/references; several internal runtime links are therefore omitted.
Main entry points: SimScenario.java Scenario setup · World.java Simulation world · DTNHost.java Mobile hosts · MessageRouter.java Router core
Components 23
Simulation runtime
- Configuration
src/core/Settings.java - Scenario setup
src/core/SimScenario.java - Event handling
src/input/EventQueueHandler.java - Simulation world
src/core/World.java - Simulation clock
src/core/SimClock.java - External event input
src/input/ExternalEventsReader.java
Network behavior
- Mobile hosts
src/core/DTNHost.java - Mobility models
src/movement/MovementModel.java - Map movement
src/movement/MapBasedMovement.java - Simulation maps
src/movement/map/SimMap.java - Network interfaces
src/core/NetworkInterface.java - Connectivity models
src/interfaces/ConnectivityGrid.java - Contact links
src/core/Connection.java
Traffic and routing
- Messages
src/core/Message.java - Routing strategies
src/routing/ActiveRouter.java - Router core
src/routing/MessageRouter.java - Node applications
src/core/Application.java - CCN application
src/applications/CCN_application.java
Results and interface
- Report framework
src/report/Report.java - Simulation reports
src/report/CCNApplicationReport.java - Visual interface
src/gui/playfield/PlayField.java - Text interface
src/ui/DTNSimUI.java
Other components
- Simulation user
Connections 25
- Simulation user → Configuration: configures
src/core/Settings.java - Configuration → Scenario setup: configures
src/core/SimScenario.java - Scenario setup → Event handling: creates
src/core/SimScenario.java - Scenario setup → Simulation world: creates
src/core/SimScenario.java - Simulation world → Event handling: processes
src/core/World.java - Simulation world → Simulation clock: advances
src/core/World.java - Simulation world → Mobile hosts: updates
src/core/World.java - Scenario setup → Mobility models: configures
src/core/SimScenario.java - Scenario setup → Simulation maps: loads
src/core/SimScenario.java - Mobile hosts → Mobility models: replicates
src/core/DTNHost.java - Mobile hosts → Network interfaces: owns
src/core/DTNHost.java - Network interfaces → Contact links: creates
src/core/NetworkInterface.java - Network interfaces → Connectivity models: uses
src/core/NetworkInterface.java - Mobile hosts → Router core: delegates
src/core/DTNHost.java - Routing strategies → Router core: extends
src/routing/ActiveRouter.java - Router core → Messages: buffers
src/routing/MessageRouter.java - Routing strategies → Contact links: transfers over
src/routing/ActiveRouter.java - Contact links → Mobile hosts: delivers to
src/core/Connection.java - Router core → Node applications: dispatches to
src/routing/MessageRouter.java - CCN application → Node applications: implements
src/applications/CCN_application.java - Scenario setup → Node applications: registers
src/core/SimScenario.java - Simulation reports → Report framework: extends
src/report/CCNApplicationReport.java - Text interface → Scenario setup: starts
src/ui/DTNSimUI.java - Visual interface → Simulation world: renders
src/gui/playfield/PlayField.java - External event input → Event handling: supplies events