Fall 2009 Syllabus COSC 5328 Description Principles and applications of computer communication, networking, communication protocols, the Internet, LANs, packet-switching networks, network architecture. Where & When Time: 4:00 p.m. to 5:15 p.m. TuTh Place: Maes 111 Instructor: Lawrence Osborne ( ljosborne@my.lamar.edu) Office Hours: in Maes 201 at 10:30 to Noon Monday thru Thursday and by appointment. Prerequisites The official prerequisites are COSC 2336, COSC 4302, and COSC 4310. Grade of C or better. (Consult the instructor if you are unsure of your background.) Course Learning Outcomes: Upon completion of this course, students will be able to: 1. Analyze the structure and organization of computer networks, including the division into network layers, the role of each layer, and the relationships between the layers. 2. Describe the basic concepts of application layer protocol design, including client/server models, peer-to-peer models, and network naming. 3. Demonstrate in-depth understanding of transport layer concepts and protocol design, including connection-oriented and connectionless models, techniques to provide reliable data delivery, and algorithms for congestion control and flow control. 1 4. Demonstrate in-depth understanding of network layer concepts and protocol design, including virtual circuit and datagram network designs, datagram forwarding, routing algorithms, and network interconnections. 5. Explain the basic concepts of link layer properties, including error-detection and correction techniques, multiple access protocols, point-to-point protocols, and characteristics of link layer media (including wireless links). 6. Write client-server and peer-to-peer applications using C++ and UNIX sockets. Topic Outline 1. Computer Networks and the Internet (2.0 weeks) A. Overview of the Internet, protocols, networks B. Basic definitions C. Access networks and physical media D. Protocol layers E. History 2. The Application Layer (2.5 weeks) A. Protocols, continued B. WWW, FTP, Email, DNS C. Socket programming 3. The Transport Layer (2.5 weeks) A. Services and principles B. Reliable data transfer C. Connectionless versus connection-oriented transport D. UDP and TCP E. Congestion control 4. The Network Layer (1.5 weeks) A. Routing and routers B. Virtual circuit and datagram networks C. Internet protocol and routing 5. The Link Layer and LANs (1.5 weeks) A. Error detection/correction B. Multiple access protocols C. LANs, ethernets D. MAC addressing, ARP E. Hubs, bridges, switches F. PPP, ATM, MPLS 6. Wireless and Mobile Networks (1.0 weeks) A. Wi-Fi and cellular networks B. Mobility management 7. Multimedia Applications (2.0 weeks) A. Streaming audio and video, RTSP 2 B. Real time protocols C. Scheduling and policing mechanisms Learning Materials Textbooks Required: Larry L. Peterson and Bruce Davie, Computer Networks, A Systems Approach, Fourth Edition, Morgan Kaufmann Publishers (2007), ISBN 10: 0-12-370548-7. Michael J. Donahoo, and Kenneth L. Calvert, TCP/IP Sockets in C, Morgan Kaufmann Publishers (2001), ISBN 1-55860-826-5. Other Recommended Texts: James F. Kurose & Keith W. Ross, Computer Networking: A Top-Down Approach Featuring the Internet, 5th edition, AddisonWesley (2005), ISBN 0-13-607967-9 (hardback). W. Richard Stevens, Bill Fenner, & Andrew M. Rudoff, UNIX Network Programming: The Sockets Networking API, 3rd edition, Addison-Wesley (2004), ISBN 0-13-141155-1. COSC 5328 Home Web Page Just the basic course material, such as the syllabus and links to socket programming tutorials, may be obtained from the home page http://cs.lamar.edu/faculty/osborne/5328/5328.htm. COSC 5328 MyLamar Web Page All other course material, including course announcements, lecture notes, online quizzes, and assignments may be obtained from the course MyLamar page. All assignments must be submitted on CD. These include both homework and lab assignments. I am in the process of uploading the course to Blackboard. I will let the class know when the resources on Blackboard will be helpful to you. 3 Assignments Computer and Written Work All assignments except the final project must be done on your own. Duplicate assignments will receive a negative grade with the same absolute numerical value that the program would have received had it been done by you alone. Those who allow others to copy from them will receive the same negative grade as those who do the copying. Essays and answers to discussion questions on assignments must be coherent, succinct, readable, and grammatically correct English prose. Part of the grading for such questions reflects this. All work must be neat and legible. Illegible or poorly formatted work receives no credit. We reserve the right to define what is or is not legible or easily read. Essays and answers to discussion questions on in-class examinations need only list the relevant points. You do not have time to write more than one draft, and so I must be lenient on grammar, spelling, and style. Exercises involving coding should contain the following files: well-documented source code for each module; an input file that you have used to test your program, an output file with the results of the tests, and a ReadMe file explaining any usage instructions, in a regular text file, describing: How to compile your code How to run your program How to verify that the program is running successfully. Late Work Late assignments are accepted with the following penalties: up to 24 hours late up to 48 hours late up to 72 hours late more than 72 hours late 12/100 points 25/100 points 50/100 points 100/100 points Grading Your grade is based on lab and homework assignments 15% discussion and quizzes 15% project 20% a mid-term exam 25% 4 a comprehensive final exam 25% Final letter grades are based on the relative distribution of total scores and not on any preset numerical scale. Course Resources Course Files Basic course information is available through the course Web page: http://cs.lamar.edu/faculty/osborne/5328/5328.htm Computing Resources Some lab assignments require Java programming. Other programs may need to be done in C or C++ instead. Still other assignments may require writing Unix scripts. Each assignment will clearly state the programming language to be used. If you have not programmed in Java or C++ or you have not used Unix before, drop this course now and spend this semester learning these languages. You cannot pick up these languages well enough during the course to be able to complete your programming assignments successfully. You should have completed Operating Systems (COSC 4302) and be able to write multithreaded programs. Programming assignments should be tested on a Computer Science lab machine, which can be done remotely. The instructor or graduate teaching assistant runs your program on these machines to determine your grade. Other work may be done on any computing equipment to which you have access. Other Policies Honor Code All assignments must be done individually. Assignments are not to be done in groups. All assignments will be automatically and manually compared against each other. All parties involved in cheating will be prosecuted no matter who copied from whom. It is your duty to keep your code secure. Penalty: for the first offense, your assignment is given a negative grade; for the second offense, your course grade will be “F.” The same rules also apply for cheating on exams. Please be aware of the departmental Honesty Policy, which you received with this syllabus and which is mentioned in the following paragraph. Student Information Guides 5 Policies on cheating, plagiarism, incomplete grades, attendance, discrimination, sexual harassment, and student grievances are described in the Student Handbook and in the Departmental Honesty Policy which is on http://cs.lamar.edu. Students are responsible for all the information in these documents. Students with Disabilities Reasonable accommodations are available for students who have a documented disability. Please notify the Professor during the first week of class regarding accommodations needed for the course. Late notification may cause the requested accommodations to be unavailable. Students needing accommodations must first have them approved through the Office of Services for Students with Disabilities, Wimberley Room 101A. The phone number for the Office of Services for Students with Disabilities is 409-880-8026. Reading Lists: RFCs TCP RFC-793 IP RFC-791 ICMP RFC-792 OSPF RFC-1583 BGP4 RFC-1771 IPNG RFC-1883 Philosophy D. Clark, Design Philosophy of the DARPA Internet Protocols, In Proc. SIGCOMM '88. [PDF] MACAW: A Media Access Protocol for Wireless LANs [PDF] Classic Network Papers 1.W. Stevens, TCP Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery Algorithms, RFC 2001. http://globecom.net/(nocl)/ietf/rfc/rfc2001.shtml. 2.Extended version of "Wide-Area Internet Traffic Patterns and Characteristics," K. Thompson, G. J. Miller, and R. Wilder, IEEE Network, November/December 1997. Available in postscript (4.27M), gzipped postcript (776K), and pdf (2.4M). Also available locally ( ps.gz ). 3.What's Next for Internet Data Analysis? Status and Challenges Facing the Community K. Claffy, Tracie Monk, 1998. 4.Promoting the Use of End-to-End Congestion Control in the Internet, S. Floyd, K. Fall, 1998. 6 5.Dynamics of Internet routing information, B. Chinoy, Mar 1993 6.Dynamics of Random Early Detection, Dong Lin and Robert Morris, SIGCOMM 1997 7.TCP Behavior with Many Flows, R. Morris, ICNP 1997 8.End-to-End Routing Behavior in the Internet. V. Paxson, IEEE/ACM Transaction on Networking, Vol.5, No.5, pp. 601-615, October 1997. 9.End-to-End Internet Packet Dynamics, V. Paxon, ACM SIGCOMM '97. 10.Wide-Area Traffic: The Failure of Poisson Modeling. V. Paxson, S. Floyd, IEEE/ACM Transactions on Networking, Vol. 3 No. 3, pp. 226-244, June 1995. 11.Congestion Avoidance and Control ( compressed postscript, pdf). V. Jacobson, (slightly-revised 1992 version of the SIGCOMM 1998 paper). Other Sites and Papers Sites with interesting and timely papers on TCP/IP networking: vBNS , NLANR , LBL NRG Archive of Internet drafts, RFCs, STDs: http://globecom.net/(nocl)/ietf/index.shtml Resource ReSerVation Protocol (RSVP) -- Version 1 Functional Specification, Internet draft. Integrated Services in the Internet Architecture: an Overview, RFC 1633, June 1994. 7