Skip to content

Latest commit

 

History

History
128 lines (94 loc) · 5.71 KB

File metadata and controls

128 lines (94 loc) · 5.71 KB

Comparison of Low-power DNS Transports & Evaluation of Caching for DoC

This directory contains the device applications, scripts, plots, and data aggregates used for Section 5 Comparison of Low-power DNS Transports and Section 6 Evaluation of Caching for DoC of the paper.

Overview

Experiment types

There are three main experiment types that can be conducted and evaluated with the artifacts in this directory. Note that this does not include the build and packet size plots.

baseline

The baseline setup.

A simple set-up with a single DoC client separated by a single hop to the border router. We used this experiment types primarily to validate our implementation.

comp

The comp setup.

The experiment type we used for our evaluation in Section 5 Comparison of Low-power Transports, i.e., at least 2 DoC client that query 50 records from a DoC server via a forwarder/forward proxy and border router without any caching. There are 4 subtypes of this experiment type:

  • comp: The base setup from our paper with 2 DoC clients. This is the subtype presented in the paper and depicted in the figure above.
  • comp_8: A setup with 6 DoC clients (to a total of 8 nodes with forwarder/proxy and border router).
  • comp_24: A setup with 22 DoC clients (to a total of 24 nodes with forwarder/proxy and border router).
max_age

The max_age setup.

The experiment type we used for our evaluation in Section 6 Evaluation of Caching for DoC, i.e., at least 2 DoC client that query 50 records for 8 distinct names from a DoC server via a forwarder/forward proxy and border router with different caching scenarios. There are 4 subtypes of this experiment type:

  • max_age: The base setup from our paper with 2 DoC clients. This is the subtype presented in the paper and depicted in the figure above.
  • max_age_8: A setup with 6 DoC clients (to a total of 8 nodes with forwarder/proxy and border router).
  • max_age_24: A setup with 22 DoC clients (to a total of 24 nodes with forwarder/proxy and border router).

A Git submodule import of RIOT 2022.07 with the necessary Pull Requests and patches applied on top. Namely, this includes the patches in ./riot-patches and the following Pull Requests:

Git patches to RIOT required for the experiments that did not result in an upstream Pull Request.

A script that can be used to reproduce the state of ./RIOT. It fetches RIOT 2022.07 from the main RIOT GitHub repo, resets the submodule to that release and then cherry-picks the Pull Request first and then applies the patches from ./riot-patches to it.

A Git submodule import of libOSCORE.

A Git submodule import of the Quant QUIC network stack.

Git patches to Quant to make its riot/ application compilable for RIOT 2022.07.

Contains the dedicated RIOT applications used for our experiments:

  • ./apps/requester is the DNS client application used for all our experiments.
  • ./apps/proxy is the opaque forwarder and forward proxy application used for the [comp and max_age experiments][experiment types]

We also used the border router example from the ./RIOT submodule as the border router.

Contains the scripts to conduct and evaluate the experiments:

  • ./scripts/exp_ctrl contains scripts for conducting the experiments.
  • ./scripts/plots contains scripts to parse the output of the exp_ctrl scripts and generate plots from them.

Contains the outputs of the scripts in ./scripts. Results not taken into account for our paper are listed in subdirectories <discard ISO date>-<reason for discard>. You can use these log files to generate our plots, even if you do not run the experiments yourself.

In addition to the results there is an AWK script [./results/check.awk] that can check the output logs generated by the RIOT applications for correctness. Due to syncing issues between the stdio of RIOT and FIT IoT-LAB characters might get lost in rare cases, skewing the evaluation. This script used to spot these errors, but also unusual timeouts due to crashed or resource-drained nodes.

All results are published under a CC-BY 4.0 license.

Contains the figures used in this README.