Skip to content

Repo housing scripts to test CJDNS, Yggdrasil Husarnet and Remote.it as networking approaches for control of remote robotic systems. Part of my Bachelor thesis project.

Notifications You must be signed in to change notification settings

pmessan/network-testing-project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Network Testing Project

This repository contains the code, CSV data and graphs used in the process of testing the two meshnets CJDNS and Yggdrasil, Husarnet, and remote .it for my bachelor thesis and project. The repo is organised as follows:

  • src/: The folder with the source code used for the tests (network-test.sh), as well as helper scripts such as:
    • rostopic_bw-parser.py: converts the output of the rostopic bw command to CSV format,
    • ping-csv.sh: saves the output of the ping command into CSV
    • plotscript.py: generates bar charts from the CSV data stored in test-results.
    • scp-speed-test.sh: tests the upload download speeds over ssh using each of the networking approaches using scp.
    • scp-speed-test-port.sh: same as scp-speed-test.sh, but allows for specification of ports. This script was used in the tests involving remote.it since the port had to be specified in the ssh and scp commands.
    • proxyservertest.sh: similar to network-tests.sh, but crafted specifically with remote.it in mind.
    • Makefile: sets up the Python virtual environment and installs packages specified in requirements.txt using pip, which are needed for the Python scripts to run successfully on any platform, provided make is installed :).
  • test-results/: the folder with the test results, organised according to locations of tests, and for each location, the tests that were performed.

Commands Used

I used a map to represent the 4 approaches by numbers: 1=Yggdrasil, 2=CJDNS, 3=Husarnet, 4=remote.it. This map was used for the $connection_method variable, and in the file names in the various folders housing the individual test results.

./network-tests.sh user@remote-host user@local-host connection_method trial_location -t [ipv4/ipv6] # run network tests between current host and remote host
make run ARGS="../test-results/Accra,\ Ghana" # used to plot the graphs
./scp-speed-test.sh user@hostname [test file size in MBs]
# change to directory of test results for a particular test e.g. cd test-results/Accra,\ Ghana
../../src/venv/bin/python3 ../../src/rostopic_bw-parser.py rostopic_bw_test/rostopic_bw_$connection_method-temp.txt | tail -n +2 >> rostopic_bw_testrostopic_bw_$connection_method.csv

More details about the code and the commands can be reveled upon close inspection of the files in their respective folders.

Thanks for Viewing!

About

Repo housing scripts to test CJDNS, Yggdrasil Husarnet and Remote.it as networking approaches for control of remote robotic systems. Part of my Bachelor thesis project.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published