Concepts: Shows some queueing and congestion and
exposes some layering
ONL Exposure: ping, iperf, monitoring, queues
Activity
Use ping to check connections, try out bandwidth
monitoring
Set iperf to run at a rate less than link rate
Check link rate
Monitor bandwidth.
Ask why bandwidth is not what you think it
should be. Point them to portion of ONL
explaining the architecture of an NSP and
what the bandwidth really represents.
Look at the bandwidth w/o the header
Set iperf to run at rate greater than link rate
and look at queueing and discard
Chapter 2: Application Layer
Experiment Configuration: 1 NSP with loopback and monitoring
Variations of Exercises XXX and XXX
Concepts: Simple application layer protocol,
more about congestion and effects on application
ONL Exposure: Independent monitoring and use of iperf.
How to build applications in the ONL environment.
Activity
Implement simple echo client-server application
using standard UDP/TCP (this is a version of the
socket programming assignment #3 in the textbook)
Use iperf to generate cross traffic.
See what happens under congestion for each protocol.
First, just look at application layer,
have application print something when packet is lost.
Use the monitoring tools to look at the drop and
congestion (they should know how to do this from above).
Chapter 3: Transport Layer
Experiment Configuration: 1 NSP with loopback and monitoring
Variations of Exercises XXX and XXX
Concepts: Protocol implementation, exploration of TCP
congestion control
ONL Exposure: Introduction to plugins
Activity
Extend echo client-server application to implement
stop-and-wait protocol. Introduce congestion.
Use counter plugin for monitoring.
Could continue to extend application to implement
more complex protocols.
Use monitoring to explore TCP congestion control.
Ask for snapshots of graphs with annotations
explaining the observed behavior.
Chapter 4: Routing
Experiment Configuration: 1 NSP with default routing
Variations of Exercises [R1] through [R5] and [Pxxx] through [Pxxx]
Concepts: Routing, CIDR, router internals, port processor
Generate default routes and look at routing tables.
Make routing table changes to exemplify prefix matching
and what it means to have a more specific match.
Route to different ports and monitor the bandwidth.
Add a loopback and make routing table changes.
Set up monitoring of input and output ports.
Read about the NSP architecture.
Use plugins to redirect, count, do multicast.
Experiment with WDRR by monitoring queues, and varying
quanta and threshold.
Maybe, turn Distributed Queueing on and off.
Write a broadcast plugin.
Chapter 5: Link Layer
Experiment Configuration: XXX
XXX
Concepts: XXXXX
ONL Exposure: XXXXX
Activity
XXXXX
Chapter 8: Security
Experiment Configuration: XXX
XXX
Concepts: Packet filtering, CRC and parity
ONL Exposure: XXXXX
Activity
Implement packet filtering plugin (section 8.6.1)
Implement a packet sniffing plugin (section 8.7.2)