在我的Windows DNSdebugging日志中,括号中的数字是什么意思?

这是我一直很好奇但从未问过的那些小事情之一。

在Windows DNS服务器上,您可以启用DNSdebugging日志logging并观察数据包的飞行。

该日志中的一行可能如下所示:

6/5/2013 10:00:32 AM 0E70 PACKET 00000000033397A0 UDP Rcv 10.161.60.71 5b47 Q [0001 D NOERROR] A (12)somecomputer(6)domain(3)com(0) 

我感兴趣的部分是最后的实际查询名称:

(12)somecomputer(6)domain(3)com(0)

那些取代了这些时期的数字是什么意思?

你的迷惑混淆了这个问题,但是你的顶级域名绝对不是com或者它本来就是(3)com

在DNS查询中,所请求的名称( QNAME )以“pascal”风格的string格式表示:表示string长度的字节,后面跟着许多字符。 名称的每个级别都作为单独的string发送,而不是. 字符,最后发送一个空string(长度为0),因此查询twelveletter.domain.com.的地址twelveletter.domain.com. (12)twelveletter(6)domain(3)com(0)

从RFC的 4.1.2开始:

 QNAME a domain name represented as a sequence of labels, where each label consists of a length octet followed by that number of octets. The domain name terminates with the zero length octet for the null label of the root. Note that this field may be an odd number of octets; no padding is used.