【计算机网络】DNS域名解析

域名解析:将域名映射为IP地址的方法和过程

DNS的使用方法:

  1. 应用程序调用一个叫解析器(resolver)的库过程,把名字作为参数传递给这个过程(例如:gethostbyname()就是一个解析器)
  2. 解析器发送一个UDP分组给本地DNS服务器,它会负责查找该名字,然后将对应的IP地址返回给解析器
  3. 解析器返回结果给应用程序,然后应用程序即可开始工作了(封装,发送……)

域名解析:

  • 当一个解析器收到一个域名查询时,它将该查询传递给本地的一个域名服务器
  • 如果待查询的域名落在该名字服务器的管辖范围内,它将返回权威资源记录(一个权威资源记录(authoritative record)是指来自于管理该记录的权威机构,因此总是正确的,它和缓存的记录不同,后者可能是过期的)
  • 如果被请求的域名是远程的,且本地没有关于它的信息,那么本地名字服务器向根域服务器发送一条查询此域的消息

域名解析的种类1:递归查询

主机向本地域名服务器查询一般都是采用递归查询

域名解析的种类2:迭代查询 

本地域名服务器向根域名服务器查询通常是采用迭代查询

一次完整的解析例子

  1. 有一台主机想要访问域名y.abc.com,但是它不知道它的IP地址无法完成封装,所以它首先要查询这个域名对应的IP地址
  2. 假如所有的服务器都没有缓存,它向本地域名服务器去发出查询的请求
  3. 本地域名服务器发现y.abc.com不是自己管辖的域名,无法直接给出答案,所以它向根域服务器去求救
  4. 根域服务器也没有y.abc.com的记录,但是它知道.com顶级域名服务器可能会知道,并且它自己有所有顶级域名的资源记录,于是它告诉本地域名服务器DNS.com的IP地址
  5. .com域名服务器也没有答案,但是它知道abc.com域名服务器可能知道且它有dns.abc.com的IP地址,于是它告诉本地域名服务器转向dns.abc.com进行查询
  6. y.abc.com如果是个合法的域名,它的信息一定存储在abc.com域名服务的数据库中

DNS消息传递

DNS消息采用UDP数据段来承载

有两种情况例外:

  1. UDP的报文超过了512个字节的时候,那么首次请求响应返回参数TC置位,当它再次地请求就需要建立TCP的连接,将数据应答分段来发送
  2. 主从域名服务器之间的数据更新同步

 

参考原文:https://blog.csdn.net/Jaihk662/article/details/80512364?utm_source=copy 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值