ACM SIGCOMM 2021, virtually (online)
MENU

ACM SIGCOMM 2021 HACKATHON: CNP3

Hackathon Program

The hackathon has an associated Slack channel for discussions. Click on the link below to visit it. If you're asked to sign in, use the workspace name "sigcomm.slack.com" to sign up or sign in.

Go to CNP3 Hackathon Slack channel
  • Friday, August 27, 2021 13:00-17:00 (UTC-4, New York), 19:00-23:00 (UTC+2, Paris)

  • 13:00 - 13:30 Kick-off

  • 13:00 - 13:30

    Kick-off

    Welcome and quick introduction to CNP3.

    Introduction to the INGInious automated grading platform.

    Small tutorial on INGInious exercises creation.

  • 13:30 - 16:30 Hackathon

  • 13:30 - 16:30

    Hackathon

    Development of new INGInious network exercises.

    With a focus on open and protocol trace questions.

    The CNP3 team will assist participants in their project.

    Other possible contributions: translations, theory on not-covered-yet protocols,...

  • 16:30 - 17:00 Overview of the contributions and conclusion

  • 16:30 - 17:00

    Overview of the contributions and conclusion

    (Short) presentations on contributions.

    Wrap-up, possible follow-ups and conclusion.

Call For Participation

An open-source ebook with interactive exercises to teach computer networking

Outline

During the CNP3 hackathon, we encourage other networking educators to cooperate with us to improve the open-source CNP3 ebook and its associated exercises. Our main focus will be the addition of new exercises to our open INGInious platform. All the contributions developed during this hackathon will be publicly available to the entire community and will complete the existing exercises. We envision this hackathon as a starting point for a long-term collaborative effort on building high-quality exercises which can be easily reused by the entire network community.

Here is a non-exhaustive list of the possible contributions that could be made during this hackathon.

  • Developing multiple choice questions covering various themes (SSH and its keys, SMTP, POP, RTP, TCP,...)

  • Developing short-answer questions where the student needs to apply some algorithms (Diffie-Hellman, RSA, TCP congestion control, ...)

  • Developing programming exercises introducing sockets using different languages (Python, Java,...)

  • Developing protocol exercises involving traffic of different protocols not yet covered (SMTP, POP, RPC, RTP,...)

  • Proposing virtual labs exploring buggy BGP or IGP configurations,...

  • Contributing to the ebook itself by adding sections on trending but yet uncovered protocols (RTP, QUIC,...)

From a practical viewpoint, participants will be assisted by team members to solve their technical issues and help them to either port their existing exercises to the \inginious platform or develop brand new exercises.

A rough outline follows:

  • Kick-off Welcome and quick introduction to CNP3, INGInious and how to create exercises on this platform.

  • Hackathon Development of various contributions, not limited to the list presented above.

  • Overview of the contributions (Short) presentations of the contributions developed during this hackathon.

Audience Expectations and Prerequisites

Any participant willing to contribute to computer network education is welcomed. We will provide a virtual machine enabling participants to develop INGInious exercises on their local host.

A word about CNP3

For more than an decade, we have been developing the open-source Computer Networking: Principles, Protocols and Practice (CNP3) ebook that is used by various universities to teach a basic networking class. This ebook is described in more details in a recent CCR paper [1]. The source files are available from https://github.com/cnp3.

To teach such a class, educators need to complement the textbook with a set of exercises that enable the students to learn the practical aspects of the different protocols that are used on the Internet. Preparing all these exercises takes a lot of time and effort.

During the last years, we have started converting the CNP3 ebook into an interactive book that combines the theoretical explanations with five types of exercices:

  • Multiple Choice Questions (MCQ)

  • Questions requiring a short answer

  • Programming questions

  • Network trace questions

  • Virtual labs

These exercices are hosted on the open-source INGInious platform.

The Multiple Choice Questions are pretty standard. They can help the students to verify their understandings. However, they also expose the students to invalid answers that may confuse them. Although MCQ can be easily inserted in an interactive book, we do not favor these types of questions.

The Questions requiring a short answer are simple problems that the students can solve by providing a numerical answer, a path inside a network,... INGInious checks the answers to these questions using simple python script (see this exercise and the associated grading script).

The Programming questions are simple coding assignments. Typically, students need to write one or two functions in a programming language and the INGInious platform uses unit tests to verify that the student's answer is valid. The advantage of this approach is that the student's code is compiled and executed directly on the platform that verifies whether it meets the teacher's expectations. We already provide socket programming exercises in C on the platform (the associated grading script is here). Other programming languages and protocols could be added during the hackathon (Python, Java,...).

The Network trace questions allow the students to explore specific protocols in details. A protocol question is a series of packets that were collected using Wireshark [2]. A Javascript interface mimicking Wireshark shows the content of these packets to the students that either need to fill the missing values of specific packet fields (e.g., acknowledgment number in a TCP header) or reorder packets. We already provide several dozens of exercises on the main protocols of the TCP/IP protocol suite, but other questions covering other protocols could be easily developed.

