Experiment OverviewΒΆ

The topology creator (reserve.py) and experiment runner (runexp.py) in this repository create a topology and run a limited experiment on it. The root repositories for this project will contain more advanced experiments over time. This limited experiment evaluates the effect of packet reordering on packet delivery time, and also resource usage in the network function (queue depth, and thus memory usage).

The reserve.py script creates a single remote management endpoint and an arbitrary number of remote sites with a configured number of sensors for those sites. Packets between these sites traverse a commodity transport that is unreliable and that unreliability is configurable (latency and reordering). The basic topology configuration is as shown below:

../_images/variant-topology.png

You can configure the number of packets-per-second (pps) sent by each sensor, the number of sites and sensors, the latency in the network, and the reordering applied to those packets. The default GENI VTS reordering is applied using netem, which sends packets before their typical delay, so that delay is broken up across the network to make the mean delivery time still match your requested latency while offering reordering.

Note

The reordering applied delay is by default 10% of the overall requested delay, which means that the interarrival time from the sensors must be less than the delay in order to cause reodering in the same flow (e.g. if 10% of your delay is 100ms and you send packets twice a second, reordering within the same flow will not occur).