At the University of Pennsylvania, we have developed course projects for a large advanced undergraduate entry-level graduate course (CIS 553 / TCOM 512). Students work in teams to develop substantial distributed systems programming projects (>10000 lines of code) using network simulator 3 (ns-3), an emerging open-source network simulator that is aimed at replacing the popular ns-2 simulator. Projects are developed in layers, where students build upon earlier assignments, first developing a protocol for IP routing, followed by a distributed hash table (DHT) overlay network, and finally, a keyword-based search engine. One novelty of our assignments is the use of ns-3 in a large classroom setting, where students navigating through hundreds of thousands of lines of existing code before adding their extensions. In addition, selected groups develop the final project using declarative networking, a novel declarative framework that allows protocols to be rapidly synthesized using a high-level logic language into ns-3 implementations.
This website provides details of all our course assignments and initial code base based on ns-3 v0.9 (with our own modifications). If you are in an academic institution, please feel free to adapt and reuse our projects with acknowledgements by linking to this website. Instructors that wish to obtain our initial starting code for students, solutions and grading scripts should send email to Prof. Boon Thau Loo (boonloo AT cis.upenn.edu).
These projects are designed jointly by Qiong Fei, Boon Thau Loo, Taher Saeed, and Zhuoyao Zhang. This is a NetDB@Penn project. A high-level overview of the projects are described in the following technical report.
The first project extend ns-3 to support efficient routing using the link-state and distance-vector protocols.
Project handout: PDF
Code documentation: PDF
Project handout: PDF