简介:
512字节可以容纳多少台根域名服务器?我们先来明确一下DNS响应报文的长度计算方式。DNS头部是固定的12字节。问题区段是1字节的根域0 + 2字节查询类型 + 2字节查询类一共是5字节。回答区段的每
我们先来明确一下DNS响应报文的长度计算方式。DNS头部是固定的12字节。问题区段是1字节的根域0 + 2字节查询类型 + 2字节查询类一共是5字节。回答区段的每个NS记录都会在额外信息区段添加对应的A记录(当时IPv6还没出现,所以不考虑AAAA记录)。NS记录为1字节根域0 + 2字节类型 + 2字节类 + 4字节TTL + 2字节资源数据长度 + 不定长度的根服务器域名,一共是11字节固定部分 + 不定长度数据。A记录是2字节的压缩标签(指向NS记录中的根服务器域名) + 10字节资源记录固定部分(类型、类、TTL、资源数据长度)+ 4字节IPv4地址,一共是16字节。
总结起来就是12 + 5 + 11n + 16n + 所有根服务器域名的数据标签的长度总和,得到结果为DNS响应报文总长度,n为根服务器数量。
事实上512字节曾经还无法容纳13台这么多,现在能容纳13台A-M根域名服务器已经是改进过的了。根域名服务器并不是一开始就有13台的,也并不是一开始就是使用a.root-servers.net.的形式的域名。
发表评论