CS 471 Networking and Distributed Operating Systems Course Information MEETING TIMES University of Kentucky Department of Computer Science Spring 2008 MWF 11:00am - 11:50am, Room FPAT 257 INSTRUCTOR Jim Griffioen, Hardymon 229, 257-6746, griff@netlab.uky.edu OFFICE HOURS MW 10:00:am - 10:50am. F 10:30:am - 10:50am or by appointment. Office hours will be held in CRMS 514c. Also available any time for questions via email. (griff@netlab.uky.edu) COURSE OBJECTIVES This course is intended as a introduction to network architectures, protocols, and applications. We will discuss topics ranging from the physical layer (i.e., the transmission of data across the physical communication media) to the application layer (e.g., email and web servers). Examples include layered protocols, analog and digital channel characteristics, framing, error detection, error control, ARQ protocols, network-layer functionality, end-to-end transport protocols, and client-server software. A tentative list of topics covered is shown in the attached schedule. Hands-on experience will be obtained via programming projects and homeworks in which you will use the multi-lab and/or the UK Emulab to implement your projects. Prereqs: CS-315 and engineering standing. TEXTBOOKS (Required) Computer Networks and Internets, by Douglas E. Comer (CD-ROM by Ralph Droms), Prentice Hall, 2004. *FOURTH EDITION* (Highly Recommended) TCP/IP sockets in C: Practical Guide for Programmers, Michael J. Donahoo and Kenneth L. Calvert, Morgan Kaufmann, 2001 ASSIGNMENTS/TESTS Exams: There will be two examinations: Midterm Exam : Wed, Feb 20, 11am, In-Class 1
Final Exam : (Scheduled time slot) Monday, Apr 28, 10:30am, FPAT 257 Homework, Labs, and Programming Exercises: Homework assignments and programming projects will be assigned to help reenforce the concepts discussed in class. Programing projects must be done in the C or C++ programming languages on Unix systems and must be done individually by each student. Experience with C or C++ is assumed and will not be taught in this course. Basic skills in operating system programming are also assumed (e.g., UNIX system calls like fork/exec). See http://www.cs.uky.edu/%7eraphael/programming.html for a list of topics/skills that you should be familiar with as background for this course. Class Web Pages GRADING On-line Documents: The home page for this class can be found at http://protocols.netlab.uky.edu/%7egriff/classes/cs471 The syllabus, all programming project descriptions, and other material will be available via this home page. Electronic Submission: All your homework must be submitted electronically. An email or handout describing how to submit your work will be distributed at a later date. The course will be graded as follows: Homeworks 15% Programming Projects 35% Midterm Exam 23% Final Exam 27% Final grades will be assigned according to the following scale: A=90-100%, B=80-89%, C=70-79%, D=60-69%, E=0-59%. For graduate students, grade D will automatically be replaced by E. Also, any grade normalization will be done against peer students, i.e. undergraduates will only be normalized with undergraduates, and graduates with graduates. No incomplete grades will be assigned unless there exist exceptional, extenuating circumstances. LATE PENALTY Late programs or homeworks will be penalized 3% per day for each day late up to a maximum penalty of 40%, not including weekend days. ACADEMIC CONDUCT Expected academic conduct is defined in the university regulations which can be 2
found at http://www.uky.edu/studentaffairs/code/part2.html. You are expected to have read these regulations and the procedures for dealing with violations. As stated in section 6.3 All academic work, written or otherwise, submitted by students to their instructors or other academic supervisors, is expected to be the result of their own thought, research, or self-expression. In cases where students feel unsure about a question of plagiarism involving their work, they are obliged to consult their instructors on the matter before submission. When students submit work purporting to be their own, but which in any way borrows ideas, organization, wording or anything else from another source without appropriate acknowledgment of the fact, the students are guilty of plagiarism. Learning Outcomes Students will learn the principles and practice of modern computer networks. At the conclusion of the course, the successful student will be able to: Explain how information is encoded for transmission over digital channels. Explain the concepts of channel capacity ( bandwidth ) and latency. State and recognize the framing problem. Describe, apply and implement solution techniques. State the fundamental paradigm of error detection, and evaluate error detection mechanisms for effectiveness under given conditions. Describe, apply, and implement parity-, checksum-, and CRC-based error detection. Identify three different approaches to implementing a local area network, their advantages, disadvantages, and limiting parameters. Explain the basics of operation of important Internet protocols including IP, TCP, mail, and web protocols. Design, code, and test simple client and server programs that communicate via a network. Measures These specific outcomes will be evaluated on the basis of student work (homeworks, programming assignments, and exams) that contain problems specifically addressing these outcomes. They will also be evaluated on the basis of student self-assessment of their mastery of the outcomes performed at the end of the semester. OTHER HELPFUL REFERENCES Computer Networks, Fourth Edition, Larry Peterson and Bruce Davie, Morgan Kaufmann, 2007. Computer Networking: A Top-Down Approach, Fourth Edition, James F. Kurose and Keith W. Ross, Addison Wesley, 2008. 3
Computer Networks, Second Edition, Andrew S. Tanenbaum, Prentice Hall, 1988. Internetworking with TCP/IP: Principles, Protocols, and Architecture, Douglas Comer, Prentice Hall, Fourth Edition, 2000. TCP/IP Illustrated, Richard W. Stevens, Addison Wesley, 1994 Data and Computer Communications, W. Stallings, Prentice Hall, Fifth Edition, 1997 MISCELLANEOUS Computer Accounts You will all recieve accounts on the multilab machines in the EE Annex, and, if needed, on the UK Emulab. If you have accounts elsewhere on campus you can access any of the above machines via ssh or putty.!!! IMPORTANT!!! All your programming assignments must be done on the machines specified in the programming assignment (i.e., which will either be the multi-lab machines or the emulab machines). If your program does not compile and run on the specified machines, you will receive little, if any, credit. Even if you know the code runs on other computers, we will view the code as not working and not correct. Mailing List A mailing list for this class (cs471001@cs.uky.edu) will be set up. Periodically I will be posting messages and announcements of interest and importance to the class (e.g., assignment changes, answers to specific questions). You are responsible for checking your email on a regular basis for announcements posted to this list. 4
SCHEDULE The following is a tentative outline of the material that will be covered each class period. The right column lists the chapters of the book that you should be reading for each topic. Week Topic Assigned Reading 1 Intro and Internet History Chapter 1 2 Client/Server Model Chapter 28 Sockets Chapter 29 Example Socket Application Chapter 30 Network Architectures (Layering) Chapter 16a 3 Transmission Media Chapter 4 RS 232c Protocol Chapter 5 Modems - Analog/Digital Chapter 6 4 Framing Chapter 7 5 LAN Technologies - Ethernet/FDDI/ATM Chapter 8 Addressing and Frame Types Chapter 9 LAN Wiring configuration (self-study) Chapter 10 6 Bridges/Repeater Chapter 11 7 Switching/Routing Chapter 13 8 Network Communication Models Chapter 15 Internetworking Chapter 17 9 IP Model and Addressses Chapter 18 ARP Chapter 19 IP Datagrams Chapter 20b 10 Fragmentation/Reassemblly Chapter 21 IPv6 Chapter 22 ICMP Chapter 23 11 UDP Chapter 24 Transport Service Techniques Chapter 16b 12 TCP Chapter 25 13 IP Forwarding Chapter 20a IP Routing Chapter 27 14 IP Multicast Chapter 27 NAT Chapter 26 15 Firewalls/Security Chapter 40 16 Review 5