ECPE 293B / COMP 293B - Network Systems Architecture - Spring 2011
Office: Anderson Hall 205
Phone: (209) 946-2302
Anderson 105, Monday/Wednesday/Friday, 11:00-11:55am
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.
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
No textbooks are required for this course. Optional reference books and websites may be suggested during the semester to aid in the projects.
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 293B and are expected to have experience with application programming using the C language (or similar), as well as an understanding of computer organization and networks. The official pre-reqs (or by permission of the instructor) are as follows:
- COMP 53 - Data structures
- COMP 101 – Application Programming
- ECPE 170 - Computer Systems and Networks.
- Students choosing to focus on the hardware design of the IP router projects are encouraged to register for ECPE 293B and are expected to have experience with hardware design languages as well as C programming. The official pre-reqs (or by permission of the instructor) are as follows:
- ECPE 174 – Advanced Digital Design
- COMP 53 – Data Structures.
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.
Please note that copies of student work may be retained by the instructor to assess how the learning objectives of the course are met.
Students with Disabilities
Any student with a physical disability or with a learning disability needing accommodations should register with the Office of Services for Students with Disabilities, in Bannister Hall. The office will assist with any needed accommodations. If you have questions or wish to discuss your disability, please feel free to see me directly.
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.
Cases of academic dishonesty will not be tolerated. On a first offense, the student will be given a written warning and a grade of zero for the work in question. On a second offense, notice will be sent to the student's academic advisor, the Dean of the School of Engineering and Computer Science and the Dean of the student's own school, and the matter will be turned over to the Office of Student Life for resolution.