Eph*_*ral 1 domain-name-system rfc
NAME 字段在 RFC 1035 第 4.1.3 节中没有详细说明。
我想(以编程方式)了解 ANSWER 消息类型的此字段,并为此搜索了这些资源(数据表)。
我遵循了:
我错过了什么吗?
伪代码:
题:
byte[]{
0x00,0x00,
0x01,0x00,
0x00,0x02,
0x00,0x00,
0x00,0x00,
0x00,0x00,
0x03,0x77,0x77,0x77,
0x12,0x74,0x68,0x65,0x5f,0x70,0x61,0x63,0x6b,0x65,0x74,0x67,0x65,0x65,0x6b,
0x03,0x63,0x6f,0x6d,
0x00,
0x00,0x01,
0x00,0x01,
0x13,0x74,0x74,0x68,0x65,0x5f,0x70,0x61,0x63,0x6b,0x65,0x74,0x67,0x65,0x65,0x6b,
0x03,0x63,0x6f,0x6d,
0x00,
0x00,0x01,
0x00,0x01
}
Run Code Online (Sandbox Code Playgroud)
回答:
byte[]{
0x00,0x00,
0x81,0x80,
0x00,0x02,
0x00,0x01,
0x00,0x00,
0x00,0x00,
0x03,0x77,0x77,0x77,
0x12,0x74,0x68,0x65,0x5f,0x70,0x61,0x63,0x6b,0x65,0x74,0x67,0x65,0x65,0x6b,
0x03,0x63,0x6f,0x6d,
0x00,
0x00,0x01,
0x00,0x01,
0x13,0x74,0x74,0x68,0x65,0x5f,0x70,0x61,0x63,0x6b,0x65,0x74,0x67,0x65,0x65,0x6b,
0x03,0x63,0x6f,0x6d,
0x00,
0x00,0x01,
0x00,0x01,
0xC0,0x0C, <----- answer start here , i want to understand this value
0x00,0x00,
0x00,0x00,0x06,0xcf,
0x00,0x04,
0x07,0x00,0x00,0x01
Run Code Online (Sandbox Code Playgroud)
DNS 答案部分中的 NAME 部分的格式与 DNS 问题部分的 QNAME 部分完全相同。
表示为标签序列的域名,其中每个标签由一个长度的八位字节和该数量的八位字节组成。域名以根的空标签的零长度八位字节结束。请注意,该字段可能是奇数个八位字节;不使用填充。
它也受第 4.1.4 节中的压缩方案的约束,因此在典型的 DNS 响应中,您最有可能在问题部分看到全名,并在答案部分看到指向它的指针。
您在问题中明确指出的部分是第 4.1.4 节中的这些压缩值之一。高两位都设置为1,值的其余部分指向响应中引用的字节。在这种情况下,字节 12 (0x00c) 似乎是“www.the_nacketgeek.com”(这是问题部分中的 QNAME)。