CMSI 655: Internet Technologies

Syllabus

Spring 2004

TuesdayCaskey L. Dickson
6:30p.m. - 9:30 p.m.caskey @ technocage.com
Doolan 222310-338-5100
Doolan 104

Objectives

In this class the workings of the Internet will be discussed and learned from a technical perspective starting with the physical medium and working up to the application layer. A detailed understanding of the Internet Protocol version 4 and version 6 will be acquired as well as knowledge of how layered internetwork systems operate. All of the associated supporting protocols will be studied as well as basic (i.e. traditional) application-layer protocols insofar as they illustrate the capabilities of the lower layers. Sophisticated application layer protocols (e.g. EJB, RMI, SOAP etc.) are left for further study in CMSI 673, Distributed and Concurrent systems.

By the end of this course, you will have a thorough understanding of the workings of the modern internet.

Audience

This course is for Graduate Students in Computer Science who have a working knowledge of Operating Systems and are capable of programming in either C and/or Java. Furthermore, to complete certain homework assignments, students must be able to navigate a UNIX operating environment It is presumed that all students have a working knowledge and experience using the Internet and various Internet applications, however no specific knowledge of networking technology is assumed.

Texts & Materials

The following two books are the texts for this course. The first is what has become the cannonical reference for IPv4, however there are a few places where the text is dated due to revisions of relevant RFCs. One will have to be wary of the text's statements regarding current practices and capabilities. The second text is a book which focuses on IPv6 in relation to integrating with existing IPv4 networks. It will be used as our primer in the details of IPv6 once we have completed our study of IPv4.

In addition to the texts, updated and revised RFCs will be essential reading. They can be found in numerous locations on the internet. One such site is listed below, though you are free to access them by whatever means you wish.

Finally, the course homepage is available at the following two URLs. The first is the primary site and the second is a mirror. The details of specific homework assignments will be posted at these locations.

Grading Policy

Your final grade will be weighted as follows.

Homework ...................................... 30 points
Research Paper ...................................... 10 points
Project ...................................... 10 points
Midterm Exam ...................................... 20 points
Final Exam ...................................... 30 points

Letter grades are figured according to the usual scale: 90 or more points will earn you an A- or better, 80 a B- or better, and so on. The actual grade you receive in the course may be curved upward based upon the performance of your peers.

Homework is due at the beginning of class. Late work will be accepted at a 20% penalty per class session. You will not be reminded to turn in assignments, you are expected to keep track of your deadlines.

Your coding style will play a huge part in determining your score on the assignments. I will not hesitate to assign D's and F's to working programs which are poorly structured, haphazardly indented, under-commented, have poor identifier names and abbreviations, contain inappropriate hard-coded values, or are not "easily maintainable". Appearance of the grading policy in this syllabus constitutes "fair warning" of the consequences of poorly written code.

Code that fails to compile or fails to validate when run through a conformance test (e.g. validating parser) will be given an F without further review.

As with your source code, your writing must be clear, edited and concise. All submitted work, must be typed and proofed. The ability to communicate your ideas clearly and effectively is a critical aspect of your work now and later in industry. As such, assignments with misspellings and/or bad grammar will be returned ungraded. You are encouraged to make use of your peers. It is my assumption that any writing assignment you turn in has been proofed by at least one other person. The campus LRC in the library is an invaluable resource in this regard. An exception to printed/typeset material requirement is granted for hand-annotation of printed screen shots, complicated diagrams or other material that would be impractical to typeset. However, illegible work will be returned ungraded and poor craftsmanship will be given an F.

Work may be turned in either in-class or via email, however email submissions of writing assignments will be accepted in PDF format only. As we will learn later in this class, email is a reliable but somewhat unpredicatable message transport. Sending a message on time is not sufficient, it must arrive before the deadline in order to be considered on time.

Attendance

Attendance is at your discretion. Participation is an important part of the learning process and the value of attending the lecture can't be overstated. We're all aware of how expensive tuition is and out of respect I will do my best to be here on time every week; I expect you to do the same.

Course Schedule

What follows is a general outline of the course topics and readings. While we will attempt to adhere as closely as possible to this schedule, it may scale depending upon the speed with which we cover the individual topics.

IPv4

Week 1: January 20
Introduction; RFCs; Internetworking; Layers; Link layer
Stevens 1 & 2
Week 2: January 27
IP; ARP
Stevens 3 & 4
Week 3: February 3
RARP; ICMP; ping; traceroute
Stevens 5-8
Week 4: February 10
routing; dynamic routing protocols; RIP
Stevens 9 & 10

UDP

Week 5: February 17
UDP/IP; fragmentation; ICMP quench; broadcasting; multicasting
Homework 1
Stevens 11 & 12
Week 6: February 24
IGMP; DNS; NTP; TFTP; BOOTP
Stevens 11 & 12
Week 7: March 2
Midterm Exam
Homework 2

TCP

Week 8: March 9
TCP/IP; session management; connections
Stevens 17-20
Week 9: March 16
TCP performance; keepalive timer; persist timer; path MTU discovery
Stevens 21-24
Week 10: March 23
SNMP; Telnet; FTP; SMTP; POP; IMAP
Homework 3
Stevens 25-28
Week 11: March 30
HTTP; NNTP; IRC
Stevens 30 RFC 2616, section 1
Week 12: Spring Break

IPv6

Week 13: April 13
IPv6 vs. IPv4; addressing; ICMPv6; IPSec; tunneling
Homework 4
Hagen 1-3
Week 14: April 20
discovery; autoconfiguration; routing; multicasting
Hagen 4-7

Beyond Computing

Week 15: April 27
internet telephony; VOIP; VPNs; peer-to-peer systems
Week 16: May 4
Project & Paper
Final Exam

Valid XHTML 1.0!