数据包字节中的点字符是如何表示的?
How is the dot character represented within the bytes of a packet?
如果我们用 wireshark 捕获一个 DNS 数据包,我们可以在它的字节中看到域名,在这种情况下 tools.kali.org
:
十六进制的字节是746f6f6c73046b616c69036f726700
,我们可以用ascii table检查74
如何对应字符't',6f
到'o' 等等。当我们到达点字符时,问题就来了,它应该用 2e
以十六进制表示,但是,在第一次出现时用 04
表示,在第二次出现时用 03
表示。
为什么会发生这种情况,如果它们是不同的值,wireshark 如何知道它必须代表一个点?
点未表示。点是文本表示,用于分隔标签,因此它们不会出现在数据包中。
Each label is represented as a one octet length field followed by that
number of octets.
—IETF RFC 1035 DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION
tools 有 5 个八位字节(字节),kali 有 4 个,org 有 3 个。它们只是偶然的序列。
如果我们用 wireshark 捕获一个 DNS 数据包,我们可以在它的字节中看到域名,在这种情况下 tools.kali.org
:
十六进制的字节是746f6f6c73046b616c69036f726700
,我们可以用ascii table检查74
如何对应字符't',6f
到'o' 等等。当我们到达点字符时,问题就来了,它应该用 2e
以十六进制表示,但是,在第一次出现时用 04
表示,在第二次出现时用 03
表示。
为什么会发生这种情况,如果它们是不同的值,wireshark 如何知道它必须代表一个点?
点未表示。点是文本表示,用于分隔标签,因此它们不会出现在数据包中。
Each label is represented as a one octet length field followed by that number of octets.
—IETF RFC 1035 DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION
tools 有 5 个八位字节(字节),kali 有 4 个,org 有 3 个。它们只是偶然的序列。