Cleveland State University

Department of Electrical and Computer Engineering

EEC 584 Computer Networks

Spring Semester 2007

Course Objectives:          This course provides a comprehensive overview of computer networks. Topics include network architectures, communication protocols; data link control, medium access control, LANS and WANS; network layer, TCP/IP. This is a very lab and project centric course. Students will gain much hands-on experiences and practical skills in computer networks.

Prerequisite:                    Even though only graduate standing is officially required to take this course, I do assume you have sufficient computer engineering background. That means you are expected to have taken undergraduate-level operating systems, data structure and algorithms, and programming language courses. In particular, the course project involves with Java programming language.

Textbook:                         Computer Networks, by Andrew S. Tanenbaum, Prentice Hall, 2003, 4th Edition.

Recommended Book:      Computer Networking: A Top-Down Approach Featuring the Internet, by James F. Kurose and Keith W. Ross, Addison-Wesley, 2004, 3rd Edition

Instructor:                        Dr. Wenbing Zhao
Office:       SH434

Phone:       (216) 523-7480

Fax:           (216) 687-5405

E-mail:       wenbing@ieee.org

Lecture time: M W 6:00-7:50pm at SH306

Office hours: M W 4:00-6:00pm and by appointment

 

TA:                                   Rajamani Aravinda Bhadriraju
Office:       SH307

E-mail:       aravinda_bh@yahoo.co.in

Office hours: T Th 2:00-4:00pm and by appointment

 

 

Tentative Schedule

 

Course Project is posted here

Course Project Demonstration Schedule is here

Quiz #4 Results are posted here

 

Week

Topics

Reading

1

(Jan 15 – 19)

Jan 15: No Class – Martin Luther King Day

Jan 17:

  • Lecture #1 - Overview of the course; syllabus; policies (notes)

 

 

Handout

 

2

(Jan 22 – 26)

Jan 22:

  • Lecture #2 - Introduction to computer networks and the Internet (notes)

Jan 24:

  • Lecture #3: Reference models; Network standards; Overview of application layer protocols (notes)

 

Ch.1.2-1.3

 

Ch.1.4

 

 

3

(Jan 29 – Feb 2)

Jan 29:

  • Lecture #4 – Web and HTTP (notes)
  • Handout for Lab #1 instructions

Jan 31:

Lab #0 – Ethereal Lab: Getting Started

Lab #1 – HTTP  

 

Ch.7.3

 

 

4

(Feb 5 – 9)

Feb 5:

  • Lecture #5 – DNS (notes)
  • Lab #1 report due
  • Handout for Lab #2

Feb 7:

  • Lab #2 – DNS

 

Ch.7.1-7.2

 

 

 

5

(Feb 12 – 16)

Feb 12:

  • Lecture #6 – Web caching, more DNS, and in-class exercises (notes)
  • Lab #2 report due

Feb 14:

  • Class canceled due to bad weather

 

Ch.2.1

 

 

 

 

6

(Feb 19 – 23)

Feb 19: No Class – President’s day

Feb 21:

  • Quiz #1

 

 

 

7

(Feb 26 – Mar 2)

Feb 26:

  • CSU Data Center Tour
    3pm; 10th floor of Rhodes Tower
  • Java Tutorial #1

Feb 28:

  • Lecture #7 - Data link layer design issues; Error detection and correction  (notes)

 

 

 

 

 

Ch.3.1-3.2

8

(Mar 5 - 9)

Mar 5:

  • Lecture #8 - Elementary data link protocols (notes)

Mar 7:

  • Lecture #9 - The channel allocation problem; Multiple access protocols (notes)

 

Ch.3.3-3.4

 

Ch.4.1-4.2

9 (Mar 12 – 16)

 No Class – Spring Recess

 

 

10

(Mar 19 – 23)

Mar 19:

  • Lecture #10 – Ethernet; ARP; DHCP (notes)

Mar 21:

Ch.4.3-4.4

