CSCI 6760 - Computer Networks

Spring 2011


Instructor Prof. Roberto Perdisci
Credits 4
Location All classes will be in GSRC 208 (not anymore in Poultry Sci)
Time 11am-12:15pm TR, 11:15am-12:05pm W (also see course calendar)
Prerequisites Programming Languages: C AND (Java OR Python), Familiarity with Linux
Office Hours Wednesdays, 2:30-4:30pm (Boyd GSRC, Room 423)
TA
Mr. Arash Jalal Zadeh Fard. Office hours:  Tue 4:00-5:00pm, Thu 12:30-1:30pm (Boyd GSRC 539)

NOTE: The course syllabus is a general plan for the course; deviations announced to the class by the instructor may be necessary.

Course Overview

The Internet has become a fundamental component of modern life. An increasingly large number of people rely on the Internet to communicate with one another, search for information on the most diverse topics, do business, find and purchase goods, etc. This course focuses on how the Internet works. We will start by viewing the Internet for what it really is, namely a large number of interconnected computer networks, and analyze how devices connect to the Internet to exchange information. We will first analyze some of the most important application protocols such as HTTP, SMTP, DNS, etc., that enable Internet nodes to request and offer services (e.g., access web pages, send emails, etc.). We will then move down the OSI model to consider the transport and network layers, with focus on understanding the UDP and TCP protocols, flow and congestion control, and the IP and routing protocols. Next we will consider the link and phisical layers. Finally, we will discuss topics related to Network Security, such as Firewalls, Intrusion Detection Systems, etc. 

Prerequisites: The class projects will require a good knowladge of the C programming language, as well as higher-level languages such as Java or Python. Furthermore, most projects will be based on code written mainly for Linux systems. Therefore familiarity with such systems is also required.

Books:
  • Textbook: Computer Networking: A Top-Down Approach Featuring the Internet, 5/e
    James F. Kurose and Keith W. Ross
    Addition Wesley, ISBN: 0-13-607967-9

  • Recommended Readings: TCP/IP Sockets in C: Practical Guide for Programmers 2/e
    Michael J. Donahoo and Kenneth L. Calvert
    Morgan Kaufmann, ISBN: 0-123-74540-3
    http://cs.baylor.edu/~donahoo/practical/CSockets/

  • Recommended Readings: TCP/IP Illustrated, Volume 1: The Protocols
    W. Richard Stevens
    Addition Wesley, ISBN: 0-201-63346-9

  • Recommended Readings: Network Security: Private Communication in a Public World, 2/e
    Charile Kaufman, Radia Perlman, Mike Speciner
    Prentice Hall, ISBN: 0-13-046019-2

  • Other resourcesThe TCP/IP Guide
    Charles M. Kozierok
    Available online at: http://www.tcpipguide.com/free/index.htm

Grading

Students will be evaluated using the following criteria:

Class Participation = 5%
Paper Reviews = 10%
Development Projects and Assignments = 25%
Midterm Exam = 25%
Final Exam = 35%


Class Participation
The lectures will include topics that are not necessarily covered in the textbook. This topics will be part of the midterm and final evaluations, therefore class participation is highly recommended. In addition, since class participation is worth 5% of the final grade, students will be required to sign an attendance log.

Paper Reviews
Students will be required to read a number of academic papers as assigned by the instructor, and write a short review. The reviews should summarize the topic of the paper, briefly describe the proposed systems or algorithms, and outline the most important evaluation results.
NOTE: some of the topics discussed in the assigned papers may be part of the midterm and final exams.

Development Projects and Assignments
Throughout the course, students will be required to complete a number of development projects and other assignements. Some development projects must be conducted individually, while others may be conducted in pairs (I will indicate which ones in class). The projects will focus on network programming in Linux using C and higher-level languages such as Java or Python. Other assigments will focus on the analysis of live network traffic traces and pencil-and-paper homework. Each successfully completed assignment will be attributed X points, where X will vary depending on assignment difficulty.

IMPORTANT: most development projects will be evaluated using a binary criteria: "program works correctly" = max points; "program does not work according to specifications" = 0 points. Possible exceptions to this rule will be announced during class.

LATENESS POLICY: Students are allowed a (cumulative) maximum of 4 late days for the assignments throughout the semester. If this threshold is exceeded, all future late assignements will be penalized 100% (i.e., 0 points).

Midterm and Final Exams
The midterm exam will include topics covered up to the exam date. The final exam will include all the topics studied during the entire course, with a focuse on topics covered during the second half of the term. Both the midterm and final exams may include topics from the academic papers assigned for review.


Academic Integrity and Ethics

As a University of Georgia student, you have agreed to abide by the University’s academic honesty policy, “A Culture of Honesty,” and the Student Honor Code. All academic work must meet the standards described in “A Culture of Honesty” found at: www.uga.edu/honesty. Lack of knowledge of the academic honesty policy is not a reasonable explanation for a violation. Questions related to course assignments and the academic honesty policy should be directed to the instructor.