Stanford CS144: Introduction to Networking
课程简介
- 来源:Stanford University
- 先修要求:计算机体系结构基础、C++ 基础
- 编程语言:C++
- 课程难度:🌟🌟🌟🌟
- 课程网站:cs144.github.io
Stanford CS144 是 Stanford 的计算机网络课程,最大的特点是实验驱动。课程要求你实现一个完整的 TCP/IP 协议栈——从网络接口层到传输层,最终能让你的实现通过真实的网络通信测试。
课程资源
- 课程网站:cs144.github.io
- 课程视频:YouTube
- 实验代码:CS144 Labs
实验列表
| 实验 | 内容 | 难度 |
|---|---|---|
| Lab 0: Networking warmup | 网络编程基础 | 🌟 |
| Lab 1: Webget | 实现一个简单的 HTTP 客户端 | 🌟🌟 |
| Lab 2: TCP receiver | 实现 TCP 接收端 | 🌟🌟🌟 |
| Lab 3: TCP sender | 实现 TCP 发送端 | 🌟🌟🌟🌟 |
| Lab 4: TCP connection | 完整的 TCP 连接 | 🌟🌟🌟🌟 |
| Lab 5: Network interface | 网络接口层 | 🌟🌟🌟 |
| Lab 6: Router | 实现一个路由器 | 🌟🌟🌟🌟 |
| Lab 7: Putting it all together | 完整的协议栈 | 🌟🌟🌟🌟🌟 |
自学建议
C++ 基础要扎实。 课程用 C++ 实现,需要熟悉指针、内存管理和面向对象。
按顺序做实验。 每个实验都依赖前一个实验的代码,不能跳着做。
用 Wireshark 验证。 每完成一个实验,用 Wireshark 抓包验证你的实现是否正确。
备注
CS144 是网络课程中实验设计最好的之一。完成所有实验后,你对 TCP/IP 的理解会超过大多数从业者。