要知道为什么只有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个。
- 本文固定链接: https://huaxiatt.com/post/6.html
- 转载请注明: admin 于 红色航投 发表