The Virtual Lab questions leverage IPMininet [3] and INGInious. IPMininet is an extension to the popular Mininet platform that allows easily configuring virtual IPv4 or IPv6 network using a small python script. The virtual network can use static routes or dynamic routing protocols such as OSPF, BGP, RIP,... We are currently adding support for these virtual labs on the \inginious platform so that students will be able to execute commands inside a virtual lab from their browser. With this modification, it becomes possible for a professor to prepare an exercise where some routers are not correctly configured and ask the students to debug the problem, or a professor could define an objective for the students (e.g. route some flows over a particular path) and then verify using traceroute or other tools that the objectives have been met.

Organizers

  • Olivier Bonaventure

    UCLouvain, Belgium

    • Bio:

      Olivier Bonaventure [4] is professor at UCLouvain (Belgium) where he leads the IP Networking Lab [5]. Together with the Ph.D. students and postdocs of the lab, he has contributed to various networking protocols including BGP, LISP, Multipath TCP, IPv6 Segment Routing, and QUIC. He is active within the IETF and the lab has produced open-source implementations of important protocols including Multipath TCP, IPv6 Segment Routing, LISP, and more. He was editor in chief of SIGCOMM CCR and is the main author of the award-winning and open-source Computer Networking: Principles, Protocols and Practice e-book. He co-founded the Tessares company that pioneers the deployment of Hybrid Access Networks using Multipath TCP. Researchers from the IP Networking Lab received various awards including an INFOCOM best paper award, a SIGCOMM best paper award, an ICNP best paper award, a USENIX NSDI community award, several Applied Networking Research awards and the 2019 SIGCOMM Networking Systems Award for the development of the open-source implementation of Multipath TCP. [4] https://perso.uclouvain.be/olivier.bonaventure [5] https://inl.info.ucl.ac.be


  • Quentin De Coninck

    UCLouvain, Belgium

    • Bio:

      Quentin De Coninck [6] received his Master degree in Computer Engineering at UCLouvain, Belgium in 2015 and obtained his Ph.D. thesis in 2020 under the supervision of Olivier Bonaventure. His main research interests include design and implementation of multipath transport protocols and system-level challenges. He co-organized the MPTP tutorial last year and performed various contributions on both the ebook and its exercises. [6] https://qdeconinck.github.io


  • Anthony Gégo

    UCLouvain, Belgium

    • Bio:

      Anthony Gego received his Master degree in Electrical Engineering at UCLouvain, Belgium, in 2016 and works now as a System Administrator and Software Developer at the Computer Science and Engineering department (INGI/ICTEAM) at UCLouvain. In 2014, he has co-created INGInious [7], a free and open-source, customisable, automatic assessment platform for programming and mathematical exercises, based on Linux containers. He is the current project leader and main developer. [7] https://www.inginious.org


  • Mathieu Jadin

    UCLouvain, Belgium

    • Bio:

      Mathieu Jadin is a PhD student at UCLouvain, Belgium. His research interests includes traffic engineering, IPv6 Segment Routing, Software Defined Networks and eBPF. He also co-authored with Olivier Tilmans IPMininet, a extension to Mininet to run routing daemons.


  • Maxime Piraux

    UCLouvain, Belgium

    • Bio:

      Maxime Piraux received his M.Sc degree in Computer Science from UCLouvain in 2018. He is now pursuing a Ph.D. He works on improving the extensibility of transport protocols and their implementations. He also developed the support for the network trace exercises.


  • François Michel

    UCLouvain, Belgium

    • Bio:

      François Michel received his Master degree in Computer Engineering at UCLouvain, Belgium in 2018 and is currently pursuing a PhD thesis at UCLouvain, under the supervision of Olivier Bonaventure. His thesis studies the design of flexible transport protocols. He currently works on proposing a flexible Forward Erasure Correction mechanism to the QUIC protocol. He is the main developer of the interactive ebook wrapper and contributed to various exercises.


  • Emery Assogba

    UCLouvain, Belgium

    • Bio:

      Emery K. Assogba received its PhD from UCLouvain. His areas of interrests are networks protocols and system security. As entreprenor in Benin, he realized many projects for the Beninese government. He has been teaching computer science in Beninese universities for more than ten years.


  • Thomas Wirtgen

    UCLouvain, Belgium

    • Bio:

      Thomas Wirtgen received his Master degree in Computer Science at UCLouvain, Belgium. In 2019, he started a Ph.D. thesis on the extensibility of routing protocols under the supervision of Prof. Olivier Bonaventure at UCLouvain. He is currently working on techniques to improve the programmability of BGP, which led to the first xBGP prototype. His research interests include distributed routing protocols, programmable networks and system architecture. He notably contributed to various routing exercises.


References

[1] Bonaventure, O., De Coninck, Q., Duchêne, F., Gego, A., Jadin, M., Michel, F., Piraux, M., Poncin, C., and Tilmans, O. Open educational resources for computer networking. ACM SIGCOMM Computer Communication Review 50, 3 (2020), 38–45.

[2] Piraux, M., Taffin, L., and Bonaventure, O. Towards a collection of packet trace interactive exercises for computer networking education. In SIGCOMM 2020 Education workshop (2020).

[3] Jadin, M., Tilmans, O., Mawait, M., and Bonaventure, O. Educational virtual routing labs with ipmininet. In SIGCOMM 2020 Education workshop (2020).