计算机网络

这套讲义一共十讲,自顶向下:从你每天在用的应用层,一路讲到网线里的比特,最后一讲把全程串起来。

先交代一下讲义的视角,免得读起来觉得写法怪。我学这门课最大的转折,是从背协议头字段变成动手抓包。同一个三次握手,背「SYN、SYN+ACK、ACK」和亲眼在 Wireshark 里看着这三个包排成一列,是两种深度。所以后面讲到协议时,我会尽量落到「在真实工具里它长什么样」:Wireshark、tcpdump、浏览器 DevTools、curl -v,文里给出的命令输出都是真跑出来的(在我自己的机器和几个公共网站上),你装好工具照着敲一遍,得到的东西八九不离十。

课程顺序,也是推荐阅读顺序:

时间紧的话,只读三篇:第 4、9、10 章。第 4 章回答「网络凭什么可靠」,第 9 章回答「我写的程序怎么用上网络」,第 10 章把前面所有碎片拼成一张图。