Ch.5.6.3 (part of it)

11

(Mar 26 – 30)

Mar 26:

  • Quiz #2
  • Lab #3 report due

Mar 28:

  • Lecture #11 - Network layer design issues; routing algorithms (part I) (notes)

 

 

 

 

Ch.5.1-5.2

12

(Apr 2 – 6)

Apr 2:

Apr 4:

  • Lecture #13 – Internet protocol (part II) (notes)
  • Handout for Lab #5

 

Ch.5.1-5.2

Ch.5.6

 

13

(Apr 9 – 13)

Apr 9:

Apr 11:

  • Quiz #3
  • Lab #4 report due

 

 

14

(Apr 16 – 20)

Apr 16:

  • Lecture #14 - The transport service; sliding window protocols (notes)

Apr 18:

  • Lecture #15 - The Internet transport protocols: UDP and TCP (part 1) (notes)

 

Ch.6.1-6.2

 

Ch.6.4-6.5

15

(Apr 23 – 27)

 

Apr 23:

  • Lecture #16  - The Internet transport protocols: UDP and TCP (part 2) (notes)
  • Handout for Lab #5

Apr 25:

  • Lab #5 – TCP

 

Ch.6.4-6.5

 

 

16

(Apr 30 – May 4)

Apr 30:

  • Quiz #4
  • Lab #5 report due

May 2:

  • No class

 

 

17

(May 7 - 11)

May 9 (6-9:50pm)

  • Demo for course project
  • Project submission due
    (by midnight through email)

 

 

Project

There will be one course project on the implementation of a routing protocol. The project can be completed by a single person or a team of two. Open to alternative project ideas. Java skeleton code and binary jar file of a reference implementation for each project will be provided. Required submissions for each project:

  • Project report describing design, implementation, user’s guide for your program, and performance measurement results. If you have used other people’s work, you must cite them properly. Not doing so will be deemed as an act of plagiarism and will lead to academic consequences based the CSU student code of conduct.
  • Fully commented source code
  • Test input and output data
  • Demonstration and possibly source code review. If you are found that you do not understand, or cannot explain clearly, the code and the program for your projects during the demo and code review, you will not get any credit. The evaluation is individual based. Different team members might not get the same credit.

 

Quizzes

There will be four quizzes. The duration of a quiz is about one hour or less. The quizzes are closed book and closed notes, except that you are allowed to bring with you a one-page cheat sheet not larger than the US letter size (double-sided allowed). There is no makeup quiz.

 

Labs

There are 6 labs on HTTP, DNS, Ethernet, DHCP, IP & ICMP and TCP. They are all based on the Ethereal tool. There will be no makeup lab, and no extension will be granted for lab reports. Exception may be granted to those who have strong background to complete the labs without my supervision (in which case, you do not have to show up during the designated lab sessions. However, lab reports are still required). If you are granted an exception, the related requirement on the lab session attendance for class participation credit is automatically removed.

 

Class Participation

10% of the course credit is allocated to encourage student class participation. I may perform a roll call in the beginning of each class to determine the attendance. To obtain the full credit for class participation, you must satisfy the following conditions:

  • You do not miss more than 2 lectures
  • You do not miss any quiz and lab sessions
  • You have asked at least 10 questions during the semester. You are also encouraged to give me advice on how you would like me to improve my teaching to make it more conducive. For each piece of advice, it will be counted as 2 questions.

To help me keep track who asked me questions, please send me an email with the following information for each question you have asked within 24 hours after the lecture:

  • The question you asked
  • My response
  • Your comment on my response and suggestion for improvement, if any

 

Grading

Class participation 10%

Quizzes 40%

Labs 20%

Projects 30%

 

The final grading is based on your accumulated effort in this course. Your final grade is determined approximately based on the following schedule:

A: 90-100%

A-: 85-89%

B+: 70-84%

B: 60-69%

B-: 55-59%

C: 50-54%

F: <50%