理解DNS

Posted 世龙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了理解DNS相关的知识,希望对你有一定的参考价值。

什么是DNS?

DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。

看到了上面百度百科的解释,是不是还不明白,那么就看看下面通俗的解释吧。
当你在浏览器的地址栏输入www.example.com,你实际上访问的是www.example.com.,没错,在域名后面还有一个点(.),你从来不会看到,也从来不会输入。当你输入www.google.com你实际上访问的是 www.google.com. 的页面,真的是这样的,不信你可以试一下。总之,最后的那个点代表着互联网命名空间的根。为什么这个点这么重要?因为它是一切开始的地方。当你第一次搜索www.example.com.时,你的浏览器和操作系统会首先判断它们知不知道这个IP是否可用,它可能会在你的计算机里配置也可能在内存里。总之,你的浏览器会问操作系统,如果它们都不知道www.example.com.是什么,然后会怎么样呢? 操作系统会配置为当它不知道某个IP地址时去询问解析域名服务器,解析域名服务器就是承担DNS查询重任的,它会在你的操作系统里进行手动或自动配置。你的操作系统会向解析域名服务器询问www.example.com.的IP地址。解析域名服务器的内存或者缓存里可能有这个IP地址,也可能没有。为了这次说明,假如它没有这个IP地址,所有解析域名服务器必须知道的一件事就是知道去哪里查找根域名服务器。是的,这个神秘的点会出现在你输入的地址栏的每一个域名的最后,根域名服务器回复到:“我也不知道,但我知道去哪里找com的域名服务器,去哪里问一下吧”。com域名服务器叫做顶级域名服务器,也就是TLD域名服务器。解析域名服务器会记住根域名服务器提供的所有信息,并且添加到缓存里,然后直接去找TLD域名服务器。当解析域名服务器询问www.example.com时,TLD域名服务器回答说:“我不知道,但我知道去哪里找example.com域名服务器,你去那里问一下“。下一组域名服务器叫做主域名服务器,那么TLD域名服务器怎么知道用哪个主域名服务器呢,这得借助于域名注册公司了。当一个域名被购买时,域名注册公司就会被告知那个域名应该使用哪一个主域名服务器,注册公司就会将这次注册信息告知负责根域名的机构,并且告诉它更新TLD域名服务器。总之,解析域名服务器记下TLD域名服务器的回复,存储到缓存里,然后去询问example.com域名服务器,这个时候,主域名服务器就会说:“哈,我知道他在哪里”。告诉你的浏览器去访问192.168.1.1这个IP地址。解析域名服务器记下了主域名服务器提供的信息添加到缓存里,然后回复给操作系统,操作系统就会告诉浏览器,浏览器就会连接到请求页面,www.example.com的IP地址。很有意思,对不对?这个过程看起来好像很复杂,但是相信我,整个过程在你眨眼之间就能完成,建立DNS就是为了快速高效的工作,它是互联网必须的组成部分。一旦你理解了这一点,你会清楚的看到一次DNS查询就会由多个层面和多个机构负责。仅仅是一次DNS查询啊!由解析域名服务器根域名服务器TLD域名服务器、还有主域名服务器。如果任何人改变或者去除了这个过程中的任意一个部分,这会导致一场灾难。


以上是关于理解DNS的主要内容,如果未能解决你的问题,请参考以下文章

如何理解这段代码片段中的两对括号?

精心收集的 48 个 JavaScript 代码片段,仅需 30 秒就可理解

精心收集的 48 个 JavaScript 代码片段,仅需 30 秒就可理解!(转载)

以下代码片段 C++ 的说明

从浏览器输入一个地址到渲染出网页这个过程发生了什么???

理解片段事务期间片段的生命周期方法调用