# Topics
### General Requirements
Most thesis will require some familiarity with networking protocols and concepts, obtained in one of the Chair of Connected Mobility's lectures, or in iLab1/2, GRNVS, ACN etc. Even theoretical topics require programming skills.
## Exploring Reactive Synthesis for Congestion Control
[Recent work](#2) uses program synthesis to create congestion controllers under certain beliefs about the network conditions. __The main idea is that such a congestion controller is provably (i.e., formally) performant.__ The network conditions represent the "environment" that the congestion controller is "good" for. The congestion controller is allowed to have beliefs that deviate from the actual network conditions (which is the case in reality as well). Using program synthesis this way enables building congestion controllers that can be formally verified to be performant for specific network conditions. However, the work is based on templates that make strong assumptions about how a congestion controller is structured as code.
In this thesis we want to build upon this and explore how a [recently proposed combination of reactive synthesis and syntax-guided synthesis](#3) can be used to generate congestion controllers.
This thesis would enable specifying a congestion controller without having to use templates and instead relying on a simple grammar of a sequential programming language. However, the approach would still require making assumptions about the environment (the network, specifically the bottleneck on the path between client and server).
- Requirements: interest in applying theoretical CS, you don't necessarily need to be an ace in theoretical aspects and proofs but strong interest in applying formal methods is required; also C++ probably
- The use case behind this are Connected Autonomous Vehicles; one extension would be trying to create environments that include mobility or the effects of mobility
### Potential other thesis topics in a similar direction
- Investigate how an existing congestion control algorithm can be influenced to improve performance when more information is available
- Introduce pacing/queueing into a congestion control formal model (e.g., BBR for the longest time relied on `fq`qdisc for pacing)
## Declarative, Reproducible and Accurate Network Emulation
The goal of this work is to build a network emulation tool based on packet queues that is declarative, i.e., an emulation can be specified as a simple configuration, probably based on ideas from Network Calculus with arrival and service curves. The main part of this work is investigating an approach to creating an emulation setup that can approximate real-world network performance of paths on Internet. Existing tools like `dummynet`, `netem`(+`tbf`/`htb`/`hfsc`) or`mahimahi` should be compared and evaluated. Further ideas include integration with docker-based Internet Emulators (e.g., [mini-internet](https://github.com/nsg-ethz/mini_internet_project), [SEED](https://github.com/seed-labs/seed-emulator)).
- Requirements: systems programming and interest in measurements; this could be a chance to create some form of Domain-specific language
## Towards Graph-based Querying of Internet Measurement Platforms
While Internet Measurement Platforms fundamentally all provide similar data like traceroutes, pings, etc., there is no unified interface to get data from various platforms, and all data integration has to be done manually. Many of these data types are tree- or graph-like in nature (paths, DNS names, ...). The goal of this work is to build an ontology that can express the fundamental relationships that are contained within such data and to integrate different Interent Measurement Platforms for evaluation.
- Requirements: ideally you would have experience with the more theoretical aspects of ontologies and schemata, especially OWL 2 and/or RDFS
## References
##### [1]
Srikanth Sundaresan, Walter de Donato, Nick Feamster, Renata Teixeira, Sam Crawford, and Antonio Pescapè. 2011. Broadband internet performance: a view from the gateway. In Proceedings of the ACM SIGCOMM 2011 conference (SIGCOMM '11). Association for Computing Machinery, New York, NY, USA, 134–145. https://doi.org/10.1145/2018436.2018452
##### [2]
Anup Agarwal, Venkat Arun, Devdeep Ray, Ruben Martins, and Srinivasan Seshan. 2024. Towards provably performant congestion control. In 21st USENIX Symposium on Networked Systems Design and Implementation (NSDI 24), USENIX Association, Santa Clara, CA, 951–978. Retrieved from https://www.usenix.org/conference/nsdi24/presentation/agarwal-anup
##### [3]
Wonhyuk Choi, Bernd Finkbeiner, Ruzica Piskac, and Mark Santolucito. 2022. Can reactive synthesis and syntax-guided synthesis be friends? In Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation (PLDI 2022). Association for Computing Machinery, New York, NY, USA, 229–243. https://doi.org/10.1145/3519939.3523429