CSE573S (aka CS533S): Protocols for Computer Networks (Spring 2004)
-
Department of Computer Science
-
School of Engineering and Applied Science
-
Washington University in St. Louis
Meeting time: Tu/Th 2:30 - 4:00, Whitaker Hall, Room 216
Instructor
Dr. Ken Wong
kenw@arl.wustl.edu
Office Hours: By appointment, Bryan 508
Consultants
To Be Announced.
Quick Links
- ANNOUNCEMENTS
- Program B
- Homework 5
- Homework 4
- Exam 1
- Program A
- Due Date: Tues, Mar 23.
- The assignment
- My FAQ
- Coding Style Guide
- FAQ on basic
socket programming
- Drop and delay tar
file ( Version 2d - Mar 28: Implements pkt delay ):
This version emulates a 1 Mbps link with pkt delay.
The previous version (without pkt delays) can still be obtained
from the next link below.
The files can be extracted by changing to a clean directory
and issuing the command 'tar xf dad-v2c.tar' (assuming you saved
the file by that name). It contains dad.[hc]. Read the top
of dad.h for usage info. It is self-contained and exports
the functions dad_init, dad_read, and dad_write.
***** This is a preliminary version and may contain some bugs. *****
- Older versions of dad tar file:
- Homework 3
- Homework 2
- Due Date: Tuesday, Feb 24.
- The assignment ,
My FAQ ,
Solution
- getopt
A cookbook way to get the command-line arguments
- All of the files below in
tar format .
The files can be extracted by changing to a clean directory
and issuing the command 'tar xf hw2.tar' (assuming you saved
the file by that name).
- Homework 1
- Due Date: Tuesday, Feb 10.
- The assignment ,
My FAQ ,
FAQ on basic
socket programming ,
Full Solution
- getopt
A cookbook way to get the command-line arguments
-
Beej's Guide to Network Programming
- All of the files below in
tar format .
The files can be extracted by changing to a clean directory
and issuing the command 'tar xf hw1.tar' (assuming you saved
the file by that name).
- Code based on the lecture example:
stdinc.h ,
myclient.c ,
myserver.c , and
Makefile .
"make build" should compile cleanly on Linux.
Modify the LIB entry in the Makefile for Solaris.
- Beej's Iterative Simple Stream Server
code ,
Simple Stream Client
code ,
Concurrent Simple Stream Server
code
- xread.c , Code to
read from a TCP socket N octets.
- Lecture Notes
NOTE: Postscript files and PDF files should
print ok, but older
tools may not be able to display the Postscript file.
- Lecture 14a: Exam
(Thu, Apr 27, 2004)
( PS ),
( PDF )
- Lecture 14: Congestion Control
(Thu/Tue, Apr 22/27, 2004)
( PS ),
( PDF )
- Lecture 13: TCP (Macroscopics)
(Tue/Thu, Apr 20/22, 2004)
( PS ),
( PDF )
- Lecture 12: The tcptrace Tool
Tue, Apr 20, 2004)
( PS ),
( PDF )
- Lecture 10a: netsim
(Thu, Apr 15, 2004)
( PS ),
( PDF )
- Lecture 10: TCP
(Tue/Thu, Apr 13/15, 2004)
( PS ),
( PDF )
- Lecture 9: Internetwork Routing
(Thu/Tue, Apr 1/6, 2004)
( PS ),
( PDF )
- Lecture 8: Internetworking (Part 1)
(Tue/Thu, Mar 23/25, 2004)
( PS ),
( PDF )
- Lecture 7: Switching
(Tue/Tue/Thu, Feb 24/Mar 2/4, 2004)
( PS ),
( PDF )
- Lecture 6: Direct Networks (Part 3: Error Detection, etc.)
(Tue/Thu, Feb 17/19, 2004)
( PS ),
( PDF )
- Lecture 5: Direct Networks (Part 2: Reliable Delivery)
(Tue/Thu, Feb 10/12, 2004)
( PS ),
( PDF )
- Lecture 4: Direct Networks (Part 1: Multiple Access)
(Tue/Thu, Feb 3/5, 2004)
( PS ),
( PDF )
- Lecture 3: Socket Programming
(Tue/Thu, Jan 27/29, 2004)
( PS ),
( PDF )
- Lecture 2: Basic Performance
(Thu, Jan 22, 2004)
( PS ),
( PDF )
- Lecture 1b: Protocols
(Tue, Jan 20, 2004)
( PS ),
( PDF )
- Lecture 1a: Introduction
(Tue, Jan 20, 2004)
( PS ),
( PDF )
Course Description
The course is concerned with the design, specification, performance
analysis, and implementation of protocols used in existing and emerging
computer networks.
Topics include: LAN and WAN access methods (e.g., CSMA/CD), internetworking
with Internet Protocol (IP), transport protocols (e.g., UDP, TCP),
high-speed transport protocols, routing, host-network interfacing,
and hardware and software protocol implementation models.
Prerequisites
It is assumed that students have mature programming skills and
have basic mathematical skills (e.g., calculus and elementary
probability theory). Program assignments require the use of
C/C++ and Unix system calls. CS422S (Operating Systems) or
permission of the instructor.
Texts
The following two texts by are recommended.
However, you may already have a textbook that will suffice.
I list some alternatives. This is not my recommendation but
if you have one of these alternatives
and really don't want to spend more money, then you might wait
to see if you need to purchase the recommended textbook.
Recommended:
- Computer Networks: A Systems Approach,
by Larry L. Peterson and Bruce S. Davies,
Morgan Kaufmann.
- Alternative 1:
Computer Networks, Andrew S. Tanenbaum, 4th Edition,
Prentice Hall, 2003.
- Alternative 2:
Computer Networking, James F. Kurose and Keith W. Ross,
Addison-Wesley, 2001.
TCP/IP Sockets in C: Practical Guide for Programmers,
by Michael J. Donahoo and Kenneth L. Calvert,
Morgan Kaufmann.
- Alternative 1:
Unix Network Programming, Richard Stevens, Prentice-Hall.
Also Useful:
- TCP/IP Illustrated, Volume 2: The Implementation, Gary Wright and
Richard Stevens, Addison-Wesley.
- Unix Network Programming, Richard Stevens, Prentice-Hall.
- Internet Request For Comments (RFC) Series
at ISI
and an alternate site
at CMU
- Gigabit Networking, Craig Partridge, Addison-Wesley.
- Data and Computer Communications, 5th Edition, William Stallings,
MacMillan.
- Computer Networks, Andrew S. Tanenbaum, 4th Edition,
Prentice Hall, 2003.
- Internetworking with TCP/IP, Volume 1: Principles, Protocols, and
Architecture, 3rd Edition, Douglas E. Comer, Prentice Hall, 1995.
C and C++ Books: See my
CS422 list of C and C++ books .
Grading (Tentative)
The relative weighting of the grade components are:
- Homework - 20%
- Projects - 45%
- Exams - 35%
Exams
There will be two exams.
Homework and Projects
There will be a number of exercises requiring C/C++ programming.
These exercises will involve
substantial programming and students are assumed to be competent in
C/C++, and the UNIX operating system.
There are two types of programming exercises: 1) Protocol implementation
and performance evaluation, and 2) Protocol simulation and performance
evaluation.
No prior simulation or protocol implementation experience is
assumed.
All background required for these assignments will be given at
an abstract level during the course but will require the student to
flesh out the details.
The criteria for the grading of the programs will be elaborated
at the time that each project is assigned.
There will also be some number of homework exercises that do not
require programming.
For the most part, they deal with protocol specification and analytic
performance evaluation using basic algebra, calculus and probability
theory.
Class Attendance
Because the lecture material is not always out of the textbook,
it is essential that you attend class.
However, attendance is not recorded.
Late Submissions
Late submissions of program and homework solutions will generally
NOT be accepted.
Occassionally, in special situations, arrangements for a late
submission can be made if it is made in advance.
Tentative Syllabus
Note that the syllabus is subject to change.
In the "Reading" column, Pn refers to chapter n in the Peterson
text and Dn refers to chapter n in the Donahoo text. Pn.m refers
to Peterson, Section n.m.
| Date |
Class # |
Topic |
Textbooks |
References |
| 1/20 |
1 |
Protocols and Internetworking |
P1 |
|
| 1/22 |
2 |
Performance |
P1 |
|
| 1/27 |
3 |
Socket Programming |
D1-3,5 |
|
| 1/29 |
4 |
. . . |
|
|
| 2/3,5 |
5,6 |
Link Layer |
P2.6-8 |
|
| 2/10,12 |
7,8 |
. . . |
P2.5 |
|
| 2/17,19 |
9,10 |
. . . |
P2.1-4 |
|
| 2/24 |
11 |
Project A |
|
|
| 2/26 |
12 |
Switching |
P3 |
|
| 3/2,4 |
13,14 |
. . . |
|
|
| 3/9 |
|
Spring Break |
|
|
| 3/11 |
|
Spring Break |
|
|
| 3/16 |
15 |
Open |
|
|
| 3/18 |
16 |
Exam 1 |
|
|
| 3/23 |
17 |
Internetworking |
P4.1 |
|
| 3/25 |
18 |
. . . |
P4.3 |
|
| 3/30 |
19 |
. . . |
P4.2 |
|
| 4/1 |
20 |
Open |
|
|
| 4/6 |
21 |
End-to-End Protocols |
P5 |
|
| 4/8 |
22 |
. . . |
|
|
| 4/13 |
23 |
Open |
|
|
| 4/15 |
24 |
Congestion Control |
P6 |
|
| 4/20 |
25 |
. . . |
|
|
| 4/22 |
26 |
. . . |
|
|
| 4/27 |
27 |
Advanced Topics |
|
|
| 4/29 |
28 |
. . . |
|
|
| 5/12 |
|
Exam 2 (Whitaker 216, 330-530) |
|
|
Online Notes and Tutorials
Last modified 7 Jan. 2003
- Please send corrections to kenw@arl.wustl.edu