Instructor: Dimitrios Koutsonikolas, Assistant Professor
Office: 311 Davis Hall
M 1:30-2:30 PM, W 2:30-3:30 PM, or by appointment
Email: dimitrio [at] buffalo
Office: 302 Davis Hall/300 Davis Hall Student Lounge
Office Hours: Tuesday/Thursday 5:00-6:00 PM
Email: nikhillo [at] buffalo.edu
Office: 302 Davis Hall/300 Davis Hall Student Lounge
Office Hours: Monday 4:30-5:30 PM
Email: ramanuja [at] buffalo
Time and Location
- Lectures: TTh, 2:00-3:20 PM, Hoch 114
- M, 6:00-6:50 PM, Bell 337
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
At the end of this course, each student should be able 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, CSE 646), and career in the field of
- 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
- Know how to do network programming in C/C++ under Unix.
- Know how to do basic performance analysis of popular
- Know how to use popular networking tools such as WireShark, and iperf.
- Start reading more advanced/research-oriented networking
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.
- 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.
- 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
(Tentative and subject to change)
- Midterm: 20%
- Final: 20%
- Homeworks/WireShark Labs: 20%
- 3 Programming Assignments: 35%
- Class Participation: 10%
- Late policy: All assignments are due on the day and time posted, at the beginning of class.
- 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. Late day starts at the beginning of class when the homework/lab is due and ends 24 hours later.
- 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 exam without a valid excuse, you will receive a zero grade
for that exam. No make-up exam 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 and grades will be posted on UBLearns. 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 the TAs 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 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 the TAs by email or during their 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.
- 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 the sources.
- For the programming assignments: Discussions of ideas are welcome, but exchanges of source codes are not allowed. Use of
segments of code found online is allowed provided that the student explicitly
cites the references used. Note that copying the whole solution from online sources
and/or copying code from past year assignments is still considered cheating even if you cite the sources.
- 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 class or outside the class. 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.
- HW5 posted. Due on 05/08 at the beginning of class.
- 04/15: HW4 posted. Due on 04/28/2014 at the beginning of recitation (BELL 337).
Late submission due: 04/29 at the end of Nikhil's office hours. Submissions in my office will only be accepted until 04/28, 4:00 pm.
- 04/15: Wireshark LAB5 posted. Due on 04/24.
- 04/07: PA3 posted. Due on 05/02.
- 04/03: Wireshark LAB4 posted. Due on 04/10 at the beginning of class.
- 04/01: HW3 posted. Due on 04/17 at the beginning of class.
- 03/27: Extra office hours tomorrow, Friday, 03/28, 10:30-12:00 and 3:30-4:30.
- 03/06: Wireshark LAB3 posted. Due on 04/03 at the beginning of class.
- 03/03: PA2 posted. Due on 04/04.
- 02/25: HW2 posted. Due on 03/11 at the beginning of class. No late day for
this homework. Solutions will be posted immediately after class.
- 02/20: WireShark LAB2 posted. Due on 03/04 at the beginning of class.
- 02/11: WireShark LAB1 posted. Due on 02/18 at the beginning of class.
- 02/04: Zilong is no longer a TA for CSE 4/589. He will not hold office hours this Friday.
- 02/04: HW1 posted. Due on 02/25 at the beginning of class.
- 01/30: PA1 posted. Due on 02/28.
- 01/30: WireShark LAB0 posted. Due on 02/06. Not Graded!
- 01/28: Nikhil's new office hours: Tuesday, 3:30-4:30 PM
- 01/22: Course webpage is up.