Syllabus
From Comp519
COMP/ELEC 519: Network Systems Architecture
- Spring 2009
- Mon/Wed/Fri, 2:00 - 2:50pm, DH 1046
- Credits: 4
- Website: http://comp519.cs.rice.edu
Instructors
- Jeff Shafer
- Email: shafer <@> rice.edu
- Office: DH 3035
- Michael Foss (TA)
- Email: mikefoss <@> rice.edu
- Office: DH 3035
Course Description
We have come to expect that our computers will constantly be able to access a variety of systems and services across the world. In this class, we will study the architectures of the network systems that are needed to make this a reality. The emphasis will be on the design and implementation of the network systems that compose modern wired networks, from local area networks to the Internet. We will explore the roles that user-level applications, operating systems, network interfaces, switches, and routers play in the communication process. The course will consist of lectures, tutorials, and projects.
Projects
A major component of the class is the design and implementation of a functioning IP router based on the NetFPGA platform. NetFPGA is a reconfigurable device that provides the basic building blocks of a router, including 4 Ethernet ports, memory, and processing capabilities. But, it leaves the details of the implementation up to you! Groups will be assembled based on student preferences. Each group will learn about both the software and hardware aspects of a router's design, but individual students may choose to focus on either area.
Learning Objectives & Deliverables
By the end of this course, all team members will be able to:
- Describe what responsibilities a user-level application, operating system, or device driver has in communication. (For example, a web browser talking to a web server)
- Identify the challenges inherent in efficiently transferring data from the general-purpose machine to the network peripheral.
- Compare and contrast a network interface built with an embedded processor versus dedicated (fixed) hardware on the basis of design time (up-front expenses), manufacturing cost (per-unit), performance, functionality, etc...
- Explain how the OSPF routing protocol enables communication when presented with a new network topology
- Describe how the spanning tree Ethernet protocol prevents circular paths from developing in computer networks.
By the end of this course, students choosing to focus on network hardware will be able to:
- Create an FPGA-based hardware router that implements longest-prefix-matching lookups
- Explain the required functions that the hardware router must provide to enable basic network functionality
- Determine which functionality should be implemented in hardware versus software
- Evaluate different implementations that can achieve the basic functions
- Optimize their FPGA design for both logic (device utilization) and performance (network throughput)
- Integrate the hardware router with control software being co-developed by other group members
By the end of this course, students choosing to focus on network software will be able to:
- Create a program that controls and manages the hardware router being implemented by other group members
- Explain the required functions that the router must provide to enable basic network functionality
- Determine which functionality should be implemented in software versus hardware
- Design a control program using the Virtual Network System that participates in the PW-OSPF dynamic routing protocol and responds to ARP and ICMP messages.
- Design a control program using the Virtual Network System that exports a command-line interface and allows a user to inspect and modify the state of the hardware router.
- Integrate the control program with the hardware router being co-developed by other group members
Textbooks
- No textbooks are required for this course. Optional reference books and websites may be suggested during the semester to aid in the projects.
Prerequisites
The prerequisite for the course depends on your particular area of interest.
- Students choosing to focus on the software design of the IP router projects are encouraged to register for COMP 519 and are expected to have experience with C programming and network software (COMP 221 or equivalent).
- Students choosing to focus on the hardware design of the IP router projects are encouraged to register for ELEC 519 and are expected to have experience with Verilog hardware design for FPGAs (ELEC 326 or equivalent).
Grading
Grades in this class will be assigned as follows:
- Projects - 75%
- Tutorial Attendance - 5%
- Participation and Discussion - 20%
The project grade includes both the technical implementation (does the router function correctly?) and well as non-technical aspects such as written reports and group presentations. The participation and discussion grade includes participation during class discussions and required group project meetings.
A more detailed breakdown of the project grade will be provided when the projects are assigned.
Students with Disabilities
Any student with a documented disability needing academic adjustments or accommodations is requested to speak with me during the first two weeks of class. All discussions will remain confidential. Students with disabilities will need to also contact Disability Support Services in the Ley Student Center.
Honor Code Policy
Each student will join a group for the duration of the semester. All projects are to be done by your assigned group. Each group may split up the project tasks in whatever way they see fit, as long as the division of labor is equitable and documented in the written project reports. You may use any available reference material to help you with the projects. However, you must clearly identify any code that was not written by your group, state where it came from, and to what extent you modified it. You may discuss high-level approaches to the course projects with students in the class outside your group, but different groups may not share specific implementations or code. You may not consult solutions to the project from past semesters of this course or from similar courses at other universities. If you have access to materials relating to NetFPGA for your research or other activities, you must speak with the instructor before beginning any of the projects.

