|
|
|
|
Course Overview
|
|
This course introduces the basics of networking,
ranging from sending bits over wires to the Web and
distributed computing. We focus on the
internetworking ground between these two extremes,
particularly focusing on the protocols and design
aspects of the Internet. The goal of the course is to
give you an appreciation of the fundamental challenges
of networking, design strategies of proven value, and
common implementation technologies. Topics will
include: framing, error correction, packet switching,
multi-access (Ethernet), addressing and forwarding
(IP), distance vector and link state routing, queueing
and scheduling, reliable transport, congestion control
(TCP), quality of service, naming (DNS), and security.
back to top
|
|
I reserve the
right to change this, but grades will be assigned roughly as follows:
- Projects: 35%
- Homework: 10%
- Midterm: 25%
- Final: 30%
I may also give out a few extra credit problems, which in
aggregate can earn you up to an additional 5-10%.
back to top
|
|
There will be
one midterm exam and a final exam for this course:
- Midterm : TBA
- Final : 2:30pm-4:20pm, Thursday December 15, 2005
back to top
|
|
There will be three kinds of homework
assignments given throughout the class:
- Reading: you will be given reading
assignments from the course textbook associated with each lecture. You
should finish the reading before coming to the lecture- I will
assume you've done this reading, and my lectures will enhance the
material, rather than regurgitating it.
- Textbook-style questions:
occasionally, I will assign written homework based on either questions
from the text, or made-up questions. These assignments should be
handed in at the end of class on the due date. (Make sure you read
the late policy below.)
- Extra-credit questions: from time
to time, I may pose a question or give a programming assignment
that is purely extra credit.
back to top
|
|
As you've probably guessed from
the allocation of grades, programming projects will be a major portion
of this class. This quarter, we will be implementing various protocols on
top of a Java-based network emulator and simulator called "Fishnet." Our
goal is to give you a good balance between depth (the messy details of
implementation a real protocol) and breadth (exposure to many different
layers of the network stack).
Correspondingly, you need to be quite
comfortable programming in Java. If you're not already well-versed in
Java programming, you will need to teach yourself, and do so in a
hurry. This will put you at a disadvantage relative to your
classmates...
back to top
|
|
(Many of these policies are taken
verbatim from previous instances of this course.)
|
back to top
|
|