上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
3.2 IPv4根服务器
3.2.1 IPv4根服务器数量
DNS协议使用了端口上的UDP和TCP协议,UDP通常用于查询和响应,TCP用于主服务器和从服务器之间的传送。由于在所有UDP查询和响应中能保证正常工作的最大长度是512字节,字节长度限制了根服务器的数量和名字。
要让所有的根服务器数据能包含在一个512字节的UDP包中,IPv4根服务器只能限制在13个,而且每个服务器要使用字母表中的单个字母命名,这也是IPv4根服务器是从A~M命名的原因。
DNS协议是应用层协议,大多数情况下依赖传输层的UDP协议进行数据的传输(仅在重试的情况下可能使用TCP协议)。根据RFC791规定,为保证UDP数据包传输成功率,尽量把数据包控制在512字节以使数据包不会被分片传输。
由于所有的根服务器的信息都要包含在一个DNS报文里面,所以报文的大小限制了根服务器的数量,除去UDP数据包自身包头占用的字节数,DNS数据包被设计为不超过512字节。
假设根域名有N组,计算数据包各部分字节占用的情况如下:数据包总长度为 12+5+31+15M+16N(通常情况 N 等于 M),再根据前述 DNS 大小限制不超过512字节的要求,可以得到N为14.968,不超过15组,再加上设计的时候考虑到预留一些缓冲(buffer),于是就有了现在全球13组(个)根域名服务器的结果。
从理论上说,任何形式的标准域名要想实现被解析,按照技术流程,都必须经过全球“层级式”域名解析体系的工作才能完成。