网络之DNS协议图解

版权声明:本文为博主原创文章,但部分内容来源自互联网,大家可以随意转载,点赞或留言均可! https://blog.csdn.net/csdn_kou/article/details/82930164

DNS是计算机域名系统 (Domain Name System)

  • 域名系统采用类似目录树的等级结构。

域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。

  • 域名服务器为客户机/服务器模式中的服务器方,它主要有两种形式:主服务器和转发服务器。

域名解析是将域名映射为IP地址的过程。

  • DNS是应用层协议,client端(一般指浏览器)构建DNS查询请求,依次被传输层,网络层,数据链路层等封装传送到达DNS服务器端,最终client端接收到DNS响应消息
  • DNS主要基于UDP运输层协议
    • 一次UDP名字服务器交换可以短到两个包:一个查询包、一个响应包。一次TCP交换则至少包含9个包:三次握手初始化TCP会话、一个查询包、一个响应包以及四次分手的包交换。
      考虑到效率原因,TCP连接的开销大得,故采用UDP作为DNS的运输层协议,这也将导致只有13个根域名服务器的结果。

小插曲,为什么只有13台根域名解析服务器?

  • 因为要UDP报文中包含所有的根服务器信息
  • 所以现在只能放13条地址在一个包里,也就是416字节,
  • 在IPV4下一个单独的包,解析后只能有512字节用来描述这些跟域名服务器。一个UDP数据包(512bit)必须包括所用跟服务的主机名和IP 。一个完整的IP 包括8 * 4 个字节 也就是 32 个。(11111111.11111111.11111111.11111111)
  • 那么IP占用是32 * 13 = 416 。十三台服务器的主机 是 A 到 M (13)其中每个字母占 7 个长度 ( A 表示 为 1000001)(M 表示为 1001101)总共长度为 7 * 13 = 91 。IP+主机名 = 507 所以一个UDP数据包只能放 13 个 这就是根服务器 目前只能有 13个而且主机名只是 A到M 命名的原因
  • 假设是14个 IP + 主机名 = 14 * 32 + 7 * 14 = 546。都已经超过UDP的报文长度了
  • 讲了一大堆理论的东西,真正的原因还是因为互联网这东西是美国兴起的,自然占据了主动权,所以目前中国没有根域名服务器!但是在2000年初,国家有了很多关于国家安全的措施。特此2018国庆,预祝我们祖国越来越昌盛!
  • 关于为什么中国没有根域名服务器的解析
    如有错误希望指正

域名的分层结构

在这里插入图片描述

DNS 查询的顺序

  1. 是否是本机
  2. 是否是缓存
  3. HOSTS文件查询
  4. DNS服务器查询

下面来个生动形象的例子

黑色粗线,表示域名的分层结构!
箭头表示访问的顺序
在这里插入图片描述

上面的图怎么一个用户,可以直接和根域名服务器有交互,这怎么和我们平时用的不一样呢?

一个局域网的图解:在这里插入图片描述

广域网WAN: 将远隔千里的计算机都连在一起;

在这里插入图片描述

那么天朝是怎么做的?

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/csdn_kou/article/details/82930164