CS 360 Special Topics: Computer Networking

Course Syllabus
Spring 2007

Introduction

This course is an introduction to Computer Networking covering basic networking architectures, algorithms, and protocols. In particular, it will focus on the 7-layer OSI model and the TCP/IP reference model. This course will discusss, with respect to these models, how data is transferred across a network, how networking protocols allow for open networks and which piece of the model is responsible for each bit of functionality.

Topics

Network libraries (BSD Socket Interface) Security
OSI Model Internetworking
TCP/IP Model Application Protocols (HTTP/SMTP/DNS/DHCP)
TCP Protocol Internet Protocol (IP)
Routing Algorithms User Datagram Protocol (UDP)
Congestion Control The End-to-end Principle

Grade Breakdown

Percent Breakdown

Midterm 1 20%
Midterm 2 20%
Final Exam 20%
Homework/Quizzes 10%
Programming Projects 30%
Project 1 20 pts
Project 2 15 pts
Project 3 20 pts
Project 4 25 pts
Project 5 20 pts
 
Total 100 pts
    92-100 A 90-92 A-
88-90 B+ 82-88 B 80-82 B-
78-80 C+ 72-78 C 70-72 C-
68-70 D+ 60-68 D    
    0-60 F    

Programming Projects

This course will contain a set of significant programming projects to allow students to gain experience using the networking libraries and to understand how the TCP/IP protocol works. Most of the later programming assignments in this course will build on functionality implemented in previous assignments. Quality solutions to the early assignments are the key to success.

All programming assignments must work on zeus to receive any credit. I will not accept any Visual Studio projects. You may program on Windows using a Unix compatibility suite (see Cygwin below). The last project of the semester will use the CISCO routing equipment to explore what can be done on the network router. All projects are individual projects, do not allow any other student see your source code.

Academic Dishonesty

The cheating policy is defined in Pacific Stuff & the Pacific Catalog as well as the Academic Policy that each of you signed upon entering Pacific University. Be sure you read or reread this policy carefully. All code written for our course is to be an original design and an original implementation. The Web, textbooks, and any other references are simply references for you. Copying source code from any source is prohibited.

Further, source code is not to exchange hands in any form or by any medium except when sending your solutions to the instructor. It is OK to share high level ideas during the design phase, share information dealing with OS issues, debugger issues, in general, development issues that do not involve code writing.

Specific solutions to homework problems should not be discussed with any other students. The solutions should be an individual effort unless otherwise specified on the assignment. As with coding, high level concepts can be discussed. However, do not discuss specific homework problems or solutions.

If you have any question as to whether or not what you are about to do constitutes cheating, ask the instructor.

Course Policies

Resources

Computer Networks, 4th Edition, Tanenbaum, online resources (http://authors.phptr.com/tanenbaumcn4/)
RFC Editor (http://www.rfc-editor.org/)
HTTP/1.1 (http://www.ietf.org/rfc/rfc2616.txt)
Web Sniffer (http://web-sniffer.net/)
"A protocol for packet network intercommunication", Cerf, Kahn (http://portal.acm.org/citation.cfm?id=1064423)
A TCP/IP Tutorial - RFC 1180 (ftp://ftp.rfc-editor.org/in-notes/rfc1180.txt)
User Datagram Protocol - RFC 768 (http://www.ietf.org/rfc/rfc0768.txt)
Computing the Internet Checksum - RFC 1071 (http://www.ietf.org/rfc/rfc1071.txt)
The Secure Shell Protocol Architecture (ftp://ftp.rfc-editor.org/in-notes/rfc4251.txt)
IP QOS (http://www.ciscopress.com/content/images/chap01_1578701163/elementLinks/1578701163.pdf)
IEEE 802 (http://www.ieee802.org/)
TCP/IP (http://en.wikipedia.org/wiki/Tcp/ip)
Smashing The Stack For Fun And Profit (http://insecure.org/stf/smashstack.html)
End-to-end Arguments in System Design (http://web.mit.edu/Saltzer/www/publications/endtoend/endtoend.pdf)
JFLAP (http://www.jflap.org)
Subversion (http://svnbook.red-bean.com/nightly/en/svn-book.html)
SSH (http://kimmo.suominen.com/docs/ssh/)
TCP SYN Flooding Attacks and Remedies (http://www.networkcomputing.com/unixworld/security/004/004.txt.html)

Unsupported Resources

Cygwin (http://www.cygwin.com)
Pthread Support in Microsoft Windows Services for UNIX (http://www.microsoft.com/technet/interopmigration/unix/sfu/pthreads0.mspx)
Pthreads-WIN32 (http://sourceware.org/pthreads-win32/)
CVS (http://www.cvshome.org)

Further Reading

Where Wizards Stay Up Late: The Origins of the Internet, Hafner, (ISBN13: 9780684832678)
TCP/IP Illustrated, Volume 1: The Protocols, Stevens, (ISBN13: 9780201633467)
The Cathedral and the Bazaar (http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/)

Instructor Details

 

Course Basics

 
Professor Chadd Williams Course Title CS360 Special Topics: Computer Networking
Email chadd@pacificu.edu Meeting Times TTH 1:00 - 2:15 pm
Office Strain 202 Location PT 204
Phone (503) 352-3041 Textbook Computer Networks, 4th Edition, Tanenbaum
Office Hours Monday 11:00 - Noon Website http://zeus.cs.pacificu.edu/chadd/cs360s07
  Tues 3:00 -4:00 PM Official Clock http://time.gov/timezone.cgi?Pacific/d/-8/java
  Fri 10:00 - Noon Final Exam Monday, May 14 3:00 PM to 5:30 PM
  and by appointment    

Exams

Midterm March 8
Midterm April 17
Final May 14

Acknowledgements

This class has benefited from networking classes taught at other universities: