这是我一直很好奇但从未问过的那些小事之一.
在Windows DNS服务器上,您可以启用DNS调试日志记录并观察数据包飞行.
该日志中的一行可能如下所示:
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)结构域(3)的COM(0)
取代这些时期的那些数字意味着什么?
解决方法
你的混淆有点混淆了这个问题,但是你的顶级域名肯定不是com或者它本来就是(3)com.
在DNS查询中,您请求的名称(QNAME)以“pascal”样式字符串格式表示:一个字节,表示字符串的长度,后跟多个字符.名称的每个级别都作为单独的字符串发送,而不是.字符,末尾发送一个空字符串(长度为0),因此查询十二通道.domain.com的地址.将是(12)十二(6)域(3)com(0).
从the 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.