起源:实验室换了电脑,需要将MAC绑定一个新的IP地址。在配置静态IP的时候,忘记填写DNS网关
了。然而,此时QQ消息还可以正常地接收,网页却不能正常地访问。于是在群里跟大家一起讨论了
这个现象和原理,也对DNS的工作原理有了更清晰的认识。DNS的系统设计对于ICN名字解析系统的
设计有非常好的借鉴作用。那么什么时候需要进行DNS域名解析,DNS域名解析的工作原理是什么
呢?在下文中会有详细地介绍。
问题一:qq为什么不需要DNS来解析
如果你上网页不用www方式,直接访问该网站的ip地址也是通的。用网址访问的方式, 是先到域名服务早该网址对应的服务器的IP地址,再用IP访问的,若DNS故障的话,它就不知道该连接到哪里。也就是,qq消息直接通过IP利用UDP传输协议进行传输,不需要进行域名解,故DNS故障不影响正常地消息发送/接收。
从输入的 url,可以解析出主机与端口来确定哪台机器装载了资源,以及在那台机器的什么地方可以找到对目标资源进行访问的服务器。
该解析方式有两种方式有两种,一种是主机名 + 端口,另一种是 IP 地址 + 端口,如果是主机名 + 端口的形式,需对主机名进行解析成 IP 地址,因为互联网上每一台计算机的唯一标识是它的 IP 地址。这个解析过程,就叫做 DNS 解析。
DNS(Domain Name System)位于 TCP / IP 协议族的应用层,是一种组织成域层次结构的计算机和网络服务命名系统,它所提供的服务是用来将主机名和域名转换为IP地址的工作。
参考链接:
1./urla=t&rct=j&q=&esrc=s&source=web&cd=7&ved=0ahUKEwinsJrE4dTZAhXIzbwKHSPiAWUQFgh3MAY&url=https%3a%2f%2fgithub%2ecom%2fjkchao%2fblog%2fissues%2f13&usg=AOvVaw2GnnjWRLNeRM_y21l4_7yr
2.
其中,根域名服务器有13台,但是这是错误的观点。根域服务器只是具有13个IP地址,但机器数量却不是13台,因为这些IP地址借助了任播的技术,所以我们可以在全球设立这些IP的镜像站点,你访问到的这个IP并不是唯一的那台主机。主要通过镜像分布的方式进行维护。
下图是 DNS解析过程示意图:
查询方式主要分为两种:
Tips:
一种是递归查询,一种是迭代查询。
递归查询:是客户与服务器之间的一种查询方式;
迭代查询:是服务器与服务器之间的一种查询方式。
递归查询:DNS 服务器代表客户机来查询或联系其他 DNS 服务器以完成解析该名称,并随后将应答返回至客户机。
迭代查询:客户机自己也可尝试联系其他的 DNS 服务器来解析名称,如果客户机这么做,它会使用基于服务器应答的独立和附加的查询,该过程称为迭代。即 DNS 服务器之间的交互查询就是迭代查询。
查询步骤如下:
参考链接:
/urlsa=t&rct=j&q=&esrc=s&source=web&cd=7&ved=0ahUKEwinsJrE4dTZAhXIzbwKHSPiAWUQFgh3MAY&url=https%3a%2f%2fgithub%2ecom%2fjkchao%2fblog%2fissues%2f13&usg=AOvVaw2GnnjWRLNeRM_y21l4_7yr
DNS 优化主要是缓存,本地缓存,浏览器缓存,系统缓存,路由器缓存,IPS服务器缓存,跟域名服务器缓存……,因而对于DNS系统主要做的是缓存优化,通过存储换时延。
DNS 服务器可以返回一个合适的机器的 IP 给用户,例如可以根据每台机器的负载量,该机器离用户地理位置的距离等等,这种过冲就是 DNS 负载均衡,又叫做 DNS 重定向,CDN 即是利用 DNS 重定向技术。DNS 服务器会返回一个根用户最接近的点的 ip 地址给用户,CDN 节点的服务器负责响应用户的请求,提供所需的内容。
在了解了DNS域名解析系统的基本原理之后,DNS协议是如何进行传输的呢?
问题2:DNS采用的TCP还是UDP协议?
DNS同时占用UDP和TCP端口53是公认的,这种单个应用协议同时使用两种传输协议的情况在 TCP/IP栈也算是个另类,但很少有人知道DNS分别在什么情况下使用这两种协议。
1. 先简单介绍下TCP与UDP
2.TCP与UDP的区别
3. DNS在什么条件下使用TCP,什么条件下使用UDP呢?
DNS的规范规定了2种类型的DNS服务器
在两类服务器中,一个叫主DNS服务器,一个叫辅助DNS服务器。 在一个区中主DNS服务器从自己本机的数据文件中读取该区的DNS数据信息,而辅助DNS 服务器则从区的主DNS服务器中读取该区的DNS数据信息。当一个辅助DNS服务器启动时, 它需要与主DNS服务器通信,并加载数据信息,这就叫做区传送(zone transfer)。
为什么既使用TCP又使用UDP?
首先了解一下TCP与UDP传送字节的长度限制:
UDP报文的最大长度为512字节,而TCP则允许报文长度超过512字节。当DNS查询超过512字节时,协议的TC标志出现删除标志,这时则使用TCP发送。通常传统的UDP报文一般不会大于512字节。
区域传送时使用TCP,主要有一下两点考虑:
1.辅域名服务器会定时(一般时3小时)向主域名服务器进行查询以便了解数据是否有变动。如有变动,则会执行一次区域传送,进行数据同步。区域传送将使用TCP而不是UDP,因为数据同步传送的数据量比一个请求和应答的数据量要多得多。
2.TCP是一种可靠的连接,保证了数据的准确性。
域名解析时使用UDP协议:
客户端向DNS服务器查询域名,一般返回的内容都不超过512字节,用UDP传输即可。不用经过TCP三次握手,这样DNS服务器负载更低,响应更快。虽然从理论上说,客户端也可以指定向DNS服务器查询的时候使用TCP,但事实上,很多DNS服务器进行配置的时候,仅支持UDP查询包。
参考链接:.html
问题3:DNS与DHCP、网关等有什么关系?
DHCP是Dynamic Host Configuration Protocol的缩写,它是TCP/IP协议中的一种,主要是用来给网络客户机分配动态的IP地址。这些被分配的IP地址都是DHCP服务器预先保留的一个由多个地址组成的地址集,并且它们一般是一段连续的地址。
使用DHCP时必须在网络上有一台DHCP服务器,而其他机器执行DHCP客户端。当DHCP客户端程序发出一个信息,要求一个动态的IP地址时,DHCP服务器会根据目前已经配置的地址,提供一个可供使用的IP地址和子网掩码给客户端。
DHCP分配地址的方式有手工、自动和动态三种。动态分配方法是惟一能够自动重复使用IP地址的方法,它对于暂时连接到网上的DHCP客户机来说尤其方便,对于永久性与网络连接的新主机来说也是分配IP地址的好方法。动态分配方式的IP地址并不固定分配给某一客户机,只要有空闲的IP地址,DHCP服务器就可以将它分配给要求地址的客户机;当客户机不再需要IP地址时,就由DHCP服务器重新收回,这样可以解决IP地址不够用的困扰。
总结:简单地说DHCP的工作就是分配和提供IP,DNS是实现域名和IP之间的转换,都与IP有关。动态IP分配加DNS就是我们现在比较流行的DDNS,即动态域名解析。
参考链接:
在搜索关于DNS相关的内容时,搜到了腾讯云解析的产品简介,结合现在ICT以服务为中心,云化的趋势,未来的解析系统也可能部署在云上。看腾讯的产品简介,特点还是很直观的。下图是腾讯云解析的产品特点介绍:
更多关于DNS域名解析系统缓存、负载均衡等相关的的内容,可参考《DNS与BIND(第五版)》,下载链接:
最后,感谢您的阅读Thanks♪(・ω・)ノ~~~羽生结弦镇楼!
本文发布于:2024-02-03 01:26:32,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170689479047742.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |