ECE 697J


Course Info

Time: Tuesday & Thursday 2:30 - 3:45 p.m.

Location: Marston 220

Instructor: Tilman Wolf (

Credits: 3 (not 1-3 as currently shown on the registrar's page)

Course Description

Recent developments in computer networks have extended routers from plain packet forwarding engines to full-blown packet processing systems. By allowing software processing of packets, users can program the behavior of routers to meet their particular needs. This processing can be as simple as a custom route lookup algorithm (e.g., for quality of service) or as complex as modifying the packet payload (e.g., encryption). The potential for these "programmable" or "active" networks lies in their ability to implement certain services and applications more efficiently than traditional networks. Examples are congestion control, web caching, reliable multicast, and content adaptation. One of the key challenges in implementing these systems is the need for powerful network processors, as processing has to keep up with gigabit link speeds. Also, flexible operating systems are necessary to allow dynamic installation of new code modules and safe processing of packets.

This course explores both hardware and software aspects of programmable networks, covering active network architectures, network processor design, operating system issues, and novel applications for this domain. A background in computer networking is recommended and basic understanding of computer architecture is helpful. The course is a combination of presentations by students, discussions of reading material, a few lectures and a final project.

  2002 by Tilman Wolf