发送DNS数据:首先是MSB还是LSB?

时间:2013-02-14 14:21:13

标签: dns protocols communication network-protocols endianness

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

我只想知道是否必须使用左边的LSB或左边的MSB编码我的uint / int / ushort / ....在全球范围内,我怎么知道这一点?其中一个是标准的吗?

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

谢谢!

1 个答案:

答案 0 :(得分: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|
+-+-+-+-+-+-+-+-+
     

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