This is a list of project ideas organized by topic. RON for a cloud-native era: ==================== The world has changed considerably since 2001, when the RON paper was published. One interesting project could be reconceptualizing or reimplementing RON-style ideas in the context of virtual networks interconnecting VMs in the public cloud today. Studying cloud-based overlay networks: ==================== Similar to the Skyplane paper, measure the performance of networks connecting virtual machines, both within and across cloud regions/zones. You could use the Skyplane software itself (available on GitHub) to try out some of these experiments. Simulating P2P protocols: ===================== Several P2P systems exhibit rich behavior that is ideally suited for a simulation based study. Can you study the behavior of a DHT protocol such as Kademlia or Chord under conditions of significant node churn? Analyzing experimental data: ====================== The Pantheon and Puffer projects have generated a significant amount of measurement data from measuring real networked systems in the wild. Can you analyze the data generated from these projects to derive interesting insights? https://puffer.stanford.edu/ https://pantheon.stanford.edu/ Congestion control: ===================== 1. Design a new congestion-control algorithm for a particular specialized setting (e.g., the Sprout algorithm (https://cs.nyu.edu/~anirudh/CSCI-GA.2620-001/papers/sprout.pdf) is designed explicitly for cellular networks, while DCTCP (https://cs.nyu.edu/~anirudh/CSCI-GA.2620-001/papers/dctcp.pdf) targets data centers). 2. The emergence of a new breed of programmable high-speed switches (http://yuba.stanford.edu/~nickm/papers/RMT-SIGCOMM.pdf and https://barefootnetworks.com/products/brief-tofino/) allows us to explore the use of these switches for new congestion-control algorithms that leverage a limited amount of computation within the switch (https://people.csail.mit.edu/alizadeh/papers/perc-hotnets15.pdf). Can you think of a way to use these new switches to design new congestion-control algorithms that significantly outperform purely end-to-end schemes? Machine learning in service of networking: ==================== There has been quite some research in applying machine learning or statistics to networking (also called data-driven networking) over the last couple of years. There are still many unsolved networking problems that could potentially benefit from a machine learning approach to them. Here's a selection of papers to get you started. This list is not exhaustive, and I haven't read all these papers in depth to know if everything's relevant. This selection of papers is roughly organized into a few different areas. These three papers apply machine learning techniques to the problem of video streaming: choosing the best bit rate for a video (e.g., 1080 p, 720 p, or 144 p) in response to changing network conditions. https://www.cs.cmu.edu/~junchenj/pytheas.pdf https://www.cs.cmu.edu/~junchenj/cfa.pdf https://people.csail.mit.edu/alizadeh/papers/pensieve-sigcomm17.pdf This set of papers applies machine learning to the problem of congestion control. http://nms.csail.mit.edu/papers/sigcomm13.pdf https://cs.nyu.edu/~anirudh/nsdi13-final113.pdf https://cs.nyu.edu/~anirudh/learnability-sigcomm2014.pdf The next paper applies it to the problem of cluster scheduling in data centers. https://people.csail.mit.edu/alizadeh/papers/deeprm-hotnets16.pdf The next set of papers talk about data-driven networking in general. https://www.cs.cmu.edu/~junchenj/comsnet-ddn.pdf https://conferences.sigcomm.org/hotnets/2017/papers/hotnets17-final59.pdf Network security ========================= Network security remains a challenge as the latest Mirai botnet attacks (https://zakird.com/papers/mirai.pdf) and SSL vulnerabilities show (https://jhalderm.com/pub/papers/heartbleed-imc14.pdf). Measuring network security threats and developing defenses to them (http://nms.csail.mit.edu/papers/dqe-nsdi06.pdf and https://cs.nyu.edu/~mwalfish/papers/speakup-tocs10.pdf) continues to be an interesting source of research ideas. If you're interested in this topic, come talk to me about it. The ToR project provides anonymity, but its current performance is quite poor (e.g., https://metrics.torproject.org/torperf.html?start=2017-11-05&end=2018-02-03&source=all&server=public&filesize=50kb shows it takes a few seconds to fetch 50 KBytes using ToR, which is a throughput of a few 100 kbps). Can we change this tradeoff so that we can provide signficantly better performance but slightly less anonymity? This paper: https://www.usenix.org/system/files/conference/nsdi16/nsdi16-paper-tschorsch.pdf highlights some of the reasons why performance and anonymity are at odds with each other. Measuring and explaining network performance ========================= There is considerable variability in network performance across space and time especially on cellular networks. Can you quantify this variability and explain it? Here's one relatively recent study comparing the performance of WiFi and cellular networks: https://cs.nyu.edu/~anirudh/imc086-dengA.pdf More expressive forms of routing ======================== The Internet's predominant routing protocol, BGP, is limited in the kinds of routing policies it can express. For instance, it is hard for BGP to say that 50% of your traffic must flow on one link and 50% on another. The SDX paper: https://cs.nyu.edu/~anirudh/CSCI-GA.2620-001/papers/sdx.pdf talks about some of these limitations of BGP. Can you develop extensions to BGP (or your own new routing protocol) that handles some of these richer routing policies, e.g., send traffic through router R1 for application A, but through router R2 for application B?