Download Syllabi-Fall 2010 - Computer Science

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Wireless security wikipedia , lookup

IEEE 1355 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

Net bias wikipedia , lookup

Computer network wikipedia , lookup

Peering 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

Transcript
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