CSE 123B, Spring 2003


Communications Software

Lectures: TuTh  2:00-3:20pm  Cntr 113


Stefan Savage  - savage@cs.ucsd.edu
Office Hours: W 10:00-11:00am; AP&M 5220

Teaching Assistants:  

Cristian Estan - cestan@cs.ucsd.edu (discussion)
Office Hours: W 2:00-3:00pm; AP&M 3337D

Yuchung Cheng - ycheng@cs.ucsd.edu (project)
Lab Hours: Tu 3:40-5:00pm and Fri 10:40am-12:20pm, uAPE lab (basement of AP&M)

Alvin Auyoung - aauyoung@cs.ucsd.edu (homework)
Office Hours: M 2:00-3:00pm; AP&M 3337D

Mailing list

Please join the class mailing list by sending e-mail to majordomo@cs.ucsd.edu with subscribe cse123b your_email_address in the message body (where your_email_address is the email address you use for reading mail).


Computer Networks: A Systems Approach, 2nd Edition by Peterson and Davie, published by Morgan Kaufmann, 2000.  (errata)

Course overview

This course covers the design and architecture of network communications software with an emphasis on Internet-based communications technologies.  The goal of the course is to provide an appreciation of the fundamental challenges in networking as well as the design approaches and implementations in use today.  We will cover, at minimum, the following topics: Internetworking (IP), reliable communication, flow control, congestion control (TCP), intra-domain (RIP, OSPF) and inter-domain routing (BGP),   Quality of Service, naming (DNS), Web service (HTTP), load balancing, and network security.


Homeworks are due by the end of class on the day specified. We will reduce homework grades by 20% for each day that they are late. You must hand in a hardcopy of your homework.  We will post homework solutions 5 days after they are due.


To complete the projects in this course, you will need the ability to develop software programs using the C language.  If you have not used C recently, you may want to refresh your knowledge using one of the many good books on the topic.  In particular I recommend the classic, The C Programming Language, by Kernighan and Ritchie.

Project Assignment 1 is out!

Project Assignment 2 is out!


Your grade for the course will be based on your performance on the homeworks, midterm and final exams, and programming projects using the following weights:

Collaboration Policy

Unless we state specifically otherwise, you are encouraged to collaborate on home and projects.  After all, you will learn a lot from your fellow students.  However, there can be a fine line between collaboration and cheating.  Here is what we expect:

  1. You spend at least 15 minutes on each and every problem, alone before discussing it with others.

  2. You write up each and every solution as your own program or in your own words, and understand your solution fully.

Copying someone else's written homework or programs is cheating, as is copying them from other source (Web, previous years classes, etc.)

Cheating Policy

I understand that sometimes assignments can be frustrating and that you are all under a lot of pressure.  Please come to see me, or one of the TA's if you're having trouble.  I have great sympathy for people who try hard.  I have no sympathy for cheating.  If you're caught cheating, you can expect a serious response on my part (its not worth it).

The academic honesty guidelines outlined by Charles Elkan for CSE 130 apply to this course.



Date Lecture Readings Homework Project
4/1 Course introduction
(6-up version)
Ch 1    
4/3 *** Class cancelled ***      
4/8 Internet architecture &

(6-up version)
Ch 4-4.1.4    
4/10 Reliable communication
(6-up version)
Ch 2.5, Ch 5-5.2    
4/15 Connections and Flow control
(6-up version)
Ch 6.3-6.4 Peterson and Davies: 1.5, 1.8, 2.20, 2.22, 2,26, 4.4(a,b) [due at the start of class on 4/22]  
4/17 Congestion Control
(6-up version)
4/22 Routing I: Distance Vector
(6-up version)
Ch 4.2 HW#1 solutions  
4/24 Routing II: Link State
(6-up version)

4/29 Routing III: Inter-domain routing
(6-up version)
Ch 4.3-4.3.3    
5/1 Routing III: Multicast
(6-up version)
Ch 4.4    
5/6 Mobile IP
(6-up version)
Ch 4.2.5   Project #1 due 13:00
5/8 Midterm
Last year's midterm (with solutions)
5/13 Domain Naming System
(6-up version)
Ch 9.1   Project #2 assigned
5/15 HTTP/Web
(6-up version)
Ch 9.2.2    
5/20 Load Balancing and Content Distribution
(6-up version)
Ch 9.4.3    
5/22 Peer-to-Peer Networks
(6-up version)
Ch 9.4.2   Midterm solutions
5/27 Network Security I
(6-up version)
5/29 Network Security II
(6-up version)
  Peterson and Davies: 6.29(a,b), 4.20, 4.46, 9.10, 9.11 [due at the start of class on 6/5]  
6/3 Popourri
(6-up version)
6/5 Distributed Web Caching
  Homework #2 due (at the start of class)  
6/9 Review Session
  HW #2 solutions