|





| |
Course Details at a Glance
|
|
Lectures: |
Mon., Wed., Thurs., Fri., 10:30 - 11:20
a.m., Olin 219 |
| Instructor: |
Thomas C. Bressoud, Olin 207, 587-5630,
bressoud@denison.edu |
| Handouts: |
Hardcopies: In-class or at my office |
| Exam Code |
C, Wednesday Apr. 30th, 2:00 - 4:00 p.m. |
|
Description
|
|
What are the underlying concepts and
technologies that make networks in general, and the Internet in
particular, work? This course will study both the design issues
-- hardware design as well as protocol design -- and
the programming associated with computer networks and explore how such a
network is built from the ground up.
The
exploration will cover both specific protocols and network design points,
as well as walking through the thought process that has led from early
networks to the networks of today, so that we understand why
networks look like they do.
The study of
network software allows us to build, through layering, an understanding of
the architecture that permits us to traverse from a high-level view of the
network presented by advanced user level protocols such as HTTP, NNTP, or IMAP, and their associated client-server applications of web
browsers/servers, network news servers, or email clients and servers, to
the low-level reality of transferring bits across a wire or through the
air. More detail on the specific topics to be covered can be
found in the outline below, or by looking at the course schedule. |

Textbooks
|
|
The following textbook is required for the course:
 | Larry L. Peterson and Bruce S. Davie. Computer Networks: A
Systems Approach, 2nd Edition, Morgan Kaufmann Publishers,
2000. ISBN 1-55860-514-2. |
The following is also a required text and will be used primarily as a
programming reference:
 |
Michael J. Donahoo and Kenneth L. Calvert. The Pocket Guide to
TCP/IP Sockets: C Version, Morgan Kaufmann Publishers,
2001. ISBN: 1-55860-686-6. |
|

Course Web Page
|
A web page will be maintained for this
course. The web page will include reading, homework, and project
assignments, scheduling of events (including midterms) and other useful
information. Please check it regularly:
http://www.denison.edu/~bressoud/cs375-s03/
|

Prerequisite
|
|
CS-281 (Computer Organization) is a
prerequisite for this course. |

Final Grade Determination
|
| Homework: |
20% |
| Projects: |
25% |
| Midterm Exams: |
30% (15% each) |
| Final Exam: |
20% |
| Class Participation: |
5% |
|

Course Work
|
-
Homeworks:
-
There will be bi-weekly homework assignments, the intent of which is to cover
the design side and theoretical foundations of computer networks. Homeworks are due in class
on the date specified. This semester, I am going to try my new Russian roulette
late policy. For each class day an assignment is late, an additional 10%
will be deducted from your score. So if an assignment is due on Wednesday, and
you turn it in on Friday, and your raw score on the assignment is 85%, you would
receive a 68 (85 - 0.20 * 85). The roulette part is that, if I grade and
turn back the homeworks from the other class members, or if I pass out an answer
key prior to your turning in a late homework, then you get a 0 on the
assignment. In practice, a class day or two will probably be safe.
You may discuss homework problems with other students in the class,
but written work must be your own. In other words, you may talk
generally about homework problems with your peers, but when it comes time
to write your solutions, you are on your own. You may not get help on homework
from students outside the class. Of course, you are always welcome to come
see me for help.
I am going to follow the lead of my colleagues in the department and
require that homework solutions be typed in a word processor of your
choice. Given the formula nature of many of the performance
related aspects of computer networks, I would recommend that you learn
and use LaTeX, a markup based typesetting program that is widely used in
the research community. Let me know if you need help getting
started.
-
Projects:
-
There will also be bi-weekly project assignments.
The projects are simply programming assignments that are moderately sized and
serve to reinforce the class content in working both with network protocols and
with network applications. Note that moderately-sized means that they
cannot be done in a single day. You will find that debugging network
protocols and applications takes significantly more effort than most programming
you have done in the past. For the two week project interval, I would
encourage you to try and have a design and first-cut implementation done by the
end of the first week, and refine and and enhance in the second week.
I will employ the same late assignment policy to
project assignments as I am using for homework assignments.
Exams:
There will be two midterm exams as well as a final
exam. Each midterm will cover its respective third of the course
material. Note that the second midterm exam is not cumulative, and is weighted
equally with the first exam. The final will be cumulative and cover material
from the entire semester, but I would expect a greater weight given to the
material from the last third of the class. All exams will be closed book, closed notes.
Class Participation:
In general, we would like everyone to do their part to make this an enjoyable
interactive experience (one-way communication is no fun). Hence in addition
to attending class, we would like you to actively participate by asking
questions, joining in our discussions, etc. Note that there is a significant
portion of your grade attributed to class participation. Any day
that you do not attend class, you (by definition) do not participate, and
so be very careful about missing class, as it will affect your grade.
|

Student Responsibilities
|
-
Attendance:
-
Your attendance is expected at each class meeting. Per the class participation
portion of the grade, I reserve the right to take into account attendance
in instances of borderline grade assignments. Of course, excused absences
(sickness, family emergencies, athletic) will not be held against you.
-
Readings:
-
You are responsible for the content of reading assignments, lectures and
handouts, as well as announcements and schedule changes made in class,
whether or not you are present. If you must miss a class, be sure to check
with me or another student to get what you missed. Exams will be given
in class on the day scheduled and may not be made up.
|

Other Issues
|
-
Disability Accommodation:
-
Any student who thinks he or she may need an accommodation based on the
impact of a disability should contact me privately as soon as possible
to discuss your specific needs. I rely on the Office of Academic Support
in Doane 104 to verify the need for accommodation based on documentation
on file in their office.
-
Academic Integrity:
-
Do your own individual homeworks and projects.
Do NOT copy from another person. There should be no reason for two
nearly identical assignments. Usually a warning will be given first and
then an incident of academic fraud will be reported for subsequent incidents.
|

Course Outline
|
|
Week |
Description |
|
1 |
Introduction. Foundations of Networks, including requirements,
network architecture, and high-level software issues. A peek at
the application level. |
|
2 |
Start
ground-up development. Direct-Link networks: Nodes and links,
encoding, framing. Start discussion of reliable transmission. |
|
3 |
Continue
with Direct-Link networks. Cover case studies of physical and
link access protocols: Ethernet, token-ring, and wireless. |
|
4 |
Packet-switched networks. Switching and forwarding, source
routing. Bridges and LAN switches. Depending on time,
coverage of spanning tree algorithm |
|
5 |
Midterm 1.
Broadcast and multicast. ATM and switching hardware. |
|
6 |
Internetworking, with fundamental emphasis on IP. |
|
7 |
Intradomain
routing algorithms, including distance-vector and link-state. |
|
8 |
Interdomain
routing algorithms. CIDR and BGP. IPv6. Multicast if
time permits. |
|
9 |
End to end
protocols: UDP and start in-depth look at TCP. |
|
10 |
Midterm 2.
TCP issues continued, including sliding window, flow control. |
|
11 |
Remote
Procedure Call (RPC). Performance issues for end-to-end. |
|
12 |
Congestion
Control and Resource allocation |
|
13 |
Presentation
and Application-level topics |
|
14 |
Presentation
and Application-level topics |
|
|