CSE 489/589: Modern Networking Concepts (Spring 2012)

Supported by Microsoft Research (Hawaii Cloud-Enabled Mobile Computing Project)


[Schedule]

[Readings]

[Recitations]

[Assignments]

[Project]

[Course Blog]


Class Webpage

http://www.cse.buffalo.edu/faculty/dimitrio/courses/cse4589_s12/index.html

Teaching Staff

Instructor: Dimitrios Koutsonikolas, Assistant Professor
                  Office: 311 Davis Hall
                  Office Hours: M 3:00-4:00 PM, W 2:00-3:00 PM, or by appointment
                  Phone: 716-6454733
                  Email: dimitrio [at] buffalo

Teaching Assistant: Li Sun
                  Office: 302 Davis Hall/300 Davis Hall Student Lounge
                  Office Hours: Th 2:00-4:00 PM
                  Email: lsun3 [at] buffalo

Grader: Xiujiao Gao
                  Office: 302 Davis Hall/300 Davis Hall Student Lounge
                  Email: xiujiaog [at] buffalo

Time and Location

  • Lectures: MWF, 11-11:50 AM, NSC 205
  • Recitations:
    • M, 6:00-6:50 PM, Baldy 125
    • W, 8:00-8:50 AM, Baldy 106

Course Description

The course introduces basic elements of modern computer and telecommunication networks. The focus is on the four upper layers of the popular five-layer TCP/IP model. In each layer, the state-of-the-art hardware and software technologies are introduced. These include, for example, DNS, HTTP, SMTP, and P2P systems in the application layer, TCP/UDP protocols in the transport layer, routing and forwarding, intra-domain and inter-domain routing algorithms in the network layer, random access protocols in the MAC layer, and local area networks (especially Ethernet and WiFi). If time permits, topics in multimedia communications, quality of service, and network security will also be briefly discussed.

The objective of the course is to enable students to
  • gain fundamental knowledge of computer and telecommunications networks
  • appreciate various tradeoffs and choices in current networking technologies
  • learn basic network programming
  • prepare for studying advanced topics (e.g. CSE 620, CSE 630), and career in the field of computer networking.
At the end of this course, each student should be able to:
  • Have a good overall picture of computer networking in general and the Internet in particular.
  • Have a rough idea of how various networking components (hardware/software) work and where they belong in the 5-layer protocol stack.
  • Know how to do network programming in C under Unix.
  • Know how to do basic performance analysis of many popular networking protocols.
  • Know how to use popular networking tools such as WireShark, and iperf.
  • Start reading more advanced/research-oriented networking materials.

Pre-requisites

Students need to have some basic knowledge of operating systems, calculus and probability theory, data structures and algorithms. In addition, they should be proficient in C/C++ programming.

Required Textbook

James F. F. Kurose and Keith W. Ross, "Computer Networking: A Top-Down Approach Featuring the Internet", 5th edition, Addison Wesley, 2009.


Reference Textbooks

  • Computer Networks: A Systems Approach, Larry Peterson and Bruce S. Davie.
  • UNIX Network Programming : Networking APIs : Sockets and XTI : Volume 1, Second Edition, W. Richard Stevens, Prentice Hall, Oct 1997, ISBN: 013490012X. Highly recommended!
  • Advanced Programming in the UNIX Evironment, W. Richard Stevens, Addison-Wesley, 1992, ISBN 0-201-56317-7.
  • Computer Networks, Andrew Tanenbaum, Prentice Hall PTR; 4 edition (August 9, 2002), 912pp.
  • Internetworking with TCP/IP, Volume 1: Principles, Protocols, and Architectures, Fourth Edition 4TH, Douglas E. Comer, Prentice Hall, Feb 2000, ISBN: 0130183806
  • The TCP/IP Illustrated, Volume 1: The Protocols, W. Richard Stevens and Gary R. Wright, Addison Wesley Longman, Dec 1993, ISBN: 0201633469
  • The TCP/IP Illustrated, Volume 2: The Implementation, W. Richard Stevens and Gary R. Wright, Addison Wesley Longman, Jan 1995, ISBN: 020163354X
  • Queueing Systems: Theory, Vol. 1, Leonard Kleinrock, Wiley, John & Sons, January 1975
  • Queueing Systems Volume 2: Computer Applications, Leonard Kleinrock (Editor), Wiley, John & Sons, April 1976

