Modern Network Concepts

Computer Science & Engineering Department, SUNY at Buffalo


Course Description

This course introduces basic elements of modern computer and telecommunication networks. A hybrid five-layer reference model resembling the popular TCP/IP model will be discussed. In each layer, the state-of-the-art hardware and software technologies are introduced. These include, for example, DNS, HTTP, SMTP, and P2P systems at the application layer, TCP/UDP protocols at the transport layer, routing and forwarding, intra- domain and inter-domain routing algorithms at the network layer, random access protocols at the MAC layer, and local area networks (Ethernet and WiFi).

The objective of the course is to enable students to:

  • Gain fundamental knowledge of computer and telecommunications networks.

  • Understand various tradeoffs and choices in current networking technologies.

  • Learn to design and analyze protocols via programming, modeling and simulations.

  • The course is suitable for those who have strong genuine interest in computer and telecommunication networks (see Pre-requisites/Co-requisites).


    Student Learning Outcomes

    At the end of this course, students are able to understand the fundamental principles of computer networking, and each student should be able to:

  • Know the basic architecture of computer networks in general and the Internet in particular.

  • Know the software functions and/or hardware components at each of the 5-layer protocol stack.

  • Know the prevailing communications and LAN/WAN technologies.

  • Know how to do network programming in C/C++ under UNIX.

  • Know how to use popular networking tools, such as WireShark .

  • Start reading more advanced/research-oriented networking materials.


  • Prerequisites

    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.


    Grading

  • Four Homework Assignments
    • Only two homework assignments with the highest scores will be counted in the final grade.
    • Counts 6% towards the final grade.
    • Done individually or in team of up to 2 students.

  • Five Wireshark Labs
    • Only three Wireshark labs with the highest scores will be counted in the final grade.
    • Counts 9% towards the final grade.
    • Done individually or in team of up to 2 students.

  • Two Course Projects (each for 20%)
    • Done individually or in team of up to 2 students.

  • Midterm Exam (20%)

  • Final (25%)

  • For the homework assignments and Wireshark labs: Homework and Wireshark labs must be done individually or in team of up to 2 students. One submission per team, one grade per team. Collaboration across teams is NOT allowed! Use of reference materials in the library or online is allowed, provided that the references used are explicitly cited. Note that copying the solutions from online sources is still considered cheating even if you cite the sources.

  • Course Policy

  • Exams: Both exams are closed-book closed-note 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.
  • Handwritten Work: Written assignments (and exams!) should be neat and legible. Instructor and TA reserve the right to assign a zero grade to illegible handwritten homework/exams.

  • Academic Integrity

  • Zero tolerance on cheating!
  • Group study/discussion is encouraged, but the submission must be your own work.
  • MOSS software from Stanford will be used to detect plagiarism in homeworks and project assignments.
  • For the homeworks assignments: Homework must be written up individually or in team of up to 2 students. One submission per team, one grade per team. Collaboration across teams is NOT allowed! Use of reference materials in the library or online is allowed, provided that the homework explicitly cites the references used. Note that copying the solutions from online sources is still considered cheating even if you cite the sources.
  • For the programming assignments (course projects): Projects can be done either individually or in team of up to 2 students. 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. Use of a significant portion of codes from other sources without citing the sources will be considered cheating. Note that copying the whole solution (code) from online sources will result in zero for the project, even if you cite the sources. Copying code from past years' assignments is considered cheating.
  • Students who do share their work with others are as responsible for academic dishonesty as the student receiving the material. Students are not allowed 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.

  • Text Book

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