Course Syllabus
Spring 2012
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.
Network Programming with Java and Android |
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 |
||||||||||||||||||||||||||||||||||||||||
|
|
This course will contain a set of significant programming projects to allow students to gain experience using the networking API available in Java and Android 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 be build in Eclipse. You may program on Windows or Linux, however be aware that I will test your code on Linux and any or all of the Android devices available in the Lab. 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 unless otherwise specified, do not allow any other student see your source code.
If you have any question as to whether or not what you are about to do constitutes cheating, ask the instructor.
REQUIRED: Computer Networks, 5th Edition,
Tanenbaum, online resources (http://www.pearsonhighered.com/educator/product/Computer-Networks-5E/9780132126953.page)
RECOMMENDED: Java Network Programming, 3rd Edition, Harold (
http://www.cafeaulait.org/books/jnp3/
or O'Reilly)
Other Online Resources
Java Docs:
http://docs.oracle.com/javase/7/docs/api/
Android Docs http://developer.android.com/reference/packages.html
Android Tools http://developer.android.com/sdk/index.html
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/)
SSH (http://kimmo.suominen.com/docs/ssh/)
TCP SYN Flooding Attacks and Remedies (http://www.networkcomputing.com/unixworld/security/004/004.txt.html)
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)
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: Client/Server Programming |
chadd@pacificu.edu | Meeting Times | MWF 2:15-3:20pm |
|
Office | Strain 202 | Location | Marsh LL12 |
Phone | (503) 352-3041 | Textbook | Computer Networks, 5th Edition, Tanenbaum |
Office Hours | Tues 2:30-3:30 |
Website | http://zeus.cs.pacificu.edu/chadd/cs360s12 |
Wed 11-noon |
Official Clock | http://time.gov/timezone.cgi?Pacific/d/-8/java | |
Thur 1:30-2:30 |
Final Exam | Monday, May 14 8:30am to 11:00 am |
|
or by appointment |
Fri 11-noon |
Midterm | March 7 |
Midterm | Apr 11 |
Final | May 14, 8:30am |
This class has benefited from networking classes taught at other universities: