初识域名

其实每个使用互联网的人,不论是使用电脑还是移动设备,您在可能还不熟悉它是什么的时候,就在不知不觉中频繁地使用它了。这就是域名系统(DNS, Domain Name System)。

在互联网上,每一个主机都有一个或多个数字地址(IP地址)。数字地址不容易记忆,就像我们只能记得几个最亲近的人的手机号码一样,其他的人如果我们需要联系,一般要根据人名来查询通讯录。网络上的主机也是一样,为了标识这些主机,需要给互联网上的主机起名字以便区分。为了方便地命名、管理和查询互联网上的主机信息,人们发明了域名系统(DNS)。DNS就是这些主机的通讯录,它是一个分布式的数据库,用来存储这些名字信息。相应地,存储这些信息的主机,就称为名字服务器。整个DNS数据库用图来表示,就像一棵倒置的树,根在顶端,枝干和叶子在下面。DNS系统以节点划分,最上面的树根就是根节点。根节点下面分布一级一级的子节点。从每一个节点向下看去,连同这个节点,形成了一颗子树。这个节点可以看成是子树的根。每一棵这样的树或者子树,就是DNS系统中的一个域。某棵子树的根节点,就是那个域的根节点。每个域都有唯一的名字,就是域的域名(domain name)。域名标识它在数据库中的位置。在DNS中,域名是从域根所在节点到整棵树的根节点的标号的顺序连接,标号间用“.”来分隔。

像 “nslab.com” 这样的一串字符,就是从节点nslab一直向树根读去,每经过一个节点就加上一个“句点”,这个句点是英文字符的句号。根节点的句点一般省略不写。这就是一个域名。像“百科.中国”这样的一组中文字符,也是一个域名。后续我们会学到,凡是涉及非英文字符的域名,其实在DNS系统中的内码都是英文域名的格式,配以相应的编码规则(Punycode编码),使得在应用层面可以扩展支持多种语言。这就是“国际化域名(IDN)”。含有中文的国际化域名,即中文域名。中文域名在使用中可以使用中文句号作为分隔符。这需要应用程序支持,并且解析器(DNS系统客户端)在向名字服务器发起查询的时候,会转换成英文句点。

根节点下面的第一个节点,对应的域叫做顶级域。顶级域的名字,就是顶级域名。目前,顶级域中,最主要的是“通用顶级域(gTLD)”和“国别顶级域(ccTLD)”两大类。除此以外,还有“基础互联网顶级域(infrastructureTLD,即arpa域,用于存储IP地址反向解析数据)”,“赞助顶级域(sponsoredTLD,多由某些组织赞助设立,主要服务特定人群”,“测试顶级域(testTLD,当时ICANN用于测试IDN时设置,现已不使用)”,“通用但受限的顶级域(generic-restrictedTLD,主要指biz,name,pro三个通用顶级域)”。除国别顶级域以外的域均归属ICANN(互联网名称和数字地址分配机构)管理,国别顶级域归属各国家(或地区)政府管理。整个域名系统根服务器归属IANA管理(现在IANA是ICANN的一部分)。ICANN或各国(地区)为自己负责的顶级域认证并授权相应的注册局(Registry)运维。注册局不是一成不变,有可能会由一个机构换为另一个机构。当前,com、net、edu、tv、cc、name等域的注册局是Verisign公司,org域的注册局是PIR(Afilias负责技术运维),info域的注册局是 Afilias 公司。cn域的注册局是CNNIC(中国互联网络信息中心),其中edu.cn子域的注册局角色实际是中国教育和科研计算机网。所有的顶级域信息见IANA网站(根区数据库):

http://www.iana.org/domains/root/db

DNS系统信息的存储载体是名字服务器。DNS分层设置名字服务器,其中根域名服务器有13台。根域的名字服务器对应的IP地址是定期公布并为每一台域名解析器所知晓的。除了根域的名字服务器的信息之外,所有域的具体权威信息都需要查询对应于它们自己的名字服务器。名字服务器中存储的某域的信息,不含授权出去的子域的具体数据,这部分叫做这个域的区。名字服务器处理的都是区数据。

未完待续。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注