在说域名服务器的时候,有人说DNS,还有人说NS,到底哪个正确呢?它们有什么区别吗?今天就在这里和大家谈下我的体会。

DNS其实是有两个意思:1.DNS可以指域名系统 2.DNS可以指域名服务器。具体指的是什么,需要根据实际情况来做判断。下面我们分别讨论这两种情况下DNS与NS(域名服务器)的区别。

1. 当DNS指域名系统的时候,它的本质是一种分层次的、基于域的命名方案,并且用一个分布式数据库系统来实现此命名方案。它的主要用途是,将域名映射成IP地址。我们通过使用浏览器访问网站为例说明这点,当我们访问google.com的时候,浏览器会调用一个解析器的库过程,并将该名字作为参数传递给该库过程。然后解析器向本地的DNS服务器发送一个UDP分组,之后,本地DNS服务区查找该域名,并且将找到的IP地址返回给解析器,解析器再将IP地址返回给调用方—浏览器。有了IP地址之后,浏览器就可以与目标机器建立一个TCP连接,或者是给他发送UDP分组,这个即是域名系统(DNS)的工作原理。我们可以简单的理解成,当DNS作域名系统时,它实际上是由解析器和域名服务器(NS)两部分组成的。而这里的域名服务器即是NS,它保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能。将域名映射为IP地址的过程就称为“域名解析”。

2. 当DNS指域名服务器的时候,它其实也就是我们所说的NS。具体的工作原理大家可以参考cn下DNS的工作原理:http://www.cnnic.net.cn/html/Dir/2005/04/06/2884.htm.CN域名服务的解析的原理和过程其工作原理及过程分下面几个步骤: 第一步:用户提出域名解析请求,并将该请求发送给本地的域名服务器。 第二步:当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。 第三步:如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域,如CN)的主域名服务器的地址。 第四步:本地服务器再向上一步骤中所返回的域名服务器发送请求,然后收到该请求的服务器查询其缓存,返回与此请求所对应的记录或相关的下级的域名服务器的地址。本地域名服务器将返回的结果保存到缓存。 第五步:重复第四步,直到找到正确的纪录。 第六步:本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。 下面的例子来形象地说明一个CN域名解析的过程。假设客户机想获得域名“www.sina.com.cn”的服务器的IP地址,此客户本地的域名服务器是nm.cnnic.cn(159.226.1.8),域名解析的过程如下图所示(不是原创,转自cnnic官网,觉得很好,就没有做改动了):上述的DNS也就等同于我们所说的NS-域名服务器。如负责sina.com.cn的DNS服务器也就是NS是ns1.sina.com.cn等。

3. 还有一些时候,当DNS作域名服务器用时,我们可能会更加倾向于把DNS理解成我们的本地DNS或者是更高级别的DNS如顶级域DNS、根DNS,它们负责实现域名解析以完成域名和IP地址的映射,如上图中从本地DNS一直到负责com.cn的DNS,都可以理解成是DNS,而最后一个负责sina.com.cn的DNS可以理解成是NS,它负责存放具体的某个二级域下的解析记录,而这些NS通常都是由各个域名注册商维护或者某些主机商也会自建NS来存放解析记录。

网络任我行(www.urbansh.com)原创, 转载请注明原文地址http://www.urbansh.com/dns-ns-difference.html