应用层:DNS总结

基本概念:
域名和IP地址用于唯一标识某一台计算机或计算机组的位置(数据传输时)
人类可直接读取域名含义
机器可直接读取IP地址数串
DNS是将域名和IP地址相互映射的一个分布式数据库系统,由许多域名服务器(IP域名映射的数据库)
搭载域名系统的机器称之为域名服务器,域名服务器记录了IP地址与域名的映射。

实用角度:DNS系统是个黑箱,实现域名到IP地址的查找。 系统内部是各级服务器构成的 缓存-迭代查询二层结构。

三层缓存机制:

  1. 查找浏览器缓存(即DNS解析器缓存),是否缓存过此映射
  2. 查找操作系统缓存—本地hosts文件
  3. 查找本地DNS服务器缓存: 每个居民区,机构都有一台本地DNS服务器,由ISP提供(网络服务提供商如电信移动网通)。当主机与ISP相连时,ISP提供主机的IP地址。
    80%的查询在缓存层就完成了,不需要向DNS服务器系统发出查询

三层查询机制(DNS服务器体系)–在没有缓存的情况下,DNS解析器执行查询功能

  1. 根服务器
  2. 顶级域名服务器:如com,gov,cn
  3. 权威服务器:大公司/学校组织将自己的域名-IP地址映射添加进自己的权威DNS服务器中,也可以插入服务提供商的权威服务器中。 如baidu,google
    整体过程
    在这里插入图片描述
    迭代查询过程
    在这里插入图片描述

查询方式:
客户机与本地服务器进行递归查询,本地服务器与DNS服务器系统进行迭代查询。
递归:就是把一件事情交给别人,如果事情没有办完,哪怕已经办了很多,都不要把结果告诉我,我要的是你的最终结果,而不是中间结果;如果你没办完,请你找别人办完。 递归:一层层传递,回归最终结果。
迭代:我交给你一件事,你能办多少就告诉我你办了多少,然后剩下的事情就由我来办。 一代办一点事,一代一代的办完叫迭代。


消息记录:
格式- 4元组 (Name ,Value, Type, TTL)
1.A(Address)指定主机名(或域名)对应的IP地址记录 域名-IP地址 (baidu.com,202.123123, A)
2.NS(name server)记录是指定由哪个DNS服务器解析你的域名。 域名-你的权威服务器域名 (foo.com, dns.foo.com, NS)
3.MX记录 :MX(Mail Exchanger)邮件服务器别名 如: (f00.co, mail.bar.foo.com, MX)
4.CNAME:为域名添加别名,简化省略子域。 (foo.com, relay1.bar.foo.com, CNAME)
TTL:Time To Live ,生存时间,表示DNS记录在DNS服务器上的缓存时间,时间越长对于服务器的压力越小,时间越短表示服务器需要重新查询并生成缓存的频率越高,压力越大。
DNS报文—查询,响应模式


问题一:为何使用分布式而不使用集中式数据库记录映射关系?
集中式缺点:单点失败-总点崩溃全局崩溃,需要分节点
流量:访问数几十亿太多,需要分流
距离:设在美国,中国访问就需要光缆。 集中式不可伸缩。

问题二:为什么需要缓存机制?
减少查询流量,减少查询时间。
一个学校用一台代理服务器,各个PC机要获得的IP地址都通过代理服务器去访问域名查询体系,然后将查询过的缓存下来 –格式为 ip地址—域名
如-172.16.3.36 www.baidu.com
定期更新:定期会删除所有已存储的缓存,重新缓存。–预防IP-域名对应关系发生改变更新。

问题三:URL与域名的区别
URL包括域名,浏览器将接收到的url中抽取出域名字段,就是访问的主机名,比如http://www.baidu.com/,并将这个主机名传送给DNS应用的客户端。

问题四:如何注册域名
不需要知道服务器的IP地址, 服务器的IP地址存储在权威服务器里。 只需要知道服务器的域名,权威服务器的域名,权威服务器的IP地址。

问题五:DNS基于DUP建立连接?
DNS运行在UDP上,各级DNS服务器建立的是UDP连接。DNS虽然是应用层协议,但实质上是为其他应用层协议提供服务的, TCP三次握手太费时间,UDP只需要传输一条记录,(域名-ip)建立连接迅捷。

  1. 输入域名
  2. 本地服务器与DNS服务器系统(如根服务器)建立UDP连接
  3. DNS协议:发送查询报文,收到回复。(收到顶级域名服务器的IP地址)…重复建立UDP连接, DNS协议通信的迭代过程
  4. 得到最终目标服务器端IP地址,客户端找到目标IP地址
  5. 建立TCP连接
  6. 发送HTTP协议

在这里插入图片描述


完整过程例子:
在浏览器中敲下www.baidu.com后域名解析的过程
1.查找三级缓存
检查浏览器缓存中是否缓存过该域名对应的IP地址
注意:缓存不仅有大小限制,还有时间限制
如果浏览器缓存中没有找到IP,那么就继续查找本机系统是否缓存过IP(hosts文件)
本机上无法完成解析,DNS解析器就向本地域名解析服务器系统发出域名解析的请求,查找本地DNS服务器缓存
2.三级迭代查询
在这里插入图片描述
本地DNS域名解析器没有完成解析的话就向根域名服务器发起解析请求(根服务器IP地址“.“存储在本地服务器中)
根域名服务器将对应的顶级域名服务器的IP地址发送给本地域名服务器(com)
本地域名服务器向顶级域名服务器发送请求(请求格式, 头部消息行)
顶级域名服务器根据需要解析的域名找到该域名对应的权威(授权)域名服务器(baidu.com)
授权域名服务器返回Ip地址给本地服务器(202.192.21)
3.缓存查询结果
本地域名服务器缓存解析结果<缓存时间由TTL控制>–一般为2天
本地域名服务器将解析结果返回给用户,用户系统缓存IP地址

发布了54 篇原创文章 · 获赞 1 · 访问量 2759

猜你喜欢

转载自blog.csdn.net/weixin_44682507/article/details/103096659