Computer Networks
- Level
- Undergraduate
- Status
- Under development
Note: this course is still being designed and calibrated; the page content is for reference and does not represent the final teaching version.
Syllabus
Course Overview
Computer Networks starts from the end-to-end principle and covers links, IP, routing, transport, congestion control, DNS, HTTP, TLS, and network measurement. The course emphasizes observability, troubleshooting, and security boundaries in protocol behavior.
This is the networking foundation for protocol analysis, applied cryptography, software security, and system security.
Prerequisites
- Systems programming fundamentals.
- Understanding of processes, files, and socket basics.
- Ability to read protocol documents and packet traces.
Learning Outcomes
- Explain Internet layering and end-to-end design principles.
- Analyze IP, TCP, UDP, DNS, HTTP, and TLS behavior.
- Use packet traces, measurements, and logs to troubleshoot networks.
- Implement a small network protocol or service.
- Identify security risks in protocols and deployments.
Course Format
- Two meetings per week: one for core concepts and one for labs, paper discussion, or project review.
- The course proceeds over 16 weeks, each with a checkable assignment, lab, or project milestone.
- Reproducibility is required: code, configuration, data, lab logs, and reports must be reviewable by staff or peers.
Weekly Plan
Layering, end-to-end principle, and measurement tools
Complete traceroute, ping, and packet-capture labs.
Layering, end-to-end principle, and measurement tools: lab and review
Complete traceroute, ping, and packet-capture labs. Complete the paired lab, record issues, and explain design tradeoffs in class review.
Links, switching, and LANs
Analyze Ethernet, ARP, and LAN failures.
Links, switching, and LANs: lab and review
Analyze Ethernet, ARP, and LAN failures. Complete the paired lab, record issues, and explain design tradeoffs in class review.
IP, routing, and addressing
Configure a small routing topology and diagnose paths.
IP, routing, and addressing: lab and review
Configure a small routing topology and diagnose paths. Complete the paired lab, record issues, and explain design tradeoffs in class review.
UDP, TCP, and congestion control
Measure latency, throughput, and retransmission behavior.
UDP, TCP, and congestion control: lab and review
Measure latency, throughput, and retransmission behavior. Complete the paired lab, record issues, and explain design tradeoffs in class review.
DNS, CDNs, and naming
Trace resolution and caching behavior.
DNS, CDNs, and naming: lab and review
Trace resolution and caching behavior. Complete the paired lab, record issues, and explain design tradeoffs in class review.
HTTP, QUIC, and application protocols
Implement a small proxy or protocol client.
HTTP, QUIC, and application protocols: lab and review
Implement a small proxy or protocol client. Complete the paired lab, record issues, and explain design tradeoffs in class review.
TLS, network security, and privacy
Analyze handshakes, certificates, and common misconfigurations.
TLS, network security, and privacy: lab and review
Analyze handshakes, certificates, and common misconfigurations. Complete the paired lab, record issues, and explain design tradeoffs in class review.
Network measurement and failure review
Submit a network-measurement project and failure report.
Network measurement and failure review: lab and review
Submit a network-measurement project and failure report. Complete the paired lab, record issues, and explain design tradeoffs in class review.
Assessment
Concept questions, reading responses, design tasks, and small programming or lab exercises.
Protocol labs, packet analysis, network tools, and measurement reports.
Participation in discussions, demos, code or paper reviews, and peer feedback.
Submit reproducible artifacts, a technical report, and a demo explaining methods, results, limitations, and future work.
Course Project
Students complete a network measurement, protocol implementation, or troubleshooting project with packet traces, code, data, and analysis report.
Policies
- AI tools are allowed, but generated code, lab notes, and design suggestions must be reviewed by the student and disclosed in the report.
- Students may not submit code, proofs, configuration, or experimental results they cannot explain; each member must defend their own design, tests, and tradeoffs.
- Late work affects iteration grades, but the course values reproducible, auditable, and maintainable results over last-minute accumulation.
Reference Courses
International
- CMU15-441/641: Networking and the Internet
- CornellCS 4450/5456: Introduction to Computer Networks
- ETH ZurichComputer Networks
- Georgia TechCS 6250: Computer Networks
- MIT6.1800: Computer Networks
- PrincetonCOS 461: Computer Networks
- StanfordCS 144: Introduction to Computer Networking
- UC BerkeleyCS 168: Introduction to the Internet: Architecture and Protocols
- University of WashingtonCSE 461: Introduction to Computer Communication Networks
China 985 Universities
- 上海交通大学CS339: 计算机网络
- 中国科学技术大学计算机网络
- 南京大学计算机网络
- 哈尔滨工业大学计算机网络
- 武汉大学计算机网络
- 浙江大学计算机网络
- 清华大学计算机网络(Router Lab)