DNS是Internet上作为域名和IP地址相互映射的一个分布式数据库,是用户更方便的访问Internet,而不用去记住那些IP地址。DNS在我们互联网使用中有着非常重要的作用。首先我们来看看DNS是如何将域名转化成IP地址供用户访问的,假如一个用户在地址栏输入例如www.baidu.com,DNS解析大概有10个过程:

①浏览器先检查自身缓存中有没有这个域名对应的IP地址,如果有,解析结束。

②如果浏览器缓存中没有命中,浏览器会检查自身操作系统缓存中有没有相应的已经解析的过程。而且操作系统也有一个域名解析的过程。windows -> c盘 -> Windows -> System32 -> drivers -> etc -> hosts(如果在这里设置了一个域名对应的IP地址,那么浏览器就会首先使用这个IP地址,所以这种操作系统级别的域名解析通常会被黑客利用,通过修改你hosts文件里的内容把域名解析到他指定的ip地址上,造成所谓的域名劫持,所以将hosts文件设置成了只读模式,防止被恶意篡改。)

③如果还没有命中域名,这时才会真正的请求本地域名服务器(LDNS)来解析这个域名,这台服务一般在你城市的某个角落,距离不会很远,并且他的性能很好,一般都会缓存域名解析结果,大概80%的域名解析到这里都结束了。

④如果本地域名服务器还是没有命中,就直接跳到Root Server域名服务器请求解析

⑤Root Server服务器返回给LDNS一个所查询域的主域名服务器地址(gTLD Server)

⑥这时LDNS再发送请求给上一步返回的gTLD

⑦接受请求的gTLD查找并返回这个域名对应的Name Server的地址,这个Name Server就是网站注册的域名服务器

⑧Name Server根据映射关系表找到目标IP,返回给LDNS

⑨LDNS缓存这个域名和对应的IP

⑩LDNS把解析的结果返回给用户,用户根据TTL值(一条域名解析记录在DNS服务器的存留时间)缓存到本地系统缓存中,域名解析过程到此结束。

浏览器如何通过域名去查询URL对应的IP地址?

  1、浏览器缓存:浏览器会按照一定的频率缓存DNS记录。   2、操作系统缓存:如果浏览器缓存中找不到需要的DNS记录,那就去操作系统中找。   3、路由缓存:路由器也有DNS缓存。   4、ISP的DNS服务器:ISP是互联网服务提供商(Internet Service Provider)的简称,ISP有专门的DNS服务器应对DNS查询请求。   5、根服务器:ISP的DNS服务器还找不到的话,它就会向根服务器发出请求,进行递归查询(DNS服务器先问根域名服务器.com域名服务器的IP地址,然后再问.com域名服务器,依次类推)。

从上面步骤中我们可以看到执行一次完整的 DNS 解析请求过程还是比较长的,一般耗时几百毫秒至几秒,如果每个客户端都通过这样的流程进行查询,用户体验将非常糟糕。

因此,在靠近客户端的位置,比如浏览器、客户端本地、LocalDNS 等位置都设计了 DNS 缓存机制,并设置相应的缓存生效时间,即 TTL(Time To Live,生存时间值)。

在 TTL 时间范围内,当 DNS 解析请求命中某一级的缓存时会直接将缓存结果返回客户端。通过这种机制可以将解析时间缩减至数毫秒甚至微秒,减少解析域名的网络延迟,缓解权威 DNS 服务器的负载压力,但代价是一致性的牺牲。

DNS缓存

DNS存在着多级缓存,从离浏览器的距离排序的话,有以下几种: 浏览器缓存,系统缓存,路由器缓存,IPS服务器缓存,根域名服务器缓存,顶级域名服务器缓存,主域名服务器缓存。

DNS负载均衡

互联网用户巨大的今天,假如亿万请求请求的资源都位于同一台机器上面,那么这台机器随时可能会蹦掉。处理办法就是用DNS负载均衡技术,它的原理是在DNS服务器中为同一个主机名配置多个IP地址,在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的机器上去,使得不同的客户端访问不同的服务器,从而达到负载均衡的目的。例如可以根据每台机器的负载量,该机器离用户地理位置的距离等等。

大家耳熟能详的CDN(Content Delivery Network)就是利用DNS的重定向技术,DNS服务器会返回一个跟用户最接近的点的IP地址给用户,CDN节点的服务器负责响应用户的请求,提供所需的内容。


域名频道提供上海电信骨干机房的服务器托管和租用服务,价格在上海地区是非常实惠的。
服务器运行需要在一个不断电、不断网的环境中运行,但普通企业一般无法提供这一环境。
实现有效降低维护费用和机房设备投入、线路租用等高额费用。
上海电信机房标准型服务器租用促销啦,租用独立服务器送服务器产权,赶紧了解http://www.dns110.com/server/