1

我在 c# 中实现了一个 DNS(实际上是多播 DNS)。

我只想知道我是否必须用左侧的 LSB 或左侧的 MSB 对我的 uint/int/ushort/... 进行编码。在全球范围内,我怎么能知道这一点?其中之一是标准?

因为我在 IETF 描述中没有找到任何内容。我发现了很多东西(每个标题字段长度,位置),但我没有找到这个。

谢谢!

4

1 回答 1

2

答案在 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|
+-+-+-+-+-+-+-+-+

类似地,每当一个多字节字段表示一个数字量时,整个字段的最左边的位是最高有效位。当传输多字节数量时,首先传输最重要的八位字节。

于 2013-02-14T15:01:43.133 回答