网友提问:
为什么域名根服务器只能有13台呢?
优质回答:
为什么域名根服务器只能有 13 台呢?
其实对于一个小白,这个问题核心并不是 13 台,而是,域名根服务器什么,查询的过程是怎么样呢?
不算太久以前的基础知识
DNS 是一种分层结构,在整个互联网中组成一个树状系统,顶层是系统的根域名,下层为 TLD 以及二级域名,叶子就构成了所谓的 FQDN ( Fully Qualified Domain Names ),根域名通常使用 “.” 来表示,其实际上也是由域名组成,全世界目前有 13 组域名根节点,由少数几个国家进行管理,而国内仅有几台根节点镜像。
为什么是 13,还重要吗?
是不是感觉没那么重要了呢。
是这样的,在 DNS 设计之初,在龟速的网络下,当然是希望做Prime Query查Root Servers性价比达到最高啦。
DNS 是用 UDP 传数据的,而设计的时候规定 DNS 查询时,一个包的能放的数据最多是 512 Bytes,为什么是 512 Bytes,为什么域名根服务器只能有 13 台呢? – 车小胖的回答 – 知乎 做了完整的回答,摘录一点如下:
Internet 大多数网络接口 MTU>512,即使 DNS 报文 + UDP+ IP= 512+8+20=540,这个大小几乎可以在 Internet 上畅通无阻,而无需 IP 分片。
为何 IP 分片不好? 一个 UDP 报文如果因为 size > MTU,则会被 IP 层分成两片多片,但是只有一片有端口号,由于其它分片没有端口号,能否通过防火墙则完全看防火墙的脸色,所以对于能否通信成功是一个未知数。
如果防火墙网开一面,不检查端口号,分片可以全部通行,到目的地再组装到一起,IP 层提交给 UDP/DNS,一点问题没有。但是防火墙的安全功能大打折扣,如何阻止非法的外来攻击包?
如果防火墙严格检查端口号,则没有端口号的分片则统统丢弃,造成通信障碍。
所以选择一个合适的 UDP size 至关重要,避免分片。
有同学说,对于 MTU <512 物理接口的 DNS 如何处理?这个其实好办,这些只是接入层接口,用于接入终端用户,用户的 DNS 请求是请求其上一级 DNS 服务器做递归查询(告诉我最终查询结果)
接着就是13这个数字的果了。
为了做Prime Query查Root Servers性价比达到最高,肯定是一个包能放多少东西就塞多少东西,所以把所有Root Servers的结果都塞进去,刚好能塞 14 个,不全用就塞 13 个吧,留下一点东西以备后患,留待扩展。
其他网友观点
那是美国自己归定的,假如国内自己建个自己的互联网,不允许他国接入,那么域名服务器多少个都可以。而互联网起源以美国,所以人家要控制了。所以现在科学家们在研究怎么使互联网不被国家控制,像比特币一样,为分部式互联机制。
其他网友观点
根域名服务器只有13台的说法是怎么来的呢?这是源于DNS协议在不使用EDNS0和TCP协议时,通过UDP协议传输的DNS消息最大长度需要限制在512字节(不包括IP头部、UDP头部),超出部分要被截断。有了最大长度限制后,一个UDP协议传输的DNS响应能够返回的资源记录数量就是有限的。
512字节的限制是在RFC 1035中规定的,为了更好的性能我们需要将响应限制在一个响应报文中完成,也就是只有512字节可以用了。
当我们查询根域(.)的NS记录时,512字节只够返回包含13个由A-M命名的根域名服务器的NS记录和A记录的响应。NS记录在回答区段中,A记录在额外信息区段中,A记录用于帮助你接下来向根域名服务器进一步查询。
其他网友观点
这个东西没什么为什么,只是当初设计的时候就没考虑什么太大的扩展性,就像传闻很久的比尔盖茨的640K内存那样,什么技术都有局限性,只是有些技术可以快速迭代更新,有些技术不行。互联网传输模型就属于更新迭代慢的技术代表,ipv4在20年前就知道问题所在了,但现在全球的ipv6普及度也不是很高。国家大力推广ipv6其实对运营商来说,很多核心是设备都不一定支持,然后更新这些设备是很困难的。
其他网友观点
13台,130台,你倒是用起来啊。说了很多年了,服务器都被放成老爷机了。
以上内容就是小编分享的关于为什么域名根服务器只能有13台呢?.jpg”/>