ATTENTION/WARNING - NE PAS DÉPOSER ICI/DO NOT SUBMIT HERE

Ceci est la version de TEST de DIAL.mem. Veuillez ne pas soumettre votre mémoire sur ce site mais bien à l'URL suivante: 'https://thesis.dial.uclouvain.be'.
This is the TEST version of DIAL.mem. Please use the following URL to submit your master thesis: 'https://thesis.dial.uclouvain.be'.
 

Leveraging WebAssembly to create a customizable sleep proxy

(2024)

Files

BertrandVanOuytsel_66991900_2024.pdf
  • Open access
  • Adobe PDF
  • 893.33 KB

BertrandVanOuytsel_66991900_2024_Appendix1.zip
  • Open access
  • Unknown
  • 23.84 KB

Details

Supervisors
Faculty
Degree label
Abstract
Since their introduction in 1992, several designs of sleep proxies have been proposed in literature. A sleep proxy is a type of proxy capable of allowing devices to enter a low power consumption state, also known as sleep mode, while still maintaining a presence on the network. The main issue to solve when designing a sleep proxy is to adapt it to the needs of all the hosts that rely on its services. Indeed, different hosts might have different behaviors and not use the same protocols. Most current sleep proxies offer limited customization and lack support for more modern network technologies such as IPv6. In this master's thesis, we present SLOTH (SLeep Optimizer for Tired Hosts), a highly adaptive sleep proxy. Our solution is customizable thanks to a script system based on WebAssembly modules. Those scripts allow each host to formally define how the sleep proxy handles its traffic. We present an implementation of our sleep proxy written in Rust, using the WasmEdge runtime and its API. To demonstrate the capabilities of our sleep proxy, we also present a few example scripts made to handle specific protocols. We perform experiments to measure our sleep proxy's performance and overhead on a small experimental network.