COURSE DESCRIPTION CSCI 561 - Computer Networks II Description: Analysis of loosely coupled computer communication communication protocols, and network services; an open systems interconnection model is presented and compared to selected examples of computer networks. Prerequisite: CSCI 423 Introduction to Operating systems or equivalent. Textbook: Stevens, W. Richard, et. al.; Unix Network Programming, 3rd Ed., Prentice-Hall, 2004. Coordinator: P. Tobin Maginnis, Associate Professor of Computer and Information Science Goals: Graduate students are provided with the conceptual tools and sample programming to analyze computer networks from a system and application perspective. Prerequisite by Topic: 1. Familiarity with a general purpose high-level language such as C, Pascal, or Ada. 2. Familiarity with general programming concepts. 3. Familiarity with operating system concepts such as process management, memory management, file structures, device drivers, and the user interface. Topics: 1. Introduction and overview of the Internet. 2. Examination of a transport station. 3. Overview of communication protocols. 4. Berkeley Standard Distribution Sockets. 5. Network Library services. 6. Internet Domain Name Service. 7. Congestion and flow control. 8. Bootp and DHCP service. 9. Firewalls, filtering, and traffic shaping 10. Performance 11. Tests (4 hours plus the final examination period). Laboratory Projects See: http://pix.cs.olemiss.edu/csci561 1. Compile and configure Stevens' Networking software. 2. Implement an echo client. 3. Implement a talk client and server. Graduate vs undergraduate requirements PLEASE NOTE: This is a dual graduate/undergraduate course. For those graduate students enrolled in CSCI 561, additional programming exercises will be assigned. Course Grading Undergraduate: Three of four written tests @ 100 points each 300 N program exercises at n/100 points each 100 --- Total course points 400 Graduate students must demonstrate proficiency with socket programming and general networking concepts by completing a semester long program- ming project approved by the instructor. Three of four written tests @ 100 points each 300 N program exercises at n/100 points each 100 Semester long programming project 100 --- Total course points 500 No makeup tests! But, there is an optional final with bonus points worth up to one letter grade. The first ten questions of the final replace the lowest test grade of a previous test. Please note: You must score your AVERAGE grade on the first ten questions of the final BEFORE the last ten questions are worth one letter grade in bonus points (40 or 50 pts). No curve, just a simple 10% grade scale. Using the above undergraduate example, the scale would be: 360 to 400 -> A 320 to 359 -> B 280 to 319 -> C 240 to 279 -> D Below 240 -> F Using the above graduate example, the scale would be: 450 and up -> A 400 to 449 -> B 350 to 399 -> C 300 to 349 -> D Below 300 -> F Course Objectives Upon course completion the student should be able to: 1. Describe the role of networking, transport, and application layers in computer networking. 2. Describe the basic transport layer services and how they are invoked by an application. 3. Contrast socket services versus transport layer services. 4. Contrast TCP, UDP, and SCTP transport services matching application program requirements with a transport service. 5. Describe the design trade-offs of 3-way and 4-way handshakes, open and close mechanisms, and error control. 6. Describe the role of, and give examples of, socket options. 7. Contrast concurrent and iterative server design trade-offs. Fostering Independent Learning The graduate student is expected to use concepts, principles, and techniques learned in CSCI561 as a foundation in the authoring of next generation network-based distributed computer applications.