本文详细介绍了DNS相关知识,包括DNS的工作原理、如何提高域名解析速度、DNS记录和消息等。
1.域名和域名服务器
在日常上网中,出于方便记忆的考虑,人们更喜欢在浏览器中输入网站的域名,而不是IP地址。例如,如果要访问百度,则输入它而不是202.108.22.5(或百度网站的其他IP)。
然而,计算机网络通信中识别的标识符并不是域名,而是IP地址,因为它可以提供主机在互联网中的位置信息,而且长度固定,方便路由器等设备识别。处理它。
为了兼顾人类和计算机的不同偏好,DNS(Name, Name )应运而生。它的主要任务是根据域名找到对应的IP地址。
我们先介绍一下域名和域名服务器,然后介绍一下DNS的工作原理。
域名由多个英文字符串组成(不区分大小写)。每个字符串由句点“.”分隔和连接。越往右,域名级别越高。
例如,百度的域名为,其中com为顶级域名(一级域名),baidu为二级域名,www为三级域名。
域名服务器(又称DNS服务器)负责存储域名和IP地址的映射关系。当我们需要获取某个域名对应的IP地址时,只需要向域名服务器查询即可。
由于域名如此之多,如果全部存储在一台域名服务器中,不仅查询速度慢,服务器压力很大,而且也很难保证服务的可靠性。因此,DNS采用分布式设计,大量域名服务器分层组织,分布在世界各地。
一般来说,域名服务器可以分为以下四类:
2.域名解析流程
了解了域名和域名服务器的基本知识后,我们来看看域名解析的具体流程。我们以输入百度域名为例,看看我们的主机是如何获取IP地址的。
请求主机向本地域名服务器发送DNS查询报文,询问IP地址是什么;本地域名服务器将查询消息转发至根域名服务器;根域名服务器发现要查询的顶级域名是com,于是向本地域名服务器发送查询消息。响应消息中封装了负责com域的顶级域名服务器的IP地址列表;本地域名服务器收到根域名服务器的响应消息后,选择其中一台顶级域名服务器的IP地址并向其发送查询。信息;顶级域名服务器发现要查询的二级域名是baidu,于是向本地域名服务器发送响应报文,响应报文中封装了负责该域的权威域名服务器的IP地址列表;本地域名服务器收到顶级域名服务器的响应消息后,选择其中一台权威域名服务器的IP地址,并向其发送查询消息;权威域名服务器通过查询数据库找到IP地址,并将这些信息封装成响应消息发送给本地域名服务器;本地域名服务器将响应消息发送给原请求主机。现在我们的主机知道了百度的IP地址,DNS查询过程就结束了。
在此过程中,请求主机与本地名称服务器之间的交互称为递归查询,本地名称服务器与名称服务器层次结构中的相关服务器之间的交互称为迭代查询。
请求主机如何知道本地域名服务器的IP地址?
当用户插上网线或连接WIFI时,计算机会通过DHCP协议分配一个IP地址。同时也会获取本地域名服务器的IP地址!
本地域名服务器如何知道根域名服务器的IP地址?
互联网上共有13个根域名服务器。它们的 IP 地址是固定的,因此集成到操作系统中并为每台计算机所知!
为了解析百度域名的IP地址,总共发送了8条DNS消息。用户原本只是想与百度的服务器进行交互,但在域名解析上花费了大量的时间。如果每次都这样,岂不是慢死了?因此,需要一些方法来提高域名解析的速度。
3、提高域名解析速度(1)TCP或UDP
我们都知道TCP比UDP更可靠,但速度更慢。
DNS 应使用哪种传输层协议?
事实上,DNS主要使用UDP。特殊情况也使用TCP,端口号为53。
一般来说,DNS报文都比较小,只需要一个报文就可以承载所有的信息。由于只有一个数据包,因此无需考虑哪一个数据包尚未送达。只需重新发送一个数据包即可。因此,没有必要使用像TCP这样复杂的协议。可以直接使用UDP协议。 DNS 协议自行处理超时和重传问题以提供可靠性。服务。
当然,有时 DNS 消息比较大。例如,响应消息中的域名可能包含许多IP记录。服务器响应时,会将消息中的TC标志位设置为1,表示响应长度超过512字节,且本次消息仅返回前512字节。当我们的主机收到响应时,它会使用 TCP 协议重新发送原始查询请求以获得完整的消息。
另外,为了防止本地域名服务器(主域名服务器)宕机导致域名无法解析,需要在本机上设置一个辅助域名服务器。当主域名服务器宕机时,辅助域名服务器继续提供域名解析服务。辅助域名服务器会定期(通常每3小时)向主服务器发送查询请求,以实现同步。这时候有大量的数据需要传输,所以就使用了TCP协议。
(2)DNS缓存
即使使用UDP协议,如果每次都需要从根服务器逐层查询,速度仍然会很慢,而且层次结构中的域名服务器会收到大量的请求,进一步降低了查询的效率。处理速度!
为了提高域名解析的速度,减轻域名服务器的压力,DNS大量使用了缓存技术。
当用户访问网站时,本地域名服务器会在一定时间内缓存解析出的域名与IP地址的映射关系。在缓存过期之前,当用户再次访问同一网站时,本地域名服务器可以直接返回查询结果,而无需查询根域名服务器、顶级域名服务器等,这样可以大大减少次数传输的 DNS 消息数!
事实上,不仅本地域名服务器设置了高级缓存,用户主机也有缓存。对于计算机来说,可以通过命令/查询来查询当前的DNS缓存。例如,当我访问百度时,机器会缓存以下信息:
缓存虽然提高了DNS解析速度,但并不能保证一致性,因为网站的域名和IP地址之间的映射关系不是永久的,缓存的解析结果可能已经过期。因此,DNS缓存时间不能设置太大!
计算机还可以通过命令/clear清除本地缓存。
(3)切换本地域名服务器
前面提到,主机在进行域名解析时,会向本地域名服务器发起递归查询。如果本地域名服务器的性能较差,或者缓存配置不正确,那么我们的上网速度就会变得非常慢,所以选择一个好的本地域名服务器将有助于提高你的上网速度!
默认情况下,本机连接互联网时会通过 DHCP 协议自动获取 DNS 服务器地址。那么如果这台服务器性能不好,该如何更换呢?
例如,您可以通过控制面板—>网络—>网络连接—>协议版本4(TCP/IPv4)来修改本地域名服务器的IP地址。
互联网上常见的公共DNS服务器的IP地址如下:
首选 DNS 服务器地址
备用 DNS 服务器地址
阿里
223.5.5.5
223.6.6.6
腾讯
119.29.29.29
182.254.116.116
百度
180.76.76.76
114.114.114.114
谷歌
8.8.8.8
8.8.4.4
114.114.114.114
114.114.115.115
一般自动获取的本地域名服务器与主机在同一子网内,速度相当快。不过,如果你在上网时发现打开网页的速度很慢,你也可以尝试使用上面的公共DNS服务器,也许速度会有所提高。
4. DNS 记录和消息
事实上,域名服务器保存的不仅仅是域名和IP地址,还有一条资源记录(RR)。
一条资源记录包含四个部分,分别是Name、Value、Type和TTL。
TTL是指记录的生存时间(以秒为单位),它决定了缓存该记录的过期时间。
名称和值的含义因类型而异。以下是一些常见示例:
如果名称服务器是特定域名的权威名称服务器,它将有一条包含该域名的 A 记录。
如果某个名称服务器不是特定域名的权威名称服务器,则会包含一条 NS 记录,用于指定由哪个名称服务器解析该域名;此外,它还将包含一条 AA 记录,该记录在 NS 记录的 Value 字段中提供名称服务器的 IP 地址。
接下来我们介绍一下DNS报文的具体内容。 DNS报文分为两类:查询报文和回复报文,两者的格式相同,如下图所示:
最后,用于捕获 DNS 查询消息和回复消息:
查询留言:
回复留言:
扫一扫在手机端查看
-
Tags : 阿里云域名解析服务器_DNS 是如何影响你冲浪速度的?
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。