Class Information
(Fall 2005)


Professor Zhenhai Duan
Office: 165 Love Building
Office hours: TBA

Course Description

Spurred by the popularity of world wide web and email, the Internet has transformed itself into the de facto global information infrastructure that underpins much of today's commercial, social and cultural activities. Today we rely on the Internet for a variety of information services that are essential to our daily life, from communications and information access to e-commerce and entertainment.

In this course we will study the various networking protocols that the Internet is built upon and how are implemented in the real world. In particular, the following Internet protocols will be examined in details: IP, ARP, ICMP, TCP, UDP, OSPF, BGP, and various algorithms used by networking equipments including hubs, bridges/switches, and routers. In this course you will learn these protocols and algorithms through a hands-on networking programming project and certain paper reading assignments.

Course Objective:

  1. In depth understanding of the TCP/IP protocol suite
  2. In depth understanding of the TCP/IP implementation in a Linux kernel
  3. Hands-on experience in implementing major TCP/IP protocols
  4. In depth understanding of the trade-offs in network protocol design


  1. CEN5515 Data and Computer Communications or equivalent courses
  2. Experience in socket programming (preferably, COP5570 Advanced Unix Programming or equivalent courses)

Talk to me if you are not positive.


Week-by-Week Topics (tentative):

Week  Topic
1 class logistics and project, Linux network architecture and socket buffer
2 network devices
3 intro to data link layer, transparent bridges
4 Internet Protocol Suite, Internet Protocol V4, ICMP
6 IP routing
10 Concept of sockets, Network programming with sockets
11 TCP
12 TCP
13 Traffic control and QoS, NETFILTER
14 Network address translation
15 IPv6

Workload and Grading:

  1. One programming project: 60%
    Implementing the Internet Protocols that we study in the class in an emulated networking environment, including IP, UDP, TCP, ICMP, ARP, OSPF, etc.

    You are asked to finish the project in two phases, due at the middle and the end of the semester, respectively. A demo is required for each phase. Source codes need to be submitted also.

  2. Paper reading assignments: 20%
  3. Final exam: 20%

Course Policies:

Attendance Policy:

The university requires attendance in all classes, and it is also important to your learning. The attendance record may be provided to deans who request it. If your grade is just a little below the cutoff for a higher grade, your attendance will be one of the factors that we consider, in deciding whether to "bump" you up to the higher grade. Missing three or fewer lectures will be considered good attendance. In rare cases, such as medical needs or jury duty, absences may be excused with appropriate documentation. You should let me know in advance, when possible, and submit the documentation I seek. You should make up for any materials missed due to absences.

Late Assignment Policy:

In order to enable us to provide timely solutions to assignments, we have the following policy regarding submission of late assignments. * An assignment that is turned in no more than 48 hours late will be scored with a 20% penalty. * An assignment that is turned in more than 48 hours late will receive the score of zero, though we will review it and comment on it.

Professional ethics:

You will gain confidence in your ability only when you do the work independently. On the other hand, one does learn a lot through discussions with ones peers. In order to balance these two goals, I give below a list of things that you may, and may not, do. Things you may not do: You should not copy from the assignments of other students. This includes directly copying or making modifications to others' assignments. If you happen to find a solution to an assignment problem from source, you may not copy it. Furthermore, you should take steps to ensure that others cannot copy your assignment. Things you may do: You may ask others about (i) terminology that you do not understand, (ii) clarifications on what is required of you in an assignment problem (though you may be much better of asking me), and (iii) how to submit your assignment. After the assignment has been graded, you are encouraged to discuss each others' solutions.

Honor Code: 

Students are expected to uphold the academic honor code published in "The Florida State University Bulletin" and the "Student Handbook". Please read the provisions of the Academic Honor Code: Also read the section on "Honor code" below.


Plagiarism is "representing another's work or any part thereof, be it published or unpublished, as ones own. For example, plagiarism includes failure to use quotation marks or other conventional markings around material quoted from any source" (Florida State University General Bulletin 1998-1999, p. 69). Failure to document material properly, that is, to indicate that the material came from another source, is also considered a form of plagiarism. Copying someone else's program, and turning it in as if it were your own work, is also considered plagiarism.


Students with disabilities needing academic accommodation should (1) register with and provide documentation to the Student Disability Center, and (2) bring a letter to the instructor indicating the need for accommodation and what type. This should be done during the first week of class. For more information about services available to FSU students with disabilities, contact: Student Disability Resource Center Dean of Students Department 08 Kellum Hall Florida State University Tallahassee, FL 32306-4400 (850) 644-9566 (voice) (850) 644-8504 (TDD)