答案1
这名称的线格式在 DNS 协议中是(举例来说):
该名称www.example.com.
分为四个标签:
“www”、“example”、“com”和“”(末尾总有一个空标签,代表树的根)。
每个标签都用一个前缀进行编码,该前缀指定了标签的长度(单字节,前两位保留,得到一个六位整数),后面跟着标签的原始内容(与前缀指定的字节数一样多)。
上面的示例名称是(如果我们对不一定可读的字节值\x03www\x07example\x03com\x00
使用正常格式,则值为十六进制)。\xNN
当以有线格式读取名称时,您将从第一个字节开始,查看它指定下一个标签的长度,读取与该标签相同的字节数,重复此过程,直到到达代表树的根(和名称的末尾)的零长度标签。
然而,在一包中,也有可能压缩名称(通过参考以前的标签)。
除非目的是为了学习,否则你可能需要看看例如python 的而不是从零开始。