mirror of
https://github.com/PKUFlyingPig/cs-self-learning.git
synced 2026-06-25 19:07:04 +08:00
update format for proper rendering
This commit is contained in:
parent
be624764a3
commit
3efbfbac2a
2 changed files with 4 additions and 2 deletions
|
|
@ -39,7 +39,7 @@ There's no magic in the computer world. Go explore it!
|
|||
|
||||
## Resources
|
||||
|
||||
A minor caveat: As of January 2025, the course's [GitHub Repository](https://github.com/CS144/minnow) gets cleared completely every academic year. If you haven't forked a copy beforehand, you'll have to follow the current version.
|
||||
**A minor caveat**: As of January 2025, the course's [GitHub Repository](https://github.com/CS144/minnow) gets cleared completely every academic year. If you haven't forked a copy beforehand, you'll have to follow the current version.
|
||||
|
||||
The course website also appears to lack official archives—each year's iteration is entirely fresh. Through the Wayback Machine, I've found archived versions of the course site up to 2021. The link for the Winter 2024 version is preserved here:
|
||||
<https://web.archive.org/web/20241209004804/https://cs144.github.io/>.
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
这门课 (开源版本视频) 的主讲人之一是网络领域的巨擘 [Nick McKeown](http://yuba.stanford.edu/~nickm/index.html) 教授。这位拥有自己创业公司的学界业界双巨佬会在他慕课每一章节的最后采访一位业界的高管或者学界的高人,非常开阔眼界。
|
||||
|
||||
在这门课的 Project 中,你将用 C++ 循序渐进地搭建出整个 TCP/IP 协议栈。
|
||||
|
||||
- `checkpoint 0` 是让你熟悉一下开发环境的 warmup lab,简单玩一玩一些网络相关的命令 (e.g., `telnet`, `netcat`),借助 Linux Kernel 提供的 `tcp_socket` 抽象写一个基础的网络爬虫 `webget`,最后实现一个 (In-Memory) Reliable Byte Stream。
|
||||
- 接下来你会在 `checkpoint 1-3` 首先实现一个简易但保留了核心语义且 (almost fully) standards-compliant 的 TCP Protocol,可以与其他 (工业级的) TCP 实现相互通信。
|
||||
- 在 `checkpoint 4` 中你会通过框架代码的封装 (`TCPMinnowSocket`),将 `checkpoint 0` 中 `webget` 默认使用 Linux Kernel 的 `tcp_socket` 替换为你自己实现的 TCP Protocol;同时会实际分析真实网络 (i.e., RTT >= ~100ms) 的流量模式,需要自己用 python 等语言进行可视化数据分析 - 我很推荐大家认真的去进行数据分析,真的很有意思。
|
||||
|
|
@ -23,8 +24,9 @@
|
|||
如果你只是 "浅尝辄止" 的写完 8 个 checkpoint (其中有两个 lab 你甚至不需要亲自写代码!😂😅),那么这门课大部分的精华你就错过了。
|
||||
|
||||
我认为这门课最精华的部分就在于提供给我们的框架代码,如果不自己深入一行行的阅读每个文件,你会发现很多细节的问题一直笼罩在迷雾里,就像魔法一样!
|
||||
|
||||
- 比如 `checkpoint 4` 中我们到底是如何将自己实现的 `TCPSender` 和 `TCPReceiver` 拼装使用成一个 (bi-directionally) reliable byte stream 的?
|
||||
- `TCPMinnowSocket` 到底是如何替换内核里默认的 TCP 实现的?
|
||||
- `TCPMinnowSocket` 到底是如何替换内核里默认的 TCP 实现的?
|
||||
- 我们常说的三次握手去哪里了?
|
||||
- 多线程的场景怎么办?
|
||||
- `checkpoint 7` 提供给你的 `endtoend.cc` 你真的理解了吗?
|
||||
|
|
|
|||
Loading…
Reference in a new issue