Purpose of this code is to:
- Measure a networks data throughput depending on the client's position, by sending packets of different sizes to a server while using a set of different communication libraries
- Generate plots from the recorded data
To take the measurements, a client-server architecture is used. The packages functions are exposed as scripts.
communication
contains the implementations of the different communication libraries.- for each communication library
CommunicationInterface
is subclassed once CommunicationInterface
serves more as a namespace than as a real class, because it only has static methods and is not supposed to have member variables / state
- for each communication library
eval
contains the code for the evaluation tool (which is implemented using streamlit)
- Requires: Python 3 <= 3.8.10
- Install
experiments5G
with pip3, via the following methods:- When cloned locally:
[sudo] pip3 install <path/to/cloned/repository>
- Directly from the git repository:
[sudo] pip3 install pip3 install git+https://git.ni.dfki.de/ctittel/experiments5G.git
- When cloned locally:
It's recommended to run the pip3 install
command as root (with sudo
), because only then the scripts in scripts/
are installed as system CLI application.
The following assumes that you installed the python packages as root and that the scripts in the scripts/
directory are in the $PATH
.
Assumption: experiments5G
was installed as root and the scripts in scripts/
are thus available as system-wide CLI applications (if experiments5G
was installed without root you will have to find and execute the scripts from where they are located, but the usage should otherwise be the same)
- Check out the possible parameters with
experiments5G_server --help
- Run
experiments5G_server <your params>
- Check out the possible parameters with
experiments5G_client --help
- Make sure
experiments5G_server
is running and reachable - Run
experiments5G_client <your params>
- Run
experiments5G_eval
- Open
http://localhost:8502/
in the browser (should be opened automatically) - Follow the instructions in the evaluation tool