深入DNS
什么是DNS?
我说前面说过http如何发送请求。这里的第一步就是将域名变为ip地址
如何将域名变为ip地址我们就得用到域名解析(DNS)。
如何进行域名解析的?
第一步:在浏览器的url里输入域名,然后浏览器会去自身缓存中检查有有没有这个域名对应的ip地址。如果有就获得了Ip地址。还有域名和ip都是可以变化的,所以缓存中的这个存放的时间无需太长和太短。
第二步:如果用户的浏览器缓存中没有,浏览器会找操作系统是否有对应的ip。
第三步:如果还有没找到,就会真正的请求域名服务器来解析域名
第四步:先去找本地的域名解析服务器(LDNS)
第五步:如果本地没有就去root DNS server(根域名服务器)
第六步:根域名服务器返回LDNS一个查询域的主域名服务器(gTLD server)地址、这个gTLD是国际顶级域名服务器。(gTLD)在全球只有13个左右。
第七步:这样LDNS就可以向gTLD服务器发请求。
第八步:gTLD服务器会解析这域名得到Ip地址和一个TTL值。
第九步:然后把这一结果一次保存在他们下级的服务器中。
第十步:解析的结果反给用户,本地还保留。
所以通过上面的过程我们应该明白一点。这是一个逐级提交请求的过程。而且只要第一次解析成功了,以后就不用这么麻烦了。可以直接从本地获取解析的Ip。当然要保证ip地址和缓存中没有过期。而且为了防止ip地址改变,所以我们定期会对缓存进行清理。
这就是我理解的DNS。
深入DNS的更多相关文章
- 6.DNS公司PC访问外网的设置 + 主DNS服务器和辅助DNS服务器的配置
网站部署之~Windows Server | 本地部署 http://www.cnblogs.com/dunitian/p/4822808.html#iis DNS服务器部署不清楚的可以看上一篇:ht ...
- Liunx下配置DNS服务
当Ping 主机名时可以映射出该主机的IP地址,反之亦然.配置并指定DNS服务器可以快速部署集群,不需要每台主机都去修改HOSTS文件即可实现IP与主机名的相互解析.而在Linux下的DNS是用bin ...
- ★Kali信息收集~4.DNS系列
★.1host:DNS信息 参数: 一般情况下,host查找的是A,AAAA,和MX的记录 案例: DNS服务器查询 host -t ns 域名 A记录和MX记录查询 host 域名(host - ...
- Node.js:DNS模块的使用
Nodejs的DNS模块包涵有关DNS查询和操作的方法,下面介绍该模块的基本用法以及实现一个DNS查询小工具. 1.获取DNS服务器地址 使用getServers方法,该方法返回一个IP地址组成的数组 ...
- Java DNS查询内部实现
源码分析 在Java中,DNS相关的操作都是通过通过InetAddress提供的API实现的.比如查询域名对应的IP地址: String dottedQuadIpAddress = InetAddre ...
- DNS报文格式(RFC1035)
一.域名和资源记录的定义 1.Name space definitions 2.资源记录定义(RR definitions) 2.1 格式 后面分析报文的时候详细解释. ...
- DNS原理及其解析过程 精彩剖析
本文章转自下面:http://369369.blog.51cto.com/319630/812889 DNS原理及其解析过程 精彩剖析 网络通讯大部分是基于TCP/IP的,而TCP/IP是基于IP地址 ...
- CentOS7 查看IP、Gateway、DNS、Hostname
1.查看IP# ip addr 2.查看路由# ip route 3.查看DNS# cat /etc/resolv.conf 4.查看主机名# hostname
- linux查看本机IP、gateway、DNS
IP: ifconfig gateway:[root@localhost ~]# netstat -rnKernel IP routing tableDestination Gatew ...
- Centos6.2设置静态ip和dns
参考了如下文章:https://gist.github.com/fernandoaleman/2172388http://www.lifelinux.com/how-to-configure-stat ...
随机推荐
- Vim实现批量注释的方法
调试代码的时候,免不了要批量注释/取消代码注释,很多IDE都有快捷键将你选中的代码块批量注释/取消注释的功能,那么在Vim里面如何完成这个功能呢? 方法一 块选择模式 批量注释: Ctrl + v 进 ...
- IOS中tableView每组的头部控件、通过tableView的代理方法控制某一行的cell能否达到高亮选中状态
一.tableView每组的头部控件 1.控件宽度默认就是tableView的宽度 2.控件高度由下面的代理方法决定 - (CGFloat)tableView:(UITableView *)table ...
- 纯CSS3大转盘抽奖(响应式、可配置)
源于前段时候微信小程序最初火爆公测时段,把以前用 Canvas 实现的大转盘抽奖移植成微信小程序,无奈当时小程序对 Canvas 支持不够完善,只好降低用 CSS3 实现.虽然比不上 Canvas 绘 ...
- MAC自动备份数据到服务器
需求:公司内部使用自己电脑,回家需要使用另一台电脑,所以想时时备份公司用的电脑中文件.代码到服务器上,回家就可以用啦 1 无密码使用scp (1)第一步:生成密匙对,我用的是rsa的密钥.使用命令 & ...
- yaf框架流程一
资料参考: Yaf是一个C语言编写的PHP框架,以php扩展的形式. 是 laruence(鸟哥) 的作品 laruence 是PHP 开发组成员, PECL 开发者. Yaf, Taint等Pec ...
- swun 1766 我的悲剧不可能那么好数
解题思路: 一向提交特别慎重的我,这题竟然PE了5发左右,放了几天,再回来写,直接1A, 相当的自豪,而且是最优解题者.这题千万要注意,化繁为简,文章只包括大小 写字母和数字,还有空行. #inc ...
- 使用svcutil.exe 生成服务的代码
@echo offcall "c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"svcuti ...
- 【转】 ios开发证书CER文件、P12文件,mobileprovition许可文件的用途
钥吻合之后.我们一般会给证书做个备份,这个备份就是个P12文件. 这个p12文件很好用,它不仅包含CER的信息,还有私钥信息,即: P12备份文件 = CER文件 + 私钥:所以有了这个p12就再也 ...
- C++静态成员总结(转)
类中的静态成员真是个让人爱恨交加的特性.我决定好好总结一下静态类成员的知识点,以便自己在以后面试中,在此类问题上不在被动. 静态类成员包括静态数据成员和静态函数成员两部分. 一 静态数据成员: 类体中 ...
- Twitter Storm: storm的一些常见模式
这篇文章列举出了storm topology里面的一些常见模式: 流聚合(stream join) 批处理(Batching) BasicBolt 内存内缓存 + fields grouping 组合 ...