EECS 325/425   Computer Communication Network

Fall 2005

Course Description

EECS 325 is a senior level course on computer networks. The goal of the course is to teach the fundamental concepts and principles in today's networks. The course involves various aspects of computer networking, including (1) application layer protocols such as HTTP and FTP, (2) transport layer (TCP/UDP) and congestion control, (3) routing and IP, and (4) link layer access protocols. Students are expected to attend the class, work on written homework assignments and programming projects. EECS 425 is a graduate level course taught together with EECS 325. A small number of graduate students should register for EECS 425. Students should also attend the the class, work on homework assignments and programming projects. In addition, they are required to work on an extra project and read technical materials with more research merit.

Prerequisites

EECS 337 and EECS 340 (or their equivalents) are required. C/C++/Java programming experiences are also required. Knowledge in mathematics and statistics would be very helpful.

Textbooks 

Required: Computer Networking, A Top-Down Approach Featuring the Internet, Third Edition, by James F. Kurose and Keith W. Ross, 2002.
Optional: Computer Networks - A Systems Approach, Third Edition by Larry L. Peterson and Bruce S. Davie, Morgan Kaufmann, 2003

Course Information

Instructor: Shudong Jin (Email: jins@case.edu), Office hours: MW 4:00-5:00pm, Office: Olin 502)
Lecture time: MWF 3:00-3:50pm
Location: Olin 313
TA: Danielle Liu (Email:dxl77@case.edu)

Course Content and Requirements

Lectures will be given three times a week. Students are expected to attend all lectures. Classes missed for any cause other than illness may not be made up.

Written homework assignments are given during some lectures. There will be about seven homework assignments. Written answers are preferable, though email submissions are acceptable (acceptable format of electronic submissions include PostScript and PDF). Each assignment is typically due in one week, and then solutions will be posted about 5 days later. A late submission (within 5 days) will still be graded, but the student will only receive partial credits. The percentage decreases linearly with time, 10% a day.

There will be two or three programming projects. The students will have about one month to finish each project. If collaboration is initiated between two students (no more than 2 students), then the students should communicate with the instructor. Programming projects will be submitted in electronic format, and it should include both commented source code (C/C++/Java) as well as documents describing the implementation details and results. The projects will be evaluated based on correctness, completeness, neatness, and its documentation.

There are two midterm exams (quizes) and one final exam. Each one-hour quiz will be scheduled at a random point of time during the semester, and it will cover all topics discussed so far. The three-hour final exam will emphasize the topics covered later. All exams will be in written format.

Grading Policy

Written homework: 25%
Programming project: 20%
Midterm exams: 20%
Final exam: 35%

Current grades of the class.

Tentative Schedule

For some lectures, I will modify the slides provided by the authors of the K&R textbook. They will be posted after the lecture. For other lectures (usually they are more important), no slides will be used. The link to each assignment can be followed at the time of the assignment.

08/29        Course info, introduction. Lecture notes
08/31        Network architecture, layering, and protocols. Lecture notes
09/02        Principles of application-layer. Lecture notes
09/05        Holidays
09/07        FTP, SMTP. Lecture notes
09/09        DNS. Lecture notes
09/12        HTTP. Lecture notes
09/14        Web Caching and CDN. Lecture notes
09/16        Peer-to-peer applications. Lecture notes
09/19        Socket programming. Lecture notes
09/21        Socket programming. Lecture notes
09/23        Introduction to transport layer protocols. Lecture notes
09/26        Principles of reliable transfer. Lecture notes
09/28        Principles of reliable transfer. Lecture notes
09/30        TCP's reliable transfer. Lecture notes
10/03        TCP's reliable transfer, RTT and timer, flow control. Lecture notes
10/05        TCP connection management, state transition. Lecture notes
10/07        Quiz #1
10/10        Principles of congestion control. Lecture notes
10/12        TCP congestion control. Lecture notes
10/14        TCP performance: response time. Lecture notes
10/17        TCP throughput, new topics (TCP-friendly, rate-based, high-speed protocols) Lecture notes
10/19        TCP new topics; Introduction to network layer. Lecture notes
10/21        Inside a router. Lecture notes
10/24        Fall break
10/26        IPv4 and Addressing. Lecture notes
10/28        IPv6 and ICMP, selected graph algorithms. Lecture notes
10/31        Routing algorithms: LS and DV.Lecture notes
11/02        Internet routing architecture and protocols. Lecture notes
11/04        Internet routing architecture and protocols. Lecture notes
11/07        Multicast routing. Lecture notes
11/09        Quiz #2
11/11        Introduction to link layer. Lecture notes
11/14        Multiple access protocols (partitioning). Lecture notes
11/16        Aloha (slotted and unslotted) and analysis, CSMA. Lecture notes
11/18        Efficiency of CSMA/CD.
11/21        Ethernet. Lecture notes
11/23        LAN addressing and ARP. Lecture notes
11/25        Holidays
11/28        PPP. Lecture notes
11/30        ATM. Lecture notes
12/02        Wireless links. Lecture notes
12/05        Revisit protocol layers, application layer for multimedia.
12/07        Transport layer for multimedia.
12/09        Network layer for multimedia, course summary.
12/21        Final exam