如果您的客户,托pipe服务和DNS服务在澳大利亚,特别是在最糟糕的典型情况下(域没有caching在客户的任何本地DNS中继中),使用.com.au域而不是.com有速度优势吗? 假设两个域最终都指向相同的名称服务器。
我知道这主要是学术性的,因为我们正在谈论一个DNS查找,最多只需要几百毫秒,而且只会在会议开始时才会有意义。 我只是好奇。
我知道一个未经caching的.com查询将涉及咨询至less一个?.gtld-servers.net. 服务器和未caching的.com.au将涉及咨询至less一个?.au. 服务器。
现在,我想我需要知道的是
?.gtld-servers.net. 使用Anycast技术的服务器将在澳大利亚拥有本地完全权威的节点,使其与澳大利亚人一样快速?.au. 并避免200毫秒的海外延迟,还是部分或全部只在美国或北半球托pipe? 我的初步研究表明答案是肯定的。 使用dig <domain> +trace我一直在注意到相关顶级名称服务器从下一步返回名称服务器的时间(在大多数情况下,返回ns1.someisp.com和ns2.someisp.com的步骤)。
虽然.au域名和.com域名的查询数量惊人,但似乎涉及往返美国的域名服务器,而.com域名比.au域名更多。
…
好吧,我已经做了更多的研究,我想我也可以报告结果。
所有DNS查询都是从根区域开始的,尽pipe根区域的查询不太可能查询根区域服务器,因为它几乎总是被caching的(这是一个小区域,只能parsing名称“com “,”org“,”au“等等。根域名服务器在澳大利亚有相当不错的存在(我想大约有四分之三的澳大利亚有一个节点),但我们可能不需要担心这一点。
然后,DNS查询将查询顶级域服务器。 对于一个未知的域名,这不会被caching,所以这个步骤对于解决某个问题的速度很重要。
在.com和.net域名的13个顶级域名(TLD)服务器中,其中1个将从澳大利亚回复(很可能是因为它使用了任播式地址并且有一个澳大利亚节点)。 在为一个未知的.com域名尝试一个随机的名称服务器时,有1/13的机会很快就会返回(我的意思是<25ms的澳大利亚人,而190-280ms是典型的往返美国)。
.au域名的12个TLD服务器中,有4个将从澳大利亚回复。 尝试一个随机名称服务器为未知。*。au域有一个4/12(或1/3)的机会,它会很快返回。 仅供参考,其中两个答复在距离我testing的悉尼位置不到5毫秒的地方。
在.org域名的6个顶级域名服务器中,有1个将从澳大利亚东海岸回复,另外1个将会在距离55ms以外的地方(这可能意味着新加坡)回复,所以我们会给那半点。 一旦尝试了一个随机的名称服务器为一个未知的.org域有一个1.5 / 6(或1/4)的机会,它会很快返回。
testing我没有时间来解决.au和.org的支持:未caching域的返回时间不一样,因为testing的DNS服务器随机select了域名服务器。 但是.au域名的查询平均为203ms (12次审判) ,. com域名的平均时间为278ms (12次审判)。 正如我在下面讨论的那样,当使用繁忙的DNS服务器(一个caching良好的服务器)时,这可能会变得更快 。
一个繁忙的recursionDNS服务器像BIND最近的副本一样运行,会caching各种名字服务器的RTT(回程时间),并且会优先使用之前返回的速度。 这是一个好消息,但要做到这一点,它必须是一个相当大的stream量DNS服务器。 服务器的RTT信息会随着时间的推移而衰减,并在30分钟之前或者对更快的服务器的一定数量的查询完成时被丢弃。 为了“引导”这个RTTcaching,需要几十个或几百个针对不同域的查询(以便每个?.gtld-servers.net名称服务器,每个.au名称服务器至less一次)。 因此,为了保持它的准备,每半小时需要几十或几百个查询。
一个典型的一对大型ISP的recursionDNS服务器应该做的很好。
从TLD服务器获得结果还不够,只是将您指向域名自己的域名服务器。 那么你也必须查询这些。 如果在TLD服务器上没有胶水logging(例如,如果您的域是example.com,而您的域名服务器是ns?。example。org),那么这就需要全新的DNS查询再次为名称服务器地址。
当我最初做这个testing的时候,我感到惊讶的是有多less.au名字服务器在> 190ms的时候回复了(表明他们几乎可以肯定是在美国)。