Time and location
- MW, 3:00 -- 4:15 PM EST
- Horizon Hall 1014
|
|
Instructor
|
|
Office Hours
- MW, 4:15 -- 5:00 PM EST
- Horizon Hall 1014
|
Course Description
This course introduces concepts and design principles of modern computer and telecommunication networks. It uses the Internet TCP/IP protocol suite to discuss how today’s computer networks operate and how they have evolved over many years to meet the requirements of today’s network applications. The focus will be on both fundamental networking and communication techniques and protocols used in today’s complex Internet architecture.
Topics include DNS and HTTP protocols at the application layer, TCP and UDP at the transport layer, routing algorithms and forwarding with BGP and OSPF at the network layer, and multiple access technologies along with Ethernet and WiFi LANs. Concepts of software-defined networking, network security, and wireless networking will also be introduced.
Prerequisites
-
(Undergraduate level CS 310 Minimum Grade of C or Undergraduate level CS 310 Minimum Grade of XS) and (Undergraduate level CS 367 Minimum Grade of C or Undergraduate level CS 367 Minimum Grade of XS) and (Undergraduate level STAT 344 Minimum Grade of C or Undergraduate level STAT 344 Minimum Grade of XS)
-
Ability to program in C or Python
Objectives
-
Gain a basic understanding of how computer and communication networks operate
-
Understand various tradeoffs and performance metrics that drive the design of today’s networks, especially the Internet
-
Learn the basics of network programming and relevant tools and protocols
Course outcomes
Upon completion of this course, students should be able to:
-
Understand the architectural principles of computer networking and the overall structure of the Internet
-
Show a clear understanding of the layered Internet protocol framework, its design principles, and functionality
-
Explain various network performance metrics (throughput, latency, loss, etc.) and their impact on applications
-
Describe the essential principles of reliable data delivery, flow control, and congestion control, and their implementation at the transport layer
-
Understand distributed routing protocols and data and control plane operations of the network layer in the Internet
-
Understand wired and wireless data link layer protocols for communication over a shared medium
-
Demonstrate a basic understanding of network security, vulnerabilities at various layers, and associated protocols
-
Implement network protocols using network stack programming libraries and use tools such as Wireshark to analyze real-world networks
Books
Required Textbook
-
Computer Networking: A Top-Down Approach (8th Edition), James Kurose and Keith Ross, Pearson, 2021.
Other Textbooks for Reference
-
Computer Networks: A Systems Approach, Larry Peterson and Bruce S. Davie.
-
Internetworking With TCP/IP Volume 1: Principles, Protocols, and Architecture (6th Edition), Douglas E. Comer, Pearson, 2013.
-
Unix Network Programming, Volume 1: The Sockets Networking API (3rd Edition), W. Richard Stevens, Bill Fenner, and Andrew M. Rudoff, Addison Wesley, 2003
Graduate Teaching Assistant
Topics
-
Introduction to computer networks and Internet protocol suite
-
Internet architecture: edge, core, and layered service model
-
Application layer principles and protocols (DNS, HTTP, SNMP, etc.)
-
Transport layer services, TCP, reliable delivery, congestion control, and UDP
-
Network layer data plane principles, forwarding and routing, addressing, IPv6, and DHCP
-
Network layer control plane overview, routing algorithms, SDN control plane, OSPF, and BGP
-
Link layer services, error detection and correction, and multiple access protocols
-
Introduction to network security, vulnerabilities, and protocols
-
Introduction to wireless and mobile networks with 802.11 wireless LANs
Grading
Your grade will be calculated using the following percentages:
-
Homeworks and labs (40%) -- To be done individually
-
Programming assignments (20%) -- Can be done with a partner (team of two students)
-
Midterm exam (15%)
-
Final exam (15%)
-
Participation (10%) -- In-class activities and quizzes
-
A total grade of less than 50 or a final exam score less than 40 will result in an F
Policies
Late Submissions:
-
Late submissions of homework, labs, and programming assignments will be penalized at 15% each day, and will not be accepted after 3 days of the due date.
Exams:
-
The midterm and final exams will be closed book.
-
The final exam will be cumulative, which means that it will include all topics discussed during the semester.
-
No early exams will be given. If you must miss an exam, you should provide official/verifiable proof of why you are missing it before the exam. Once it is validated, the instructor can arrange a makeup exam.
Honor Code:
-
Zero tolerance for cheating!
-
All students must adhere to the GMU Honor Code and the Computer Science Department's Honor Code Policies.
-
The students are supposed to work individually on the homework, assignments, and projects unless told otherwise.
-
We reserve the right to use MOSS to detect plagiarism. Violation of the Honor Code will result in an F.
-
Use of public code repositories such as GitHub is not allowed for course projects during the semester or after the semester is over (to avoid future plagiarism).
Accommodations for Disabilities:
-
If you have a documented learning disability or other condition that may affect academic performance, you should: 1) make sure this documentation is on file with the Office for Disability Services (SUB I, Rm. 4205; 993-2474; Disability Services – An Office of University Life to determine the accommodations you need; and 2) talk with me within the first week of the semester to discuss any accommodation needs.