Text: The primary text will be An Introduction to Computer Networks (free and online), by me.
Some supplemental resources are:
Grading: There will be a midterm and a final. My general course groundrules are here. Exams will count for between 70% to 80% of your grade, with homework and programs making up the rest. The final exam is August 10. The midterm will probably be July 25 or 27.
Note that there is no class on Tuesday July 4, and that we have a makeup
class on Friday July 7.
(These will be on Sakai; a draft of the midterm study guide is there now)
pre: before class post: after class
| Class 1: Thu
| Class 2: Fri
| Class 3: Tue Jul 11
||Assignment 1; readings in links
| Class 4: Thu Jul 13
||Assignment 2: myswitch
| Class 5: Tue Jul 18
| Class 6: Thu Jul 20
||Assignment 3: switchring
| Class 7: Tue Jul 25
| Week 8: Thu Jul
| Week 9: Tue Aug
| Class 10: Thu Aug 3
| Class 11: Tue Aug 8
We will look at hardware-oriented management protocols such as SNMP, tools for managing software applications, and policy-based routing protocols such as BGP. We will study advanced IP configuration using the linux advanced routing and traffic control toolkit (iproute2 package), and consider how to tune networks for realtime traffic such as RTP and VOIP.
We will also study software-defined networking, which, in its most basic form, means replacing the traditional Ethernet-switch learning algorithm with software that fully controls the routing within the Ethernet LAN. LAN-level packet forwarding can involve higher-layer packet values such as IP addresses and TCP ports, and the LAN itself can contain loops and engage in shortest-path forwarding.
There will be a programming project involving SDN, in the Mininet environment. Students should be comfortable with programming at the level of Comp 150.
Here are a few of the poller monitors (from 2006 or so; I'm sticking with these so the line numbers match my notes):
Here is the LARTC How-To document, by Bert Hubert et al, on linux policy routing and traffic control (iproute2). I recommend reading section 4 (basics of policy routing) and section 9 (basics of queuing and traffic control).
Here is a locally cached copy; lartc.org seems down.
Here is the policy
routing website, with lots more information on linux routing
configuration. Take a look at the online policy-routing book Policy Routing with Linux, by Matthew Marsh.
Other good howtos for Traffic Control:
A Practical Guide to Linux Traffic Control, by Jason Boxman: http://blog.edseek.com/~jasonb/articles/traffic_shaping. This has good diagrams. See the section blog.edseek.com/~jasonb/articles/traffic_shaping/scenarios.html for good real-world scenarios.
Traffic Control HOWTO, v 1.0.2 -- Martin Brown: local copy in pdf format.
Here is an example of how to use CBQ queuing to do bandwidth limiting.
See also: http://linux-ip.net/articles/Traffic-Control-HOWTO/classful-qdiscs.html
tldp.org/HOWTO/Adv-Routing-HOWTO/lartc.adv-filter.u32.html: good article on the sometimes-cryptic u32 classifier.
Finally, here is the iptables man page.
You should download the "free personal edition" of the iReasoning MIB Browser (the download links are at right).I have been using hosts ulam.cs.luc.edu and ulam2.cs.luc.edu as SNMP servers. Note that Loyola's firewalls block inbound SNMP queries, so you will not be able to access ulam using any SNMP browsers outside Loyola. If you want to work at home, I recommend enabling SNMP on your home machine. For mac and linux users that means installing net-snmp. For windows users, SNMP is "built in" but will have to be activated. Instructions are here.
The following web site is a browser for the "official" MIB; that is,
IETF-recognized entries. Note that many of the most important entries are
in fact private (that is, manufacturer-specified).
MIB Browser, German Institute of Operating Systems & Computer Networks
Here is the set of mibs for net-snmp (formerly ucd-snmp), the open source snmp server most commonly used on linux systems: linuxmib.tgz (tar/gzip version), or linuxmib.zip (zip version).
Here is a selected set of further mib files that are worth looking at to get a sense of the breadth and options available.
The following site contains a nice java SNMP library, and source for the
SNMP Inquisitor tool.
Java SNMP Package