关于域名系统DNS解析IP地址的一些总结
关于域名系统DNS(Domain Name System)
从域名中解析出IP地址。
DNS主要由3部分组成:
① 名称解析器(resolver)
② 域名空间(domain name space)
③ 名称服务器(name server)
DNS服务器获取域名空间的部分信息的方法:
① 由管理员编辑一个原始区域文件;
② 从其他名称服务器那里复制区域文件;
③ 通过向其他DNS服务器查询来获取具有一定时效的缓存信息。
名称服务器的3种主要类型:
① 主(primary)名称服务器:拥有一个区域文件的原始版本的服务器。
② 次(secondary)名称服务器:从其他主名称服务器那里复制一个区域文件。是一个只读版本。次名称服务器通过区域传输(zone transfer)跟随主名称服务器上的区域文件进行变化。
③ 惟高速缓存(caching-only)名称服务器:没有区域文件。它的职责是帮助名称解析器完成名称解析,并缓存解析结果,便于以后使用。当惟高速缓存名称服务器第一次启动时,他没有存储任何DNS信息。它是在启动之后,通过缓存查询的结果来逐渐建立DNS信息。缓存表项的生存时间TTL由提供授权解析结果的名称服务器决定。该服务器将查询的生存时间和名称解析一起返回。
域名解析
TCP/IP 的域名系统是一个有效的、可靠的、通用的、分布式的 名称——地址 映射系统。
域名解析有两种方式:正向解析和反向解析。
① 正向解析:根据域名查询对其对应的IP地址或其他相关信息。
② 反向解析:根据主机的IP地址查询其对应的域名。
DNS在名称空间中设置了一个称谓in-addr.arpa的特殊域,专门用于反向解析。
为了能够使反向解析用与正向解析相同的方法进行解析,反向解析将IP地址的字节倒过来写,构成反向解析的“名称空间”。如:地址是202.119.80.126的主机的域名写成126.80.119.202.in-addr.arpa。
DNS服务器和客户端属于TCP/IP模型的应用层,DNS既可以使用TCP,也可以使用UDP,使用的是TCP/UDP的53号端口。
DNS接收两种类型的解析:递归解析和反复解析
① 递归解析(递归查询):

要求名称服务器系统一次性完成名称——地址变换。
递归查询强制指定的DNS服务器对请求做出响应(响应要么是一个包含相应解析结果的成功的响应,要么是一个失败的响应)。
本地的DNS服务器可能需要通过再查询一些其他的DNS服务器才能完成解析,当DNS服务器从其他服务器得到响应后,再向客户端发送回答。
② 反复解析(迭代查询):

