CS144 Check7 — Put it all together
Check7 是 put it all together,将之前完成的 NetworkInterface 和 Router 连接起来。又是不用写代码的一个 Check,只需要运行 endtoend 完成文件传输即可。

但是又由于 cs144.keithw.org 依旧用不了,所以我们需要自己搭建中续服务器(或者也可以修改 endtoend 的代码,找两台能直链的设备直接直连就好了,不要中续)。
因此实现了一个 bouncer 用来自己搭建,它只监听两个端口(似乎 cs144.keithw.org 监听了所有端口…),接受 C/S 的数据包,转发到 S/C 上。
bouncer 实现:https://github.com/z0z0r4/minnow-winter-2025/commit/9a326072ea988ced37740935a2273bff0bd9100b
剩下的就是实验记录,生成文件并传输,最后校验 sha256sum。
我当然偷懒直接在内网传了…
先部署 bouncer:
1 | ❯ ./build/apps/bouncer 3000 |
然后启动 endtoend 的 server:
1 | ❯ </dev/null ./build/apps/endtoend server 127.0.0.1 3000 > /tmp/big_recv.txt |
最后启动 endtoend 的 client:
1 | ❯ ./build/apps/endtoend client 192.168.1.222 3001 < /tmp/big.txt |
校验结果:
1 | ❯ sha256sum /tmp/big_recv.txt |
这个 Check7 就算完成了…吗?有点没意思,可以再看看 2025 Fall 的 Check7,里面的内容不同,是利用提供的 tcp_eth_udp 和 fun_router,Make a Tiny Internet on Your Own VM -> Make an Internet of three people -> Make a bigger Internet,或者做点更有意思的应用吧~
Even more, 让我们来加入 DN42,参与模拟一个真实的互联网(DN42 实验网络介绍及注册教程),或者,让我们 从0开始注册一个ASN并广播IP,总之可以不止于课程实验。
说些什么吧!