Sor23-reproducing-network-research-results

=Teaching Computer Networks with Reproducible Research [Bringing foundational results into the classroom] =

About me
Student: Kurva Prashanth Mentors: Fraida Fund Wiki: https://ospo.ucsc.edu/project/osre23/nyu/edunet/

=Introduction= About project

Reproducing the stated two papers to promote reproducible research in computer networks and make the findings of these important works more concrete. Reproducing these papers involves using open-access testbeds to replicate the experiments and packaging the results for use as interactive classroom demonstrations. This project can also involve creating assessment questions and sample solutions related to the materials, which can be used by instructors in homework assignments or exams.


 * V. Jacobson, "Congestion avoidance and control," ACM SIGCOMM Computer Communication Review, vol. 18, no. 4, pp. 314–329, Aug. 1988.
 * M. Mathis, J. Semke, J. Mahdavi, and T. Ott, "The macroscopic behavior of the TCP congestion avoidance algorithm," ACM SIGCOMM Computer Communication Review, vol. 27, no. 3, pp. 67–82, Jul. 1997.

=Project goals=
 * Reproduce a selection of key results in computer networks.
 * Package the materials for use as interactive classroom demonstrations.
 * Develop assessment questions and sample solutions for instructors to use in homework assignments or exams.

Project objectives

 * Reproduce the selected results on an open-access testbed.
 * Create interactive classroom demonstrations using the reproduced results.
 * Develop assessment questions related to the reproduced results.
 * Create sample solutions to the assessment questions.

Expected deliverables

 * Reproduced results on an open-access testbed.
 * Interactive classroom demonstrations packaged for use by instructors.
 * Assessment questions related to the reproduced results.
 * Sample solutions to the assessment questions.

Tech Stack

 * Open-access testbeds (GENI, CloudLab, Chameleon, FABRIC, etc.)
 * Bash scripting for automating experiments and simulations.
 * Linux for command-line tools and environment.
 * Writing skills for creating documentation and assessment questions.

=Implementation Plan= To work on this project, It requires experience with bash scripting, build systems and linux management. I have an experience with Debian live build system and customized my low end machine with robotics and networking packages in which it has 2GB RAM and 30GB hard disk installed Debian 11 "Bullseye" with XFCE Desktop environment on it and I'm just curious to work on low end hardware, optimise software to make run very well on resource constrained devices.

I am mostly into Systems Programming, Embedded Linux, and Robotics. I use programming languages such as Assembly (x86, RISC-V), C, Python and shell scripting for Installing different packages and applications which I use. I prefer to work in a terminal over GUI and also mostly I use robotics, networking, embedded linux development tools like cross-compiler toolchains, emulators, Assemblers, Debugger, mininet, ns3, ROS, OpenCV, Wireshark, etc.

I also write good reports and blogs, I’ve previously written some blogs about free software and open hardware and experiences I had. Check here

Classic TCP result, about the fairness of TCP flows sharing a bottleneck: "Analysis of the Increase and Decrease Algorithms for Congestion Avoidance in Computer Networks" by Van Jacobson et al. (1988)
The classic TCP result about the fairness of TCP flows sharing a bottleneck is commonly referred to as the "TCP fairness" result. This result shows that when multiple TCP flows traverse a bottleneck link, each flow will receive an equal share of the available bandwidth, regardless of the number of flows or their round-trip times.

Based on mentor suggestion i'll work on to reroduce figure 5 in the paper thatshows the fairness of TCP flows sharing a bottleneck. It plots the throughput of each TCP flow against time, where each flow has a different round-trip time. The plot demonstrates that TCP flows with shorter round-trip times achieve higher throughputs than those with longer round-trip times. However, when the throughput is normalized by the round-trip time, all flows achieve a similar throughput, indicating TCP fairness.

In order to reproduce something like Figure 5, i'll try use of a  network simulator, such as NS-3 or ns-2, to simulate multiple TCP flows sharing a bottleneck link to vary the round-trip time of each flow and plot the throughput of each flow against time. Then, normalize the throughput by the round-trip time and plot the results to demonstrate TCP fairness.

I'm thinking that reproducing Figure 5 exactly may not be feasible, as the original experiments were conducted in a different networking environment and used different parameters than those available today. However, I'll follow a similar methodology, to reproduce the TCP fairness result and demonstrate the robustness of TCP congestion control mechanisms.


 * Workflow to reproduce TCP fairness using a network simulator


 * 1) Setting up the network topology:
 * 2) Creating two nodes and a bottleneck link with limited bandwidth
 * 3) Connecting the nodes through the bottleneck link
 * 4) Adding multiple TCP flows:
 * 5) Creating two TCP flows with different round-trip times and  simulate
 * 6) Recording the throughput of each flow over time and plotting the throughput of each flow over time

