一 什么是 DNS 协议
在学习 DNS 协议之前,我们先区分一下域名和 IP 地址这个两个概念:
- 「IP 地址」:一长串能够唯一地标记网络上的计算机的数字
- 「域名」:又称网域,是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)比如 www.baidu.com
可以这样理解,网址里面含有域名。举个例子:www.gitee.com/veal98 就是一个网址,而 www.gitee.com 就是域名
由于 IP 地址具有不方便记忆并且不能显示地址组织的名称和性质等缺点,人们设计出了域名,并「通过域名解析协议(DNS,Domain Name System)来将域名和 IP 地址相互映射」,使人更方便地访问互联网,而不用去记住能够被机器直接读取的 IP 地址数串。将域名映射成 IP 地址称为正向解析,将 IP 地址映射成域名称为反向解析。DNS 协议可以使用 UDP 或者 TCP 进行传输,使用的端口号都为 53。但「大多数情况下 DNS 都使用 UDP 进行传输」
二 域名详解
那么域名由谁来规定和管理呢?不能是随便写吧?
全世界域名的最高管理机构,是一个叫做 ICANN (Internet Corporation for Assigned Names and Numbers)的组织,总部在美国加州。「ICANN 负责管理全世界域名系统的运作」。
域名其实是具有一定的层次结构的,从上到下依次为:「根域名」、「顶级域名」(top level domain,TLD)、「二级域名」、(三级域名)
1 顶级域名
先来讲讲「顶级域名」(TLD),即最高层级的域名。简单说,就是网址的最后一个部分。比如,网址www.baidu.com 的顶级域名就是 .com。ICANN 的一项主要工作,就是规定哪些字符串可以当作顶级域名。截至 2015 年 7 月,顶级域名共有 1058 个,它们大致可以分成两类:
- 一类是「通用顶级域名」(gTLD),比如.com、.net、.edu、.org、.xxx等等,共有 700 多个。
- 另一类是「国家顶级域名」(ccTLD),代表不同的国家和地区,比如.cn(中国)、.io(英属印度洋领地)、.cc( 科科斯群岛)、.tv(图瓦卢)等,共有 300 多个。
当然,ICANN 自己不会去管理这些顶级域名,因为根本管不过来。想想看,顶级域名有1000多个,每个顶级域名下面都有许多批发商,如果每个都要管,就太麻烦了。ICANN 的政策是,每个顶级域名都找一个「托管商」,该域名的所有事项都由托管商负责。ICANN 只与托管商联系,这样管理起来就容易多了。举例来说,.cn