Grading

(Tentative and subject to change)

CSE 489
  • Midterm: 20%
  • Final: 20%
  • Homeworks/WireShark Labs: 20%
  • 2 Programming Assignments: 30%
  • 3rd Programming Assignment: 10% Bonus
  • Class Participation: 10%
CSE 589 - No project
  • Midterm: 20%
  • Final: 20%
  • Homeworks/WireShark Labs: 20%
  • 3 Programming Assignments: 30%
  • Class Participation: 10%
CSE 589 - Project
  • Midterm: 20%
  • Final: 20%
  • Homeworks/WireShark Labs: 20%
  • 1 Programming Assignment: 10%
  • Project: 30% (10% bonus)
  • Class Participation: 10%

Course Policies

  • Late policy: All assignments are due on the day and time posted.
    • Homeworks/WireShark Lab reports may be submitted up to 1 day late, and late submissions will be scored out of 90 points instead of 100. No homework/report will be accepted more than 1 day after the assigned due date.
    • Programming assignments: Students have 4 late days to spread across the programming assignments as they see fit. After the late time is used up, 10 points will be deducted from the assignment score per late day. No programming assignment will be accepted more than 7 days after the assigned due date.
    • Workload is heavy, so start early! Excuses that you did not have enough time for an assignment will not be considered. Extraordinary circumstances will be considered at the discretion of the instructor, contact him if you think these apply to you.
  • Exams: If you miss an exam because of sickness or similar reasons, visit a physician and obtain a note detailing the period during which you were medically incapable of taking the exam. Notify your instructor immediately via e-mail or telephone (voice mail) if you are going to miss an exam, before the exam takes place unless medically impossible. See your instructor as soon as you return to class. If you miss an examination without a valid excuse, you will receive a zero grade for that examination. No make-up examination will be available without a valid excuse.
  • No extra work in the next semester will be given to improve your grade.
  • Regrading policy:
    • Homeworks/WireShark Labs: Graded homeworks/reports will be returned during lecture. If you don't pick them up during that time, it is your responsibility to pick them up from the instructor during office hours as soon as possible. Questions about homework/report grades should be sent by email to our grader Xiujiao within one week after the homework/report is returned. If you are not satisfied with the grader's response, you should contact me no more than 3 days after the grader's response.
    • Programming assignments: Programming assignments will not be returned. Grades for the programming assignments will be posted on UBLearns. If you have questions about your grade, you should contact our TA Li by email or during his office hours within one week after the grade is posted on UBLearns. If you are not satisfied with the TA's response, you should contact me no more than 3 days after the TA's response.
    • Exams: Exams will not be returned. Exam grades will be posted on UBLearns. If you have questions about your grade, you should contact me by email or during my office hours within one week after the grade is posted on UBLearns.
    • No regrade requests will be considered after the deadlines mentioned above.

Academic Honesty

  • No tolerance on cheating!
  • Group study/discussion is encouraged, but the submission must be your own work.
  • For the homeworks/WireShark labs: Homeworks/lab reports must be written up individually. Collaboration and/or use of reference materials in the library or online is allowed, provided that the homework/report explicitly states who collaboration was done with or cites the references used, and that the homework is written up completely independently (i.e. no sharing/copying of text, solutions, etc.). Note that copying the solutions from online sources is still considered cheating even if you cite those sources.
  • For the programming assignments: Discussions of ideas are welcome, but exchanges of source codes are not allowed. Use of code found online is allowed provided that the student explicitly cites the references used.
  • Students who do share their work with others are as responsible for academic dishonesty as the student receiving the material. Students are not to show work to other students, in the class or not. Students are responsible for the security of their work and should ensure that printed copies are not left in accessible places, and that file/directory permissions are set to be unreadable to others.

