Clack Graphical Router: Instructor Resources

This page aims to give course instructors and staff an idea of the different ways Clack has already been succesfully used in undergraduate networking courses at several universities. We will help modify assignments to fit your needs.

If you are an instructor and are interested in using Clack for any of the uses described below, or have an idea for a new use of Clack, please contact us at info (at)

Existing Assignments, Demo's, and Labs

IP, ARP, and Ethernet Basics

Students use Clack and its ethereal packet sniffer to answer questions about the about simple encapsulation and forwarding. See IP Basics .

IP Addressing and Routing

Students are given a Clack network of a few routers and several "subnets", without any IP addresses assigned. Given a /24 of network address space, the students must assign each subnet sufficient address space for its size requirements, and then set-up forwarding entries within the routers to make all subnets reachable. Configuration can be done either graphically or via a Clack command-line that emulates Unix functionality. See IP Addressing and Routing .

Comparing Distance Vector (RIP) and Link-state (OSPF) Routing

Students are provided with identical virtual networks, one with each router using OSPF, and another with each router running RIP. Students must view routing tables and use a packet sniffer to determine how RIP and OSPF operate differently given various network dynamics (e.g., link failure). See RIP vs. OSPF .

RIP Routing Programming Assignment

Simon Fraser University used Clack as a programming platform to have student implement a simple version of the RIP routing protocol, including split horizon and poison reverse. Clack let students see the real-time routing tables their implementation was using, probe their topology to test forwarding, and modify link status + cost to see the protocol react. The write-up for the RIP assignment is available here .

For obvious reasons, the RIP source-code is not distributed with the standard Clack source. If you are an instructor and wish to see the reference implementation of RIP in Clack, email us at

A topology of RIP routers can be found here: RIP Topology

TCP and UDP Congestion Control

An introduction to Computer Science for non-majors class at Princeton University used Clack to teach students high-level concepts about congestion control on the Internet, focusing on the differences between TCP and UDP. A draft of the lab, which had students analyze TCP downloads and real-time streaming music, is available here (PDF format).

OSPF Routing Programming Assignment

Clack now has a link-state routing implementation that can be used as a basis for networking labs and programming assignments. As described above in the RIP lab, Clack provides a powerful platform to demonstrate the concepts that students must implement, and then to debug their code as they implement a very simple version of OSPF while leveraging Clack visualization capabilities for free.

A topology of OSPF routers can be found here: OSPF Topology

Looking Inside a Real IP Router

Several universities have used Clack to demonstrate the basic composition of an IP router, and to have students visualize how traffic is forwarded through a router and how the router responds to probes such an Ping and Traceroute requests. Primarily, Clack is used in conjunction with an assignment in which student program a simple IP router in C using the Virtual Network System .

Network Address Translation (NAT) Visualization

A simple lab to help students understand how NAT works, to visualize what state a router must keep, and test what traffic can and cannot pass through a NAT. Implementation complete, demo link and write-up coming soon...

RED Queue Visualization

Visualize how modifying Random Early Drop (RED) paramters impacts the drop decision. Implementation is complete, demo link and write-up coming soon...