A testbed to replay, simulate, and benchmark autonomous systems communications supporting dynamic topologies, network state fluctuations, and highly scalable (2 to 10k instances).
Following an initial comparative study of available solutions, we have deployed a testbed to test autonomous systems communications. Autonomous systems networks have very specific characteristics that differ from traditional IT networks, or even some wireless networks. For these reasons, a specialised testbed needed to be selected and deployed.
Our testbed uses Testground. Testground is a platform for testing, benchmarking, and simulating distributed and peer-to-peer systems at scale. It’s designed to be multi-lingual and runtime-agnostic, scaling gracefully from 2 to 10k instances, only when needed.
This testbed allow us to test communication with:
- Dynamic topology (e.g., multiples network paths changing in real time)
- Control over the simulated links characteristics (e.g., introduce sudden latency spikes, packet loss, disconnections, route changes, etc…)
- Support for arbitrary protocols (since autonomous systems often use specific, possibly proprietary protocols)
- High scalability (to simulate small networks or networks with thousands of nodes)
- Possibility of using tools for logging, benchmarking, and data analysis
The Testground testbed was deployed locally and tested with test cases. Testground test plans are natively written in the Go programming language, therefore some time was taken to learn the basics of Go and experiment with the Testground tool to have solid bases for our future experiments. We also experimented with a Bitswap/IPFS dataset and could execute a Testground test plan with these protocols as well.
Cranfield University shared some autonomous vehicle datasets that can be used in the Testground testbed for simulation and security experiments. We have also found other valuable datasets shared by other universities that we may use in our incoming experiments. The possibility of creating our own datasets from scratch, however there is a clear challenge to artificially generate realistic datasets and to prove their realism, therefore, we will prioritise using real-world captured data when possible.
While our current Testground testbed allow us to replay network communications from a dataset, we are especially interested in using the other functions of Testground that will allow us to create entirely new scenarios. Rather than replaying network communications, Testground can also be taught how to interact with a binary, an API, or any other form of external program. Using this function, we plan on simulating a wide variety of experiments on autonomous system networks. These experiments include:
- Observe malicious nodes attacks (for example to eavesdrop or otherwise capture data through Man-in-the-Middle attacks)
- Introduce sudden spike of churn on the network and estimate its resiliency
- Sinkhole attacks (a node attracting network traffic through false route advertising)
- Jamming and other physical layer attacks
- Resource depletion attacks
- General resiliency
We believe that this testbed will be useful for the entire TAS-S research project and other researchers, as well as the perfect tool to create collaborative work between individual researchers, even between different groups.
For further details, please email us.