为什么域名根服务器只能有13台呢?

原文转自知乎 郭无心 的回答:点击打开链接


要知道为什么只有13个根域名服务器,就要了解DNS(Domain Name System,域名系统)的整个原理才行。

DNS是 计算机域名系统 (Domain Name System 或Domain Name Service) 的缩写,它是由域名解析器和域名服务器组成的。域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。其中 域名必须对应一个IP地址,一个域名只能对应一个IP地址(比如访问一个域名不可能向两个ip地址请求),而IP地址不一定有域名且可以对应多个域名。域名系统采用类似目录树的等级结构。域名服务器为客户机/服务器模式中的服务器方,它主要有两种形式: 主服务器和转发服务器。将域名映射为IP地址的过程就称为“ 域名解析”。

①DNS是应用层协议,client端(一般指浏览器)构建DNS查询请求,依次被传输层,网络层,数据链路层等封装传送到达DNS服务器端,最终client端接收到DNS响应消息

②DNS主要基于UDP运输层协议,这里解释下为什么使用UDP(User Datagram Protocol)这样的无连接的,尽最大能力交付的不可靠数据连接,而不是使用TCP(Transmission Control Protocol 传输控制协议)这样的面向连接的可靠数据连接。

一次UDP名字服务器交换可以短到两个包:一个查询包、一个响应包。一次TCP交换则至少包含9个包:三次握手初始化TCP会话、一个查询包、一个响应包以及四次分手的包交换。

考虑到效率原因,TCP连接的开销大得,故采用UDP作为DNS的运输层协议,这也将导致只有13个根域名服务器的结果。


只会在UDP报文中表明有截断的时候使用TCP查询。

③为什么只有13个根域名服务器?等会再写

---------------------分割线-------------------------

原因似乎是UDP数据包512字节(为什么是512字节又是一个故事)限制了信息量,又因为要UDP报文中包含所有的根服务器信息(为什么?怎么包含的?)所以只能有13个,但是我查了很多资料,没有相关叙述。有大神知道求指导




作者:koo who

通常网页访问的申请都是由一个数据包完成的,而一个数据包的长度为256B字节,这就决定了一个数据包只能有13个块,这从根本上限制了根域名服务器的数量,也就是说根域名服务器只能有13个。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值