Radio Network Simulator

I simulated a store-and-forward network composed of 173 vhf radios. I implemented a hierarchal routing and showed that it could route traffic backwards to use a discovered transcontinental link. website

Page one of a Mimeograph report explaining the store-and-forward radio network.

The program was written in pascal using dynamically allocated structures for both radios and messages.

I later translated this to Java and found that the decomposition of structs served well as objects.

The program exhibited behavior that I could not understand based on the time series and scatter plots from the first generation. I saw messages delivered with hop counts much higher than the "diameter" of the network.

I later discovered areas of congestion could create temporary routing dilemmas that sent packets in circles. These all cleared as the congested network drained once the load abated.


I stored lat/lon in the dataset and used it to draw a large map on the CalComp plotter. I took this to the Dayton Hamfest and showed the then young K1ZZ, ARRL technical editor, my vision for ham radio networking.

I collected stats out of some runs and render them as a map in Bill Mills' Picture Model abstraction. I drew bubbles at cities varying size for backlog and color (on a thermal scale) for throughput.

I used an early raster graphic monitor to render frames for an animation. Joe Pruitt helped with the c coding. We shot it in Super-8 movie film which got shown at an ARRL digital communications conference.

Load and route visualization that runs concurrently with the Java version of the simulator.

I wrote a interactive map for the Java version and added interactive trace-route capability. I debugged this with Test Point. I jittered the route endpoints which gave the lines a sense of width before Java had more than single pixel width lines.


Runs were reasonably expensive on the CDC 6500. I traced this to insertion overhead in the event queue.

I later discovered Leftist Trees in Knuth volume III. This was the structure I needed for my priority queue.