g

CS 336
Computer Networks


In this course, we will study the principles underlying the design of computer networks. We will examine techniques for transmitting information efficiently and reliably over a variety of communication media. We will look at the addressing and routing problems that must be solved to ensure that transmitted data gets to the desired destination. We will come to understand the impact that the distributed nature of all network problems has on their difficulty.

Instructor

Tom Murtagh
Office: 309 TCL
Phone: 597-2369
Hours: Tues. 10-12 (or holding 336 lab)
Tues. 1:30-3:30 (or holding 134 lab)
Weds. 1-3:00
Thurs. 1-2:30

Text

Topics and Readings

The following is a tentative schedule of the topics that will be considered in our weekly meetings and the readings for that week. At each meeting, you will receive a packet describing the readings and problems for that week. As the semester progresses, detailed descriptions of the readings will also be added to the schedule below.

Date Topic Readings
1. 9/10 - 9/17 Networking Fundamentals and HTTP.
  • Peterson and Davie, Computer Networks: A Systems Approach, Ch. 1
  • Kurose, Jim and Keith Ross, Computer Networks: A Top-Down Approach,6th Edition, Pearson, 2013, pp. 83-116.
  • Berners-Lee, Tim, Robert Cailliau, Ari Luotonen, Henrik Frystyk Nielsen, and Arthur Secret, The World-Wide Web. Commun. ACM 37, 8 (August 1994), 76-82.
2. 9/17 - 9/24 Broadcast Networks I: Ethernet
3. 9/24 - 10/1 Switching, Routing and the Network Layer
  • Peterson and Davie, Computer Networks: A Systems Approach, §3.1(skip section on ATM) & 3.3.
  • Khanna, A, and J. Zinky, The revised ARPANET routing metric, Proceedings of the Symposium on Communications Architectures & Protocols (SIGCOMM '89), September 25 - 27, 1989, Austin, TX, pp. 45-56.
4. 10/1 - 10/8 Internetworking and IP
5. 10/8- 10/15 LANs, MANs and Fairness
6. 10/15 - 11/22 Transport Protocols and Reliability
  • Peterson and Davie, Computer Networks: A Systems Approach, §2.5, 5.1, 5.2
  • J. H. Saltzer, D. P. Reed, and D. D. Clark, End-to-End Arguments in System Design, ACM Transaction on Computer Systems, Vol. 2, No. 4, Novermber 1984, pp. 277-288.
7. 10/22 - 10/29 Congestion Control
8. 10/28 - 11/5 Midterm and Final Project Proposals
9. 11/5 - 11/12 Error Control and Framing
  • Peterson and Davie, Computer Networks: A Systems Approach, §2.3 through §2.4.
  • Cheshire, Stuart, and Mary Baker, Consistent Overhead Byte Stuffing, IEEE/ACM Transactions on Networking, 7:2 (April 1999), pp. 159-172.
  • Peterson, W.W, and D. T. Brown, Cyclic codes for error detection. Proceedings of the Institute of Radio Engineers, Vol 49 (January 1961), pp. 228-235.
10. 11/19 - 12/20 Security and Encryption
11. 12/4-5 The Physical Layer.
  • Peterson and Davie, Computer Networks: A Systems Approach, §2.1 + 2.2.
  • Tanebaum, Andrew, and David Wetherall, Computer Networks, 5th Edition, Prentice Hall, 2011, pp. 89-114.
  • Walrand, Jean, Communications Networks: A First Course, 1st Edition, Irwin, 1991, pp. 69-83 and 97-113.
  • Walrand, Jean, Communications Networks: A First Course, 2nd Edition, McGraw Hill, 1998, (pp. 202-213).
12. 12/3 - 12/10 Final Project Reports

Assignments and weekly meetings

This course will be taught as a tutorial. Each of you will be assigned to a group of two (or three) students. Your group will normally meet with me each week to discuss the exercises I assigned for the week (meetings will be held in my office -- TCL 309). In the "canonical" tutorial format, one student in each group is primarily responsible for the presentation each week. Because of the cumulative nature of the material we will be considering, I will expect each of you to come to each meeting fully prepared to present solutions to all of the exercises. To compensate for the higher workload such an approach entails when compared to the "canonical" tutorial, you are encouraged to work on the exercises in pairs. To make our meetings a bit more interesting, however, I ask that you not work on the problems with any member of the weekly meeting group to which you belong.

The tutorial format naturally emphasizes learning more than the specific material covered by the course. In particular, this format can have the very positive effect of encouraging you to develop your ability to learn new material independently and to improve your ability to present your thoughts orally. I wish to emphasize this last point. In completing the homework assignments, you should do more than preparing written solutions. Each week you should take some time to think about how you would present your solutions orally. I do not mean that you should prepare a mini-speech for each problem assigned. Rather, just take the time to look over your solution and decide what are the major points you should emphasize when presenting it, what order these points should be mentioned in, etc.

While you should work on improving your oral presentation skills, I will not base your grade on the quality of your presentations in our meetings. The goal of each meeting is to learn together in a relaxed atmosphere. Grading and relaxed do not usually go together. Accordingly, your grade will be based on work you do outside our meetings: exams, programs and the written work you complete in preparation for our meetings.

In determining final grades, the following weighting will be used: midterm 25%, Final 25%, programs 30%, and homework 20%.

Programming Projects

As the semester progresses, detailed descriptions of the programming assignments for the course will also be added below.

Date Topic Readings
1. 9/22 - 10/8 HTTP Proxy Server
2. 10/20-11/5 Virtual Router
3. 11/5-12/10 Reproducing Reproduction?