ANNOUNCEMENTS

  • 04/23/2012: HW5 posted. Due on 04/30/2012 in class.
  • 04/23/2012: No recitations this week! Li will hold office hours 2-4pm on Thursday.
  • 04/23/2012: Office hours 2-3 pm instead of 3-4pm today.
  • 04/16/2012: No recitations this week! Instead, Li will hold extra office hours 2-5pm this Thursday.
  • 04/11/2012: WS LAB5 posted. Due on 04/20/2012 in class.
  • 04/09/2012: Please download a new copy of PA3. We have made a few changes!
  • 04/09/2012: HW4 posted. Due on 04/23/2012 in class.
  • 04/03/2012: PA3 posted. Due on 04/27/2012 at 23:59:59.
  • 03/23/2012: The deadline for PA2 has been extended to Friday, 03/30/2012, 23:59.
  • 03/10/2012: There was a missing figure in HW3. Please download a new copy of the homework.
  • 03/09/2012: HW3 posted. Due on 03/21/2012 in class.
  • 03/07/2012: WireShark LAB4 posted. Due on 03/19 in class.
  • 03/05/2012: Grading guidelines for PA2 have been posted. See the "Assignments" page.
  • 02/27/2012: Wednesday office hours will be 2-3pm starting next week.
  • 02/27/2012: PA2 posted. Due on 03/23/2012 at 23:59:59, optional for CSE 489.
  • 02/24/2012: WireShark LAB3 posted. Due on 03/07 in class.
  • 02/20/2012: Office hours today are 1:30-2:30pm instead of the regular 3-4pm.
  • 02/16/2012: IMPORTANT! There are some problems with euston and highgate. Please see the course blog for details.
  • 02/14/2012: HW2 posted. Due on 03/05/2012 in class.
  • 02/14/2012: See the blog post about late day policies for PAs, HWs, and WS Labs.
  • 02/10/2012: WireShark LAB2 posted. Due on 02/17 in class.
  • 02/08/2012: Office hours today are 1:30-2:30pm instead of the regular 3-4pm.
  • 02/06/2012: IMPORTANT!!! See the course blog for information about the new machines which you have to use for testing PA1.
  • 02/06/2012: See the course blog for clarifications on the WireShark lab reports.
  • 02/01/2012: WireShark LAB1 posted. Due on 02/8 in class.
  • 01/31/2012: We have changed the file size requirements in part 4 of PA1. Please download a new copy of PA1.
  • 01/31/2012: The deadline for the Hawaii project team formation is this Friday.
  • 01/29/2012: Solution for WireShark LAB0 has been posted.
  • 01/28/2012: Grading guidelines for PA 1 have been posted. See the "Assignments" page.
  • 01/25/2012: Wednesday recitations will be in Baldy 106, 8:00-8:50 am.
  • 01/25/2012: The recitation slides have been posted.
  • 01/24/2012: The location for tomorrow's recitation has changed. The new location is 338A Davis hall. Time remains the same 8-8:50 am.
  • 01/23/2012: PA1 posted. Due on 02/17/2012 at 23:59:59 for CSE 589, 02/24/2012 at 23:59:59 for CSE 489.
  • 01/23/2012: HW1 posted. Due on 02/13/2012 in class.
  • 01/20/2012: Monday recitations will be in Baldy 125, 6:00-6:50pm.
  • 01/20/2012: WireShark LAB0 posted. Due on 01/27. Not Graded!
  • 01/20/2012: My PhD student Ram will give an overview of the MSR Hawaii Project in Friday's class for CSE 589 students interested in the project option. CSE 489 students do not have to attend (but they are welcome if they are interested).
  • 01/19/2012: Please read the regrade policy in "Course Policies".
  • 01/19/2012: Li will not hold office hours today.
  • 01/15/2012: Course material is password-protected. I will give you the password in class on Friday. CSE489 students please email me or come to my office.
  • 01/15/2012: No recitations in the week 01/16-01/20. Recitations will begin on Monday, 01/23.
  • 01/12/2012: Course webpage is up.

Dimitrios Koutsonikolas