Victory Wang Asked: 2023-04-21 11:36:36 +0800 CST2023-04-21 11:36:36 +0800 CST 2023-04-21 11:36:36 +0800 CST 对 NetBIOS 名称执行一级编码的原因是什么? 772 参考:RFC 1001 简单来说,就是将每个字符根据其ASCII值拆分成两部分,然后将每一部分加到A(0x41)中,组成两个新的字符。 比如字符W对应0x57,拆分为0x5和0x7。然后将每个部分添加到 0x41,得到 0x46 和 0x48,分别是 F 和 H。 尽管此编码过程旨在与 DNS 压缩结合使用,但它仍然会导致整体消息长度变长(从 16 字节到 32 字节)。 那么,为什么在这种情况下需要一级编码? netbios 1 个回答 Voted Best Answer user1686 2023-04-21T13:29:31+08:002023-04-21T13:29:31+08:00 看来是为了保持与DNS软件的兼容性。正如规范所说,NetBIOS 名称总是用 NUL 填充到 16 个字节,并且它们的最后一个字节用于指示名称类型(即不总是 ASCII 字符)。尽管作为协议的 DNS可以支持包含 NUL 的标签(它使用长度值编码),但用 C 和类似语言编写的客户端和服务器可能会在尝试解决问题时遇到问题,例如,因为它们通常期望以 NUL 结尾的Example PC\0\0\0\x03.example.com.字符串作为输入。
看来是为了保持与DNS软件的兼容性。正如规范所说,NetBIOS 名称总是用 NUL 填充到 16 个字节,并且它们的最后一个字节用于指示名称类型(即不总是 ASCII 字符)。尽管作为协议的 DNS可以支持包含 NUL 的标签(它使用长度值编码),但用 C 和类似语言编写的客户端和服务器可能会在尝试解决问题时遇到问题,例如,因为它们通常期望以 NUL 结尾的
Example PC\0\0\0\x03.example.com.
字符串作为输入。