要求客户端本身反复寻求名称服务器的服务来获得最终的解析结果。
过程:名称服务器收到请求后,若能够给出解析结果,则返回最终结果到客户端;如果本名称服务器无法给出解析结果,则返回给请求者它认为能够给出解析结果的服务器的IP地址。
请求者收到该IP地址后,将向该地址发送解析请求,直到获得最终的解析结果或失败的响应。
名称服务器在没有任何可以回答的信息时,将返回一个失败的响应。
怎样提高解析效率
可以采用两步名称解析机制和高速缓存技术解决这个问题。
① 两步名称解析机制
Ⅰ. 先通过本地名称服务器进行解析;
Ⅱ. 如果不行,再采用自顶向下的方法搜索。
优点:既提高了效率,又保证了域名管理的层次结构。
② 高速缓存
在名称服务器中使用高速缓存技术,存放最近解析过的 名称——地址 映射和描述解析该名称服务器位置的信息。
优点:可以避免每次解析非本地名称时都进行自顶向下的搜索,从而减少非本地名称解析带来的开销。
缺点:若授权名称服务器中的 名称——地址 映射已经发生了变化。而高速缓存未能作出相应的刷新,会有一个有效性的问题,缓存失效,从而导致解析错误。
有效性问题解决办法:
服务器向解析器报告缓存信息时,必须注明该信息是非授权的,同时还要指出能够给出授权解析结果的名称服务器的地址。
此外,高速缓存中的每一个映射表项都有一个生存时间TTL,一旦某个表的TTL时间到期,便将它从缓存中删除。
本文链接:http://www.cnblogs.com/xsilence/p/6034467.html
关于域名系统DNS解析IP地址的一些总结的更多相关文章
- 免费公共DNS服务器IP地址大全(2017年6月24日)
收集全球各个常用公共DNS服务器 IP地址,欢迎各位朋友评论补充! 国内常用公共DNS 114 DNS: (114.114.114.114: 114.114.115.115) 114DNS安全版 ...
- MSF魔鬼训练营-3.1.1信息收集-通过DNS和IP地址挖掘目标网络信息
情报搜集环境站渗透测试全过程的80%~90% 一.外围信息搜集(公开渠道信息搜集OSINT open source intelligence) 3.1.1信息收集-通过DNS和IP地址挖掘目标网 ...
- 公共 DNS server IP 地址
公共 DNS server IP 地址 名称 DNS server IP 地址 CNNIC SDNS 1.2.4.8 210.2.4.8 114 DNS 114.114.114.114 114.114 ...
- 常用的公共 DNS 服务器 IP 地址
转载自:小哈龙 2019-04-12 09:34:42 公共 DNS 服务器 IP 地址 名称 DNS 服务器 IP 地址 阿里 AliDNS 223.5.5.5 223.6.6.6 CNNIC SD ...
- JavaMail SMTP服务器发送邮件程序示例 java通过dns服务器解析ip地址
/** * JavaMail SMTP服务器发送邮件程序示例 * 扮演SMTP服务器角色与邮件客户端软件最大的区别就是: * SMTP服务器需要解析不同接收人邮件地址主机名对应的SMTP服务器主机名 ...
- Linux上DNS解析总是选择resolv.conf中第二位的DNS服务器IP地址
问题现象: 在Linux机器上,用户自建了一台DNS服务器.然后改动/etc/resolv.conf将其服务器IP地址添加到第一项.将阿里云的内网DNS放到第二位,然而在测试过程中发现telnet,p ...
- DNS、IP地址、子网掩码和默认网关
一.DNS服务器 DNS是指:域名服务器(Domain Name Server).在Internet上域名与IP地址之间是一一对应的,域名虽然便于人们记忆,但机器之间只能互相认识IP地址,它们之间的转 ...
- Linux socket编程 DNS查询IP地址
本来是一次计算机网络的实验,但是还没有完全写好,DNS的响应请求报文的冗余信息太多了,不只有IP地址.所以这次的实验主要就是解析DNS报文.同时也需要正确的填充请求报文.如果代码有什么bug,欢迎指正 ...
- 通过阿里云域名动态解析 IP 地址
这两天在家里用树莓派折腾了一个家用服务器,主要用来做 mac 的 Time Machine ,还有就是当做下载机和 nas ,想着平时上班时间家里没人用网络,空着也是空着,就可以利用空闲带宽下个美剧啥 ...
随机推荐
- [Asp.net 5] Logging-日志系统的基本架构(上)
本节主要介绍解决方案中的Microsoft.Framework.Logging.Abstractions.Microsoft.Framework.Logging俩个工程. 这俩个工程中所有类的关系如下 ...
- C# .NET Socket封装
Socket封装,支持多客户端,支持大文件传输,支持多线程并发,对较大的Socket包进行分块传输. 封装所要达到的效果,是可以像下面这样使用Socket和服务端通信,调用服务端的方法,让你在使用So ...
- 基于CkEditor实现.net在线开发之路(5)列表页面开发
这章主要讲解利用控件开发列表页面,我们先从最简单的列表页面开始讲解,这个列表只有一个列表展示.具体开发步骤请看下面动态图 由上动态图可以看出,开发一个简单的列表只有两步, 第一步:拖拽查询控件,设置好 ...
- oracle函数大全(转载)
F.1字符函数--返回字符值 这些函数全都接收的是字符族类型的参数(CHR除外)并且返回字符值.除了特别说明的之外,这些函数大部分返回VARCHAR2类型的数值.字符函数的返回类型所受的限制和基本数据 ...
- Cats(4)- 叠加Free程序运算结果,Stacking monadic result types
在前面的几篇关于Free编程的讨论示范中我们均使用了基础类型的运算结果.但在实际应用中因为需要考虑运算中出现异常的情况,常常会需要到更高阶复杂的运算结果类型如Option.Xor等.因为Monad无法 ...
- BaseAdapter的抽取
为了更方便高效的使用BaseAdapter,特意抽取了一下,下面是简单的结构图: 需要4个类: [MyBaseAdapter3]: public abstract class MyBaseAdapte ...
- 设计模式-观察者模式(Observer Model)
文 / vincentzh 原文连接:http://www.cnblogs.com/vincentzh/p/6031844.html LZ刚刚开始心热的开启了博客之路,想着记点流水账,可帝都的天都冷成 ...
- jquery图片播放切换插件
点击这里查看效果可自定义数字样式和左右点击按钮 这个更好:移入按钮切换版本 更多图片轮播 以下是HTML文件代码: <!DOCTYPE html PUBLIC "-//W3C//DTD ...
- js 强转规范解读
js的强转是我们很容易遇到坑的一个地方 比如 == 会产生很有意思的事情(使用===还是最佳实践的) 或者+new Date()一个当前的数字时间戳 这里面都涉及到强转 下面分享下学习强转的过程 ...
- [deviceone开发]-多种样式下拉菜单demo
一.简介 该demo主要展示了3种下拉菜单. 一.仿QQ弹出菜单 主要实现原理是通过add一个ui,然后通过点击事件控制其visible属性来显示或者隐藏. 二.组合下拉菜单 主要用到的控件是do_A ...