系统与基础设施destroyallsoftware.com编辑精选
写给会编程的人看的网络协议指南
Network protocols for anyone who knows a programming language
2019 — 2024,它一次次回到首页
黑点是上首页(≥ 50 分)的那次投稿,空心点是没冲上去的投稿,点越大分数越高。
导读
这是 Destroy All Software 的网络协议免费讲义,面向已会编程但不熟悉网络底层原理的开发者,从信号编码、链路层讲到 TCP 等传输层机制,用简洁清晰的方式解释各层协议为何如此设计。
为什么经久不衰:它不堆砌报文头格式等教科书细节,而是讲清协议设计背后的动机,这种视角历久弥新,对任何开发者理解网络都很有帮助。
HN 评论精选
传统网络教材过于纠缠报文格式细节,推荐免费的 HPBN 这本书
我在大学上过网络课,但几乎没学到什么。教材(如 Kurose 和 Ross)深挖每一层每个包的头部格式这类细节,这些无用的细节根本不该出现在教科书里,让我一度讨厌这门课。后来我通过《High Performance Browser Networking》才真正学懂了网络,这是我推荐给所有软件开发者的唯一一本网络书,可在这里免费阅读:https://hpbn.co
nindalf查看英文原文
I took a networking course in college and I didn't learn much, if anything. We used textbooks like Kurose and Ross that went deep into details like the header format of each packet of each layer. Ultimately, these were useless details that had no place in a textbook. It made me hate the subject. I eventually learned the subject properly through High Performance Browser Networking. This is the one book I would recommend to any software developer. Available for free here - https://hpbn.co
称赞文章写作简洁清晰,并推荐同站的其他讲义
在如今技术写作普遍糟糕、我注意力日益涣散的情况下,能读到这样一篇对高技术主题简洁而精彩的讲解,实在令人耳目一新!我一定要去看看他们 compendium 里的其他文章。
canada_dry查看英文原文
With the current state of generally terrible technical writing and my ever decreasing attention span it's bloody refreshing to read a concise and well written explanation of a highly technical subject! I'll definitely have to check out the rest of their 'compendium': https://www.destroyallsoftware.com/compendium
补充 8b/10b 编码更完整的技术动机:时钟恢复
关于 8b/10b 编码:文章给出的动机是准确的,但不是全部(模拟世界的事从来如此)。如今 8b/10b(或更现实的 128b/130b)的关键作用是让信号足够频繁地跳变,以实现时钟恢复。文中'计算机数不过 1'让我想起 Bob Widlar 的名言:'每个白痴都能数到一'。
twtw查看英文原文
One interesting note re: 8b/10b encoding. The motivation in the article is accurate, but not the whole story (never is, in the analog world). Nowadays, 8b/10b (or more realistically 128b/130b) is critical to enable clock recovery by making sure the signal transitions frequently enough. > Computers can't count past 1 Reminds me of this excellent quote: "Every idiot can count to one" - Bob Widlar
补充 TCP 慢启动与延迟 ACK 算法相互纠缠的历史
传输控制部分提到的慢启动有一段有趣的历史。当年互联网上多数数据包是 Telnet 之类的单字符按键,有人发明了延迟发送 ACK 以便搭在下一个数据包上的算法。这个算法与 TCP 慢启动和自适应拥塞控制相互作用了很多年,我记得直到 2000 年代初才彻底解决。
pests查看英文原文
The slow start mentioned in the transmission control section has an interesting history. Back when most internet packets were single characters representing keystrokes over something like Telnet, an algorithm was invented to wait a moment before sending ACKs in order to possobily piggy back out on the next data packet. This ended up interplaying with TCP slow start and adaptaive congestion control for years and was only resolved in the early 2000s if if I recall correctly. The inventor of that algorithm posts here frequently if he wants to comment on my post about this again. :)
历次讨论
同类还值得读
TTY 揭秘(2008)
The TTY demystified (2008)
经典文章深入剖析了 Unix/Linux 中 TTY 子系统的工作原理,包括线路规程、终端驱动、信号与控制字符等机制。
系统与基础设施上首页 11 次 · 2009–2025linusakesson.net编辑精选为什么 GNU grep 这么快
Why GNU grep is Fast
FreeBSD 邮件列表上一篇广为流传的帖子,解释 GNU grep 为什么快:核心在于 Boyer-Moore 字符串搜索算法配合精心优化的内部循环和 I/O,让程序在搜索时“…
系统与基础设施上首页 9 次 · 2010–2022lists.freebsd.orgXplain:为普通人讲解 X11
Xplain – Explaining X11 for the rest of us
《Xplain》是作者(HN 用户 Jasper_)写的一系列 X11 长文,用他在浏览器中重建的 X11 绘图模型做交互演示,讲解 X11 的绘图模型与窗口系统设计。
系统与基础设施上首页 6 次 · 2013–2020magcius.github.io编辑精选旋风教程:为 Linux 创建极小 ELF 可执行文件(1999)
A Whirlwind Tutorial on Creating Really Teensy ELF Executables for Linux (1999)
breadbox 写于 1999 年的经典教程,主题是如何为 Linux 手工构造并裁剪出体积极小的 ELF 可执行文件。
系统与基础设施上首页 6 次 · 2007–2025muppetlabs.comPostgreSQL 内部原理
The internals of PostgreSQL
《The Internals of PostgreSQL》是一本免费在线书籍,系统讲解 PostgreSQL 的内部实现,包括查询处理、并发控制、WAL、缓冲区管理等核心机制。
系统与基础设施上首页 5 次 · 2017–2025interdb.jp编辑精选