* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Syllabi-Fall 2010 - Computer Science
Wireless security wikipedia , lookup
Net neutrality law wikipedia , lookup
Distributed firewall wikipedia , lookup
TCP congestion control wikipedia , lookup
Wake-on-LAN wikipedia , lookup
Airborne Networking wikipedia , lookup
Deep packet inspection wikipedia , lookup
Computer network wikipedia , lookup
Internet protocol suite wikipedia , lookup
Cracking of wireless networks wikipedia , lookup
Zero-configuration networking wikipedia , lookup
List of wireless community networks by region wikipedia , lookup
Piggybacking (Internet access) wikipedia , lookup
Recursive InterNetwork Architecture (RINA) wikipedia , lookup
Fall 2010 Syllabus CPSC 3320 Description “Networks are ubiquitous in our modern society. The World Wide Web that links us to and enables information flows with the rest of the world is the most visible example. It is, however, only one of many networks within which we are situated. Our social life is organized around networks of friends and colleagues. These networks determine our information, influence our opinions, and shape our political attitudes. They also link us, often through important but weak ties, to everybody else in the United States and in the world. Economic and financial markets also look much more like networks than anonymous marketplaces. (See the Open MIT course on Computer Networking offered in fall 2009 by Professors Daron Acemoglu and Asu Ozdaglar. http://ocw.mit.edu/courses/economics/14-15j-networks-fall-2009/). This course will cover the principles underlying the enormously complex subject of computer networks. The course adopts a top-down approach based on the layers of the network architecture. Some of the fundamental principles are reliable communication over an unreliable network layer, connection establishment/teardown and handshaking, congestion control, multiplexing, interconnection of a large number of heterogeneous networks, and network security including confidentiality, authentication and message integrity based on cryptographic concepts. These principles will be true long after today’s protocols and network standards have become obsolete. The course involves both analysis and implementation of the relevant algorithms and concepts. Consequently, there will be homework assignments that include solving mathematical problems, writing programs using an appropriate network API, and discussion questions. Level: Undergraduate Where & When CPSC 3320 is a WEB-based course. There will be two online tests during the semester, and a final examination given on campus at the end of the semester. Students unable to come to campus will be assigned a local site in which to take the test in a monitored environment. The student is responsible for informing the instructor during the first month of class whether he/she must take the final exam off-campus. Instructor: Lawrence Osborne ( [email protected]) Office Hours in Maes 57: 10:30 a.m. to Noon, Monday thru Thursday and by appointment. I will respond to email within 24 hours. You can contact me at any time via email, and I will reply within 24 hours. Teaching Assistant: TBA 1 Office Hours: TBA Prerequisites The official prerequisites are Data Structures (COSC 2336), and Calculus I (Math 2314). Operating Systems, and Computer Architecture will be very helpful. Students are responsible for completing prerequisites before enrolling in any course. (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. Explain how an IP router uses a routing table to forward IP datagrams. 3. Describe how a datagram passes through the Internet. 4. Explain protocols for wired and wireless local area networks and VLANS. 5. Design and implement a concurrent Web server that can handle multiple connections to a given port number using the standard socket interface. 6. Explain the use of cable networks, DSL, and fiber-to-home networks. 7. Describe distributed hash tables and their use in peer-to-peer networks. 8. Compute the length of a single bit as it travels across a network. 9. Describe the basic concepts of application layer protocol design, including client/server models, peer-to-peer models, and network naming. 10. 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. 11. 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. 12. Understand the network activities and protocols that are necessary to retrieve and display a web page from a remote server. Topic Outline 1. Computer Networks and the Internet Overview of the Internet, protocols, networks Basic definitions and Terminology 2 History and Growth of the Internet Protocol layers Ping and Tracing a Route 2. Network Programming Client-Server Programming Example of the API Definition of the API Echo, Chat and a Web Application 3. The Physical and Datalink Layers Physical network basics Digital channels Errors and error detection Understanding of one shared media access protocol (e.g., CSMA) A little bit about wireless LANs Shannon and Nyquist limits Wires and Fibers Radio and satellites Microwave Lasers Asynchronous Communication Communication Standards Baud Rate and Frames Hardware Limitations Long distance transmission Modulation and Demodulation Carrier Frequencies and Multiplexing Wavelength Division Multiplexing Spread Spectrum Time-Division Multiplexing 4. Concepts Circuit switching vs. packet switching Framing and encapsulation 5. Network interconnection Moving packets through multiple networks (routing, internetworking) Addressing and forwarding 6. Protocols What a protocol is and how it is specified Reliable windowed/pipelined data transfer in the face of errors (including basics of TCP) Congestion control Managing and configuring a remote device Current application protocols and how they work 7. Recurring themes 3 Security as a daily reality Encryption as a solution Elements of performance (transmission, propagation delay) 8. Packets, Frames, and LAN Technologies What is a packet? Packets and Time-Division Multiplexing Packets and Hardware Frames Byte Stuffing Error Detection and Cyclic Redundancy Checks Direct Point-to-Point Communications Shared Communication Channels LAN Topologies Ethernet, CSMA, CSMA/CD Ring Topology and Token Passing 9. WAN Technologies, Routing, and Connection Oriented Networking (2.0 weeks) Packet Switches Store and Forward Physical Addressing in a WAN Next-Hop Forwarding Source Independence Hierarchical Addresses and Routing Routing Table Computation Distributed Route Computation Distance Vector and Link-State Routing Connection-oriented Service Lables and Lable Switching Permanent and Switched Virtual Circuits MPLS 10. Ownership, Service and Performance in Networks Connection-Oriented Service Connectionless Service Comparison of Service Paradigms Network Performance Characteristics 11. Internetworking Internetworking Internet Architecture A Virtual Network TCP/IP DNS Clasful and Classless Addressing ARP IP Datagrams and Datagram Forwarding 4 IP Encapsulation, Fragmentation and Reassembly UDP ICMP RIP and OSPF 12. Socket Interface (2 Weeks) Socket API Socket Libraries Read and Write with Sockets DNS Client-Server Model Locality of Reference and Multiple Servers Learning Materials Textbooks Required: James F. Kurose, and Keith W. Ross, Computer Networking, fifth edition. Addison-Wesley Publishers, 2010. ISBN: 0-13-607967-9; Michael J. Donahoo, and Kenneth L. Calvert, TCP/IP Sockets in Java. Morgan Kaufmann Publishers, 2001. Other Recommended Books: Douglas E. Comer, Computer Networks and Internets with Internet Applications, 4rd edition, Prentice-Hall (2004), ISBN 0-13-143351(hardback); Internetworking with TCP/IP, Vol. II . Second Edition, Comer & Stevens, Prentice Hall, 1994; Douglas E. Comer, Hands-On Networking with Internet Technologies, Second Edition, Pearson Prentice Hall Publishers, 2005; Andrew S. Tanenbaum, Computer Networks, Fourth Edition, Prentice Hall, 2003. ISBN: 0-13-066102-3; Larry Peterson & Bruce Davie, Computer Networks, A Systems Approach, fourth edition. Morgan Kaufmann Publishers, 2007. The textbooks are a useful source of reference to material covered in the online tutorials and lectures. Students are responsible for reading the materials provided in the course. The textbook also includes history of computer networking, and interviews with renowned innovators in the field of networking. Textbook Web Page: http:/www.aw.com/kurose_ross. Your textbook will contain an Access Code for six months of access to the book’s Companion Website. You will need to register at this site before you can access the materials on the website. The Companion Website has interactive learning material, additional technical material, programming assignments, and Wireshark labs. The latter demonstrate many common protocols 5 including WiFi, HTTP, DNS, TCP, UDP, IP, Ethernet, ICMP, and SSL. The Instructor’s 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/3320/3320.htm CPSC 3320 Blackboard Web Page All course material, including course announcements, lecture notes, tutorials, online quizzes, links, and assignments may be obtained from the Blackboard page for the course. Assignments Computer and Written Work Honesty Policy: All assignments except the final project must be done on your own. Duplicate assignments will receive a zero grade. Those who allow others to copy from them will receive the same zero grade as those who do the copying. Discussion of intial ideas and approaches regarding homework assignments is fine. Collaboration on homeworks (i.e. jointly exploring the specifics of a solution), however, is not allowed unless the homework is explicitly assigned to teams instead of individuals. Academic Dishonesty is an egregious offence against the entire class and will be dealt with in accordance with the Computer Science Academic Honesty Policy published on the department website and with the University Student Handbook. 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. The instructor reserves the right to define what is or is not legible or easily read. 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 A list of the functions and/or classes used in your program, and a short description (a few sentences) describing the role of each in the system. This can be provided as Javadoc comments in the code itself, or as a separate text file. Late Work: 6 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 Programming assignments 25% Discussion and other Homework questions 15% Two examinations 25% a comprehensive final exam 35% 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/3320/3320.htm, but the content of the course is entirely presented on Blackboard. Computing Resources: Some lab assignments require C, C++, or Java programming. 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 a high level language such as Java, C or C++ or you have not used Unix or Linux before, drop this course now and spend this semester learning these software systems. Experience with just Java programming and Linux is sufficient. Programming assignments should be tested on a machine running Linux (version 5.3 CentOS), which is the operating system used in our lab in Maes 208. You can access Galaxy, our Linux server remotely to check your work on our version of Linux. 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 7 Student Information Guides Policies on cheating, plagiarism, incomplete grades, attendance, discrimination, sexual harassment, and student grievances are described in the Student Handbook on http://www.lamar.edu and in the Departmental Honesty Policy which is on http://cs.lamar.edu. Students are responsible for all the information in these documents. Submission of Programming Assignments Submit your assignments by sending mail to the course teaching assistant. In general, send your work either (1) in plain text or (2) as attachments in plain text, PS, or PDF format. No other formats are accepted without prior arrangement. Programming assignments including code and write-ups should be tarballed and/or zipped before attachment. See individual assignments for details. I will send the name of the teaching assistant and his/her email address by email to the class within the first two weeks of the semester. 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 List: The following papers contain valuable information about networking. I will assign some of them during the course, and I recommend that you read as many of them as possible. Van Jacobson's list on Internet Protocol Design and Implementation. Interesting Papers Related to Network Architecture, maintained by the NewArch project J. Postel, "Internet Protocol". RFC 791, Sept 1981. Protocol specification of IPv4. J. Postel, "Transmission Control Protocol". RFC 793, Sept 1981 Protocol specification of TCP. J. Saltzer, D. Reed, and D. Clark, "End-to-end Arguments in System Design". ACM Transactions on Computer Systems (TOCS), Vol. 2, No. 4, 1984, pp. 195-206. 8 The above paper discusses layered architecture, but a fundamental problem is how to divide functionality among layers. End to end argument is the answer from the Internet community. End to end arguments is a class of system design principles that organize and guide the placement of function within a system. These arguments and the underlying principles have now been invoked in many contexts, becoming part of the vocabulary of network protocol and operating system designers. D. Clark, "The Design Philosophy of the DARPA Internet Protocols". In Proceedings of ACM SIGCOMM '88, 106-114, Palo Alto, CA, Sept 1988. Discuss the design goals of the Internet. D. Clark and D. Tennenhouse, "Architectural Consideration for a New Generation of Protocols". In Proceedings of ACM SIGCOMM '90, Philadelphia, PA, September 1990. R. M. Hinden, "IP Next Generation Overview". CACM 1995. Discuss IPv6. B. Carpenter, "Architectural Principles of the Internet". RFC 1958, Jun 1996. David Isenberg, "Rise of the Stupid Network". 1997 An interesting discussion on "stupid" and "intelligent" networks. David P. Reed, Jerome H. Saltzer, and David D. Clark, "Comment on Active Networking and End-to-End Arguments". IEEE Network 12, 3 (May/June 1998) pages 69-71. D. Clark. "Rethinking the Design of the Internet: end to end arguments vs. the brave new world". Presented at TPRC 2000, Alexandria, Va., September 23-25th, 2000. of ACM SIGCOMM 2002. (html, video in Windows Media format) MAC and link layer Kleinrock, L. and F. Tobagi, "Packet Switching in Radio Channels: Part I--Carrier Sense Multiple-Access Modes and their Throughput-Delay Characteristics", IEEE Transactions on Communications, Vol. COM-23, No. 12, pp. 1400-1416, December 1975. Also, "Multiple Access Communications, Foundations for Emerging Technologies", Norman Abramson (Ed), IEEE Press, 1992, pp. 272-288. 9 B. Metcalfe and D. Boggs, "ETHERNET: Distributed Packet Switching for Local Area Networks". Communications of the ACM, Vol. 39, No. 6, pp. 395-404, 1976. A summary of the theoretical analyses on Ethernet performance. Measure the performance also. V. Bharghavan, A. Demers, S. Shenker, and L. Zhang, ``MACAW: A Media Access Protocol for Wireless LANs.'' ACM Sigcomm '94, London, UK. September 1994. (Improve the congestion control and message exchange of MACA, which was proposed by Kahn and used RTS/CTS to address the hidden terminal problem. Routing Robert G. Gallager, A Minimum Delay Routing Algorithm Using Distributed Computation, IEEE Transactions on Communications, 1, 73-85 (1977). D. Bertsekas, "Dynamic Behavior of Shortest Path Routing Algorithms for Communication Networks," IEEE Transactions on Automatic Control, AC-27, pp. 60-74, February 1982. R. G. Gallager, P. A. Humblet, and P. M. Spira, "A Distributed Algorithm for Minimum-Weight Spanning Trees," ACM Transactions on Programming Languages and Systems, Vol. 5, No. 1, January ]983, Pages 66-77. V. Paxson, "End-to-End Routing Behavior in the Internet". In Proceedings of ACM SIGCOMM '96, August 1996, Stanford, CAShow the pathologies, stability, and symmetry of Internet routing. Pay attention to the methodology. C. Labovitz, G. R. Malan, and F. Jahanian, "Internet Routing Instability". In Proceedings of ACM SIGCOMM'97, September 1997. BGP router send too many BGP packets. o Internet measurements and models Jean-Chrysotome Bolot, "End-to-end packet delay and loss behavior in the internet". In Proceedings of ACM SIGCOMM '93. W. E. Leland, M. S. Taqqu, W. Willinger, and D. V. Wilson, "On the Self-Similar Nature of Ethernet Traffic". In Proceedings of SIGCOMM '93. IEEE/ACM Transactions on Networking, Vol. 2, No. 1, pp. 1-15, Feb. 1995. (html) W. Willinger, V. Paxson, and M.S. Taqqu, "Self-similarity and Heavy Tails: Structural Modeling of Network Traffic". In A Practical Guide to Heavy Tails: V. Paxson and S. Floyd, "Wide-area Traffic: The Failure of Poisson Modeling". IEEE/ACM Transactions on Networking, June 1995. 10 Sally Floyd and Vern Paxson, "Difficulties in Simulating the Internet". To appear in IEEE/ACM Transactions on Networking. February, 2001. V. Paxson, "End-to-End Routing Behavior in the Internet". In Proceedings of ACM SIGCOMM '96, August 1996, Stanford, CA. [Pax97] V. Paxson, "End-to-End Internet Packet Dynamics". In Proceedings of SIGCOMM '97, pp. 139-152, Cannes, France, September 1997. Michalis Faloutsos, Petros Faloutsos, and Christos Faloutsos, "On Power-Law Relationships of the Internet Topology". In Proceedings of SIGCOMM '99. Neil Spring, Ratul Mahajan and David Wetherall, "Measuring ISP Topologies with Rocketfuel." In Proceedings of ACM SIGCOMM 2002. R. Castro, M. Coates, G. Liang, R. Nowak, and B. Yu (2003). Internet Tomography: Recent Developments Statistical Science. Lun Li, David Alderson, Walter Willinger, John Doyle. A First-Principles Approach to Understanding the Internet's Router-Level Topology. In SIGCOMM 2004. Traffic management--congestion control, router mechanisms and pricing D.-M. Chiu and R. Jain, "Analysis of the Increase and Decrease Algorithms for Congestion Avoidance in Computer Networks". Computer Networks and ISDN Systems, Vol. 17, 1989, pp. 1-14. Propose the Additive Increase and Multiplicative Decrease algorithm. K. Ramakrishnan, D. Chiu, and R. Jain, "Congestion Avoidance in Computer Networks with a Connectionless Network Layer". In Proceedings of ACM SIGCOMM '88, Sept. 1988, pp. 303-313. K.K. Ramakrishnan and R. Jain, "A Binary Feedback Scheme for Congestion Avoidance in Computer Networks". ACM Transactions on Computer Systems, Vol. 8, No. 2, pp 158-181, May, 1990. V. Jacobson, "Congestion Avoidance and Control". In Proceedings of ACM SIGCOMM '88, Sept. 1988, pp. 314-329. K. Fall and S. Floyd, "Comparisons of Tahoe, Reno, and Sack TCP". LBNL Technical report, December 1995. H. Balakrishnan, S. Seshan, R. H. Katz, "Improving Reliable Transport and Handoff Performance in Cellular Wireless Networks", ACM Wireless Networks, V 1, N 4, December, 1995. 11 W. Stevens, "TCP congestion control". RFC 2001, Jan 1997. M. Allman and A. Falk, On the Effective Evaluation of TCP, ACM Computer Communications Review, October 1999. Network S. Bellovin, "Security Problems in the TCP/IP Protocol Suite" Computer Communication Review, Vol. 19, No. 2, April 1989, pp. 32-254. Burrows and Abadi and Needham. "A Logic of Authentication." Practical Cryptography for Data Internetworks, IEEE Computer Society Press. 1990. George Apostolopoulos, Vinod Peris, and Debanjan Saha, "Transport Layer Security: How much does it really cost?" In Proceedings IEEE INFOCOM '99, New York, March 1999. Beyond unicast: multicast and anycast S. Deering, "Multicast Routing in Internetworks and Extended LANs", SIGCOMM'88, Stanford, CA, Aug 1988, 55-64. T. Ballardie, P. Fracis, and J. Crowcroft, "An Architecture for Scalable Inter-Domain Multicast Routing", SIGCOM'93. J.-C. Bolot, T. Turletti, and I. Wakeman. "Scalable Feedback Control for Multicast Video Distribution in the Internet". In Proceedings of ACM SIGCOMM, pages 58-67, September 1994. L. Vicisano, L. Rizzo, and J. Crowcroft, ``TCP-like Congestion Control for Layered Multicast Data Transfer'', IEEE Infocom 98, March 1998. John W. Byers, Michael Luby, Michael Mitzenmacher, and Ashu Rege, "A Digital Fountain Approach to Reliable Distribution of Bulk Data". In Proceedings of ACM SIGCOMM 1998. Peer-to-peer networks O'Reilly's P2P web site I. Clarke, O. Sandberg, B. Wiley, and T. W. Hong, "Freenet: A Distributed Anonymous Information Storage and Retrieval System" ICSI Workshop on Design Issues in Anonymity and Unobservability, July 2000. Ion Stoica, Robert Morris, David Karger, Frans Kaashoek, Hari Balakrishnan, "Chord: A Scalable Peer-To-Peer Lookup Service for Internet Applications". In Proceedings of ACM SIGCOMM 2001. 12 Sylvia Ratnasamy, Paul Francis, Mark Handley, Richard Karp, Scott Shenker, "A Scalable Content-Addressable Network". In Proceedings of ACM SIGCOMM 2001. Domain Name System P. Mockapetris and K. Dunlap, "Development of the Domain Name System", In Proceedings of ACM SIGCOMM , Stanford , CA, August 1988. J. Jung, E. Sit, H. Balakrishnan, R. Morris, "DNS Performance and the Effectiveness of Caching", In Proceedings of ACM SIGCOMM Internet Measurement Workshop , San Francisco, CA, November 2001. Amin Vahdat, Michael Dahlin, Thomas Anderson, and Amit Aggarwal, "Active Names: Flexible Location and Transport of Wide-Area Resources." In Proceedings of the USENIX Symposium on Internet Technologies and Systems (USITS), October 1999. Noteworthy Recent Networking Papers • S. Guha, Pl. Francis, “An End-Middle-End Approach to Connection Establishment. In Proceedings of the Conference on Computer Communications, Vol. 37, No. 4, October 2007. • V. Aggarwal, A. Feldmann, and C. Scheider, “Can ISPs and P2P Users Cooperate for improved Performance?” Computer Communication Review, Vol. 34, No. 3, July 2007 • X. Chen, Y. Mao, Z.M. Mao, J. Van der Merwe, “DÉCOR: DEClarative Network Management and OPeRation”. Proceedings of ACM SIGCOMM Workshop, 2009. • F. Hao, T.V. Lakshman, S. Mukherjee, H. Song, “Enhancing Dynamic Cloud-based Services using Network Virtualization.”. Proceedings of ACM SIGCOMM Workshop, 2009. • N. Dukkipati, T. Refice, Y. Cheng, J. Chu, T. Herbert, A. Agrawal, A. Jain, and N. Sutin, “An Argument for Increasing TCP’s Initial Congestion Window”. Computer Communication Review, Vol. 40, No. 3, July 2010. • J. Padhye, V. Firoiu, D. Towsley, and J. Kurose. “Modeling TCP throughput.” Proceedings of SIGCOMM 2008. • C. Labovitz, G. Robert Malan, and F. Jahanian, “Internet Routing Instability.” Proceedings of SIGCOMM 1997. • • 13 • • • • 14