🔌 第一章 浏览器生成消息
📄 一句话概括

域名给人记(字母上口、最长 255 字符),IP 给机器用(定长 4 字节、比对快)——两者各有长处,谁也替不掉谁,中间必须有翻译。

📝 本节和前面几节的关系

1.2.1 认识了 IP;本篇马上回答一个自然的问题——既然难记,为什么不只用名字?

一、域名的好

字母组合符合语言习惯,含义可读(www、mail); 组织搬家(换服务器)不用通知所有用户,改登记就行。

二、IP 的好

定长 32 比特,路由器比对起来快而简单; 域名最长 255 字符、每层 63 字符,做路由匹配就太重了。

三、结论

人输域名,机器传 IP——中间插一个翻译官, 翻译官就是下一节的解析器。

四、动手 Demo:域名和 IP 各管什么

两种写法的账并排放:

print('%-18s %-8s %-12s %s' % ('写法','人类','机器','上限'))
print('%-18s %-8s %-12s %s' % ('www.lab.glb.com','好记','先翻译','255/层63'))
print('%-18s %-8s %-12s %s' % ('172.20.1.1','难记','4字节快','32比特'))

实跑输出:

--------------------------------------------------------------------
域名和 IP 各管什么
--------------------------------------------------------------------
  同一个目标,两种写法,账算给你看:

  写法                人类     机器                  长度上限
  ----------------------------------------------------------------------
  www.lab.glb.com     好记     要先翻译              255 字符 / 每层 63
  172.20.1.1          难记     定长 4 字节比对快     固定 32 比特
  ----------------------------------------------------------------------

  各有所长,谁也替不掉谁——所以两条都要用:
  人输域名,机器传 IP,中间插一个【翻译官】(下一节的解析器)。

【长度上限 255】是全名(含点)的上限;每一层(两个点之间) 最多 63 字符——这两条都是 DNS 协议的硬规定。

30 秒实验

  1. 把浏览器书签里的一条域名换成 IP 访问,看还能不能通(虚拟主机多数不通)。
  2. 数一数身边最长的一个域名有多少字符。
  3. ping 一个域名,观察输出里域名与 IP 同时出现。

常见误区

  1. 以为有了域名 IP 就可以不要——路由层面只认 IP。
  2. 以为 IP 和域名是一对一——一个域名可对多个 IP(负载分摊),反之亦然。
自测三问(点开对答案) 1. 域名对人的好处是什么? —— 好记、含义可读、搬家不用改口。 2. IP 对机器的好处是什么? —— 定长 4 字节,比对快。 3. 两者之间的翻译官叫什么? —— 解析器(resolver),下一节登场。

相关笔记