Reproducing the foundational result of congestion collapse as demonstrated in the paper "Analysis of the increase and decrease algorithms for congestion avoidance in computer networks"

 * Workflow:
 * 1) Setting up a network topology in Mininet that includes a bottleneck link and multiple hosts.
 * 2) Install and configure TCP Vegas, the congestion control algorithm used in the paper, on the hosts in the Mininet network, and write a script to run experiments in which the hosts generate traffic and send it through the bottleneck link.
 * 3) Run the experiments, collect and analyze data, modify the system as needed to explore different conditions, and write a report summarizing the findings.

Reproducing Mathis model under different network conditions

 * Workflow:
 * 1) Understand the Mathis model for TCP throughput and design network topologies in Mininet that include different types of links and traffic.
 * 2) Install and configure TCP Reno and/or TCP Vegas on the hosts in the Mininet network and write a script to run experiments with varying parameters.
 * 3) Collect and analyze data from the experiments, comparing the results to the Mathis model's predictions.
 * 4) Modify the system as needed to explore different conditions and write a report summarizing the findings and comparing the model's predictions to the observed behavior in the experiments.

Working Conditions

 * I plan to undertake this project from my residence or my university dormitory at Hyderabad.
 * I would be available full-time (40+ hours/week). My work timings are very flexible, but I usually work from 14:00 till 23:00 in UTC+5:30 (IST).
 * I have previously completed GSOC and multiple academic projects working remotely from residence or dormitory and face no electricity and internet network reliability issues. The space is suitable for video calls and a productive environment as per my liking.


 * Operating System:
 * Primary: Debian
 * Secondary: FreeBSD

The specifications of my machine are sufficient for development and research work, along with the support of resources from UCSC OSPO/mentor, for remote servers if required.

=Project Timeline= I plan to complete all the tasks before the coding period ends. Apart from this, I will write blogs weekly, reporting my progress and also the experiences I had while contributing this project.

The GSoC official coding period begins on May 29, 2023, and ends on November 6, 2023.

Contingency
If I get stuck on my project and my mentor isn’t around, I will use the following resources:
 * 1) Ask on the forum


 * Teaching-on-Testbeds Repositories:
 * 1) https://github.com/teaching-on-testbeds


 * Documentation and Repositories on Teaching-on-Testbeds:
 * 1) https://teaching-on-testbeds.github.io/resources/


 * Mailing lists:
 * 1) Cloudlab

=Biographical Information=

Introduction
I am Kurva Prashanth, a senior undergraduate pursuing major in Electronics & Communication Engineering.

I have been actively contributing to open-source organizations, having participated successfully in (Google Summer of Code (2022) with BeagleBoard.org). I also interned as a Robotics Research Intern at Robotics Research Center, International Institute of Informational Technology Hyderabad.

I Awarded the LiFT Scholarship by the Linux Foundation in the 'Networking Notable' catogery, which entitles me to spend the next one year completing the Linux Networking and Administration (LFS211) course as well as the the Linux Foundation Certified System Administrator (LFCS) exam.

I have a good understanding and decent experience of software and hardware engineering-related development methodologies, tools, and usage.

Background
Here are technical and non-technical ways where I contributed.
 * Contributions
 * Free Software Movement of India
 * Hacktivist: Actively contributing to free software projects, gave talks on Free Software & Open Hardware, Git, Mobile & Desktop Freedom, Dark Patterns
 * Speaker, International Debian Conference 2021


 * Swecha Telangana
 * Designed, optimized, and sliced 3D models and maintained production line of 3D printed projects and open hardware prototyping equipment.
 * In Mobile Autonomous Cart project using ROS + Docker, development tools to advance robotic software design and deployment by utilizing advances in Linux containers.
 * Organised Debian Bullseye Release event
 * Course Manager and Teaching Assistant for Liberating Devices course ( Mobile & Desktop Freedom )
 * Utilized Android Tools ( adb, fastboot ), Bash scripts and command-line tools to remove proprietary malware from mobiles/watches and desktops.
 * Porting and Enabling the Government School Computer labs in our locality to specific use of free softwares and Installing BalaSwecha OS( A GNU/Linux distribution based on Debian ).

Trajectory

 * I am interested in eventually pursuing graduate studies in academic research and work in research roles at the intersection of Robotics Systems, Networks, and Security. Along with my additional interest in embedded and Operating Systems. This initiative [2023 Summer of Reproducibility] gives me the necessary exposure and experience to work on reproducing research results and to prepare me to get started on work i might continue in graduate school, hone my research skills, and test out challenges of reusing code in Networking Research.
 * I plan to collaborate and engage in academic research and Open Source communities and continually get super involved ina topic i care about. This oportunity will play a crucial role in solidifying as a undergraduate student as i graduate and transition to graduate school.

Contact information
IRC Nick: krvprashanth Matrix: @krvprashanth:matrix.org Github: https://github.com/krvprashanth Gitlab: https://code.swecha.org/krvprashanth Linkedin: https://www.linkedin.com/in/kurva-prashanth-551855208/ School: Vidya Jyothi Institute of Technology Country: India Primary language: English, Telugu Typical work hours: 6AM-11AM, 4PM-10PM (GMT +5:30) IST

Misc
After completion of this project I'll work on to port the experiments to an emulator in order to get reat-time, realistics results...