Overview, EE 122 / Fall 2007
Description
This is an undergraduate level course on computer networking. The goal is
to teach the fundamental concepts and principles for today's networks and
how to apply those concepts, with strong emphasis on the global Internet.
The course will cover a wide range of topics, including: packet switching,
addressing, control, and routing; transport protocols, reliability,
performance issues, quality of service, and congestion control; link
technologies, bridges, and switches; applications such as email, the Web,
and file transfer; network attacks and defenses; mechanisms to control
traffic; and overlays and peer-to-peer networking.
Prerequisites
Required: CS 61A, 61B, Math 53 or 54, and knowledge of C or C++.
You should know programming, data structures, and software engineering.
In terms of mathematics, your algebra should be very solid, you need
to know basic probability, and you should be comfortable with
thinking abstractly. The TAs will spend very
little time reviewing material that is not specific to networking.
We assume that you either know the material covered in those courses, or
are willing to learn the material as necessary. We won't cover
any of this material in lecture.
Textbooks
Required:
Recommended:
- UNIX Network Programming,
Volume 1: The Sockets Networking API, 3rd Edition
by W. Richard Stevens, Bill Fenner, and Andrew M. Rudoff, Addison-Wesley,
2003.
- TCP/IP
Illustrated, Volume 1: The Protocols, by W.
Richard Stevens
Excellent explanations, but from 1993, so now quite dated.
Alternative/additional texts:
Computing Facilities
Students enrolled in the class will be given an instructional
account, ee122-??@cory. Account forms will be handed out at
the first lecture (if you did not receive an account form, see your
TA). Most of
the Unix systems have cross-mounted file systems, so you can
generally work on other EECS Unix systems. Your final run
for each assignment must be done under that account, and must run on
x86
Solaris machines.