Show The Graduate Center Menu

Computer Networks


The last two decades or so have witnessed the astonishing growth and evolution speed of computer

networks and the tremendous impact they have made to our society and individuals in many aspects.

Knowing how computer networks were established and how data is transmitted inside computer

networks would be a fundamental expertise for graduate students majored in computer science.


This course is designed for graduate students in Computer Science programs who have knowledge in

undergraduate level Computer Networks, Algorithms and some familiarity with probability theory. This

course covers an in‐depth review of fundamental principles of network architecture and protocols,

introductions on advanced computer networks, and advanced principles of the design of computer

networks. Specifically, we will review fundamental computer network architecture, principles of Circuit

Switching and Packet Switching, the protocol stack, and essential design principles and network

protocols of each network layer. Advanced topics in computer networks, such as Wireless and Mobiles

networks and Network Security will be introduced. In addition, we will explore in‐depth principles for

common protocol design techniques.

Topic List

Topics may include but are not limited to:

 Network Layers

 Packet Switching vs. Circuit Switching

 DNS (Domain Name System)

 P2P (Peer‐to‐peer) Communication

 UDP (User Datagram Protocol) vs. TCP (Transport Control Protocol)

 Network Socket Programming

 Principles of Reliable Data Transfer

     o General theory and model

     o TCP reliable data transfer

 Principles of Congestion Control

     o General theory and model

     o TCP congestion control

 IP (Internet Protocol)

 Routing Algorithms

     o Link state

     o Distance vector

     o Hierarchical routing

 Routing in the Internet

o RIP (Routing Information Protocol)

o OSPF (Open Shortest Path First)

o BGP (Border Gateway Protocol)

 Broadcast and Multicast Routing

 Error Detection and Correction

 Multiple Access Protocols

 LANs (Local Area Networks)

     o MAC (Media Access Control) address and ARP (Address Resolution Protocol)

     o Ethernet

     o Switches

     o VLANs (Virtual LANs)

 MPLS (Multiprotocol Label Switching)

 Wireless Networks (basics)

 Network Security (basics)

Learning Goals

Upon completion of this course, the students should be familiar with all existing fundamental data

communication protocols across different network layers, such as TCP, IP, Ethernet and 802.11, and

ARP, understand their design principles, and be capable of making reasonable modifications on the

protocols. Students should also be able to write programs that facilitate research and application

purposes. For example, a student should be able to write scripts that collect necessary components of

network traces for network performance analysis and management purposes. Students should also be

able to design and evaluation network protocols on theoretical basis. In addition, students need to

conduct an in‐depth peer review on a top‐rated research paper in computer networks.


Written exam, assignments, and course projects will be assigned to make sure students are capable of

understanding and applying network theory and knowledge to resolve practical problems, and

conducting network socket programming in Python. 50%

Final presentation of an in‐depth analysis and review of a top‐rated research paper (mostly cited paper,

survey paper does not count) in computer networks published in a top conference or journal within the

last five years. The presentation should focus on the ideas and techniques to implement the ideas. The

topic is flexible, which can be any important research topic in computer networks such as network

reliability, congestion control, routing algorithms, pervasive computing, and network security. 45%

Attendance and Class Participation. 5%.