Overview, EE 122 / Fall 2007


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.


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.


Required: Recommended: 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.