我在 c# 中实现了一个 DNS(实际上是多播 DNS)。
我只想知道我是否必须用左侧的 LSB 或左侧的 MSB 对我的 uint/int/ushort/... 进行编码。在全球范围内,我怎么能知道这一点?其中之一是标准?
因为我在 IETF 描述中没有找到任何内容。我发现了很多东西(每个标题字段长度,位置),但我没有找到这个。
谢谢!
我在 c# 中实现了一个 DNS(实际上是多播 DNS)。
我只想知道我是否必须用左侧的 LSB 或左侧的 MSB 对我的 uint/int/ushort/... 进行编码。在全球范围内,我怎么能知道这一点?其中之一是标准?
因为我在 IETF 描述中没有找到任何内容。我发现了很多东西(每个标题字段长度,位置),但我没有找到这个。
谢谢!
答案在 RFC 1035(2.3.2. 数据传输顺序)
这是链接:http ://www.ietf.org/rfc/rfc1035.txt
而有趣的部分
2.3.2. 数据传输顺序
本文档中描述的报头和数据的传输顺序被解析到八位字节级别。每当图表显示一组八位字节时,这些八位位组的传输顺序就是用英语阅读它们的正常顺序。例如,在下图中,八位字节按编号顺序传输。
0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1 | 2 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 3 | 4 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 5 | 6 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
每当一个八位位组表示一个数字量时,图中最左边的位是高位或最高有效位。也就是说,标记为 0 的位是最高有效位。例如,下图表示值 170(十进制)。
0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+ |1 0 1 0 1 0 1 0| +-+-+-+-+-+-+-+-+
类似地,每当一个多字节字段表示一个数字量时,整个字段的最左边的位是最高有效位。当传输多字节数量时,首先传输最重要的八位字节。