模块一:HOSTS.TXT 模拟器
选一个年代场景,亲手体验 1982 年的「域名系统」有多原始。输入主机名查找,看要扫描多少行。
MIT 和 Harvard 同时申请注册 "mail-server"
结果:谁先发邮件给 Elizabeth Feinler 谁赢。没有仲裁机制,没有自动检测,全靠人工判断。
在 3.5 亿域名的今天,这种冲突每秒发生数千次。
文件行数:0 行
模块二:DNS 分层查询动画
选一个域名,逐步点击「下一步」,看 DNS 如何通过分层查询从根服务器找到 IP。
www.zhihu.com
docs.google.com
api.github.com
4
总查询次数
≈ 80ms
总耗时(含网络开销)
模块三:HOSTS.TXT vs DNS 数据对比
用数字说话,直观对比两种方案。关键数字滚动动画在进入视口时触发。
| 维度 |
HOSTS.TXT (1982) |
DNS (今天) |
| 维护者 |
1 人(Elizabeth Feinler) |
全球分布式 |
| 记录数 |
~500 |
~3.5 亿 |
| 更新方式 |
邮件申请 + FTP 下载 |
秒级传播 |
| 查找复杂度 |
O(n) 线性扫描 |
O(层级) ≈ 3-4 次查询 |
| 单点故障 |
斯坦福断电 = 全网瘫 |
13 组根服务器 + 任播冗余 |
| 命名冲突 |
人工判断 |
层级命名空间天然隔离 |
| 解析耗时 |
数秒 ~ 数分钟 |
≈ 80ms(缓存命中 < 1ms) |
模块四:历史时间线
滚动浏览 DNS 诞生的关键节点,每个事件会随滚动淡入。
1969
ARPANET 诞生,4 个节点,hosts 文件只有 4 行。一切从这里开始。
1973
40 台主机。Elizabeth Feinler 在斯坦福 NIC 开始手动维护 HOSTS.TXT,所有人通过 FTP 下载最新版。
1982
500+ 主机,系统不堪重负:更新延迟数天、命名冲突无法仲裁、FTP 服务器经常过载。
1983
Paul Mockapetris 发表 RFC 882/883,发明 DNS。分层命名空间 + 分布式存储 + 缓存机制,彻底重构互联网的地址系统。
1984
第一批 DNS 根服务器上线。全球 13 组根服务器,通过任播技术分散到数百个节点。
1985
.com 域名开始注册,第一个是 symbolics.com。没人想到这个决定会催生数亿个域名。
2024
全球域名总数超 3.5 亿,单次解析 ≈ 50ms,加上缓存大多数时候 < 1ms。DNS 太成功了,成功到隐形。