欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~

本文由9527发表

根域名服务器是域名解析系统(DNS)中最为顶级的域名服务器,它们负责管理顶级域的权威域名服务器地址。作为互联网基础设施的重要部分,所有域名的解析操作均离不开它们。下面我们将从 DNS 协议实现的角度分析为什么全球只有13组根域名服务器。

13组根域名服务器的信息

其中,13组根域名服务器以英文字母 a 到 m 顺序命名,域名格式为“a~m.root-servers.net”,如“b.root-servers.net”。

DNS 数据包的大小限制

我们知道 DNS 协议是应用层协议,大多数情况下依赖传输层的 UDP 协议进行数据的传输(仅在重试的情况下可能使用 TCP 协议)。根据RFC 791规定,未保证 UDP 数据包传输成功率,尽量数据包控制在 571 字节以使数据包不会被分片传输。

除去 UDP 数据包自身包头占用的字节数,DNS 数据包被设计为不超过512字节。

DNS 协议格式

下面我们从根域名解析的返回数据包截图:

我们假设根域名由 N 组,计算数据包各部分字节占用的情况如下:

  • Header 部分占用12个字节,包括 Transaction ID (2字节),Flags (2字节),Questions (2字节),Answer RRs (2字节),Authority RRs (2字节),Additional RRs (2字节);
  • Question Section 部分占用5个字节,包括根标签(1字节),Class (2字节,基本取值都是IN),查询类型(2字节);
  • Answer Section 部分占用的字节数为所有记录字节数之和,每条记录包括根标签(1字节),TTL (4字节),Class (2字节,基本取值都是IN),查询类型(2字节),域名存储占用的字节数;因为域名在 DNS 解析协议当中按照长度(2字节)+数据的形式存储,其中数据部分是分段存储的,存储格式如下所示,所以第一条记录的域名存储占用22个字节,继而第一条记录总共占用31个字节;而从第二条记录开始,因为记录中出现的域名存在部分内容与第一条记录重复,即“root-servers.net”部分,这部分可以利用 DNS 指针压缩存储,只需要存储2个字节的指针,指向第一条记录出现的部分,而不需要存储实际的内容,所以第二条记录~N条记录占用的字节数分别为11+4=15个字节;

  • Additional Section 部分占用的字节数为所有记录字节数之和,每条记录包括域名,TTL (4字节),Class (2字节,基本取值都是IN),查询类型(2字节),IP 地址(2字节长度+4字节内容);因为 Additional Section 记录的域名都在 Answer Section 中出现过,所以这部分都可以利用 DNS 指针压缩存储,只需要存储2个字节的指针即可表示对应的域名,所以Additional Section 部分的记录占用的字节数为2+4+2+2+6=16个字节;

综上所述,数据包总长度为12+5+(31+(15(N-1))+16N,再根据前述 DNS 大小限制不超过512字节的要求,可以得 N 不超过15组,再加上早期设计的时候考虑到预留一些 buffer 于是就有了现在全球13组根域名服务器的结果。

此文已由作者授权腾讯云+社区发布,更多原文请点击

搜索关注公众号「云加社区」,第一时间获取技术干货,关注后回复1024 送你一份技术课程大礼包!

转载于:https://www.cnblogs.com/qcloud1001/p/10027849.html

轻知 | 为什么全球只有13组根域名服务器?相关推荐

  1. 13台根域名服务器的维护费用,根域名服务器只有13台吗

    之前为了做一个分享,查了很多DNS相关的信息, 发现绝大多数关于根域名服务器的数量的说法都是错的. 第一个说法是根域名服务器只有13台,首先就不止13台,现在实际上有一千多台.另一个说法是根域名只能有 ...

  2. Cell | 以色列Uri Gophna等描述全球RNA病毒组全景

    全球RNA病毒组的扩展揭示出新的进化分支 Expansion of the global RNA virome reveals diverse clades of bacteriophages Res ...

  3. 服务器设在国外的网站,全球70%的“根服务器”设在美国,为避免关网,中国行动在路上!...

    在当今信息爆炸的时代,人们总是被动地或主动地接收各种信息.同样,为了验证此信息的准确性和权威性,大多数人通常会在线检查它的真实性.而且,如果大家在输入计算机浏览器或移动浏览器后启动查询,则不可避免地将 ...

  4. 为什么根域名服务器只有 13 台?

    今天聊个有意思的话题. 世界上共有 13 个根域名服务器,其中主根域名服务器是在美国. 那美国有没有可能通过根域名服务器掐断中国的互联网呢? 在说结论之前,我们先来了解: DNS到底是怎么工作的? 为 ...

  5. 美国如果把根域名服务器封了,中国会从网络上消失?

    点击上方"码农突围",马上关注 这里是码农充电第一站,回复"666",获取一份专属大礼包 真爱,请设置"星标"或点个"在看&quo ...

  6. IP根域名服务器以及域名服务器对国家安全的真正意义。

    今天我们来聊聊IPv6的根域名服务器以及域名服务器对国家安全的真正意义. IPv6 去年,在中国发布<推进互联网协议第六版(IPv6)规模部署行动计划>之后,网络上又开始传播," ...

  7. 什么是根域名服务器?

    全球共有13台根逻辑域名服务器.这13台逻辑根域名服务器中名字分别为"A"至"M",真实的根服务器在2014年1月25日的数据为386台,分布于全球各大洲. 根 ...

  8. 根域名服务器都在国外,中国安全吗?安全

    一.前言 世界上共有 13 个根域名服务器,其中主根域名服务器是在米国. 那米国有没有可能通过根域名服务器掐断我国的互联网呢? 在说结论之前,我们先来了解: DNS到底是怎么工作的? 为什么根域名服务 ...

  9. 如果美国把根域名服务器封了,中国会从网络上消失吗?

    自从美国宣布"清洁网络"行动后,很多懂点网络的人,第一反应是,美国人会下手根域名服务器吗? 这种忧虑可不是一年两年了. 2014年6月24日的<人民日报>上引用专家发言 ...

最新文章

  1. 开发编程值得收藏的经典书籍 免费下载
  2. 075_JSON.parse()
  3. mysql锁的一些理解简书_MySQL锁系列之锁的种类和概念
  4. Java中super函数的用法
  5. German Companies
  6. JavaScriptDOM
  7. 窗体测试只能用于本地测试_爆料:微软 Win10X 将首先用于测试单屏笔记本
  8. 郁金香商业辅助教程 2016 笔记 6~10
  9. Redis 两种持久化方式的原理
  10. webpack编译流程漫谈
  11. linux怎么指定安装目录,Linux软件安装到指定目录方法
  12. c语言程序的框架以及内容
  13. 面试常考的7道智力题,再也不怕面试官刁难
  14. SOM网络(Kohonen自组织网络)学习第二篇
  15. 火狐下载文件名乱码问题
  16. 【第一组】第七次冲刺例会纪要
  17. 2022-2028全球与中国期权及期货交易平台市场现状及未来发展趋势
  18. OCIOS开发小技巧总结
  19. 【web安全】——XXE漏洞快速入门
  20. uniapp Modal自定义弹窗

热门文章

  1. datagridview 手动添加的行如何进行重载_【厚积薄发】如何规划UI图标图集
  2. layui导航栏页面滚动固定_网站建设页面导航如何降低用户寻找的时间
  3. mysql 读取properties_JDBC中使用Properties读取配置文件有什么用
  4. xampp 支持pdo mysql_在Windows上安装PHP PDO(xampp)
  5. mysql 数据记录导出_mysql如何导出600万条记录的数据表?
  6. 计算机二级考试开考多久能出来,【计算机二级】明天就要开考了,你们准备好了吗?...
  7. python中getopt函数_Python中getopt()函数的使用
  8. 阻塞式和非阻塞式udp传输_NIO非阻塞网络编程三大核心理念
  9. 深入jvm虚拟机第三版源码_深入JVM虚拟机,阿里架构师直言,这份文档真的是JVM最深解读...
  10. mysql linux改密码忘记了怎么办_linux上mysql改密码忘了怎么办?