gpt4 book ai didi

networking - 互联网 RFC 数据包图中的预期位(不是字节)顺序

转载 作者:行者123 更新时间:2023-12-01 00:37:18 27 4
gpt4 key购买 nike

我正在我的家庭有线网络上解析 ICMPv6 数据报,但在特定的 RFC 中找不到对位排序约定的明确提及。
多字节字段是网络顺序,但是一个字节内的位呢?
机器是字节可寻址的,但网络硬件将位序列化。在图表上,8 位字段“左侧”的一位最终位于无符号字节的哪一位(最高有效或最低)?这是每个 RFC,还是所有互联网 RFC 都一样?
示例读取多字节字段(Prf 字段)
假设我将数据包数据存储在一个名为 data 的变量中。 :

data, remote_peer = sock.recvfrom(1024) #pseudocode
而且我发现包含标志的特定字节(不是位):
flag_byte = data[some_offset] #pseudocode
试图解析这条消息, RFC4161 section 2.3 , 指定路由信息选项有一个名为 Prf 的 2 位标志。 .
   0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Prefix Length |Resvd|Prf|Resvd|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Route Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Prefix (Variable Length) |
. .
. .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
...
Prf (Route Preference)
2-bit signed integer. The Route Preference indicates
whether to prefer the router associated with this prefix
over others, when multiple identical prefixes (for
different routers) have been received. If the Reserved
(10) value is received, the Route Information Option MUST
be ignored.
用这个例子来表达我的问题, (flag_byte & 0x18) >> 3会给我这两个位。将 b & 0x10是符号位吗?我也有兴趣找出指定这是它应该的方式的标准。

最佳答案

正如先前评论中指出的(感谢 ron-maupin ),RFC1700指定消息(涵盖 Internet 协议(protocol))以左侧的最高有效位进行描述。

Whenever an octet represents a numeric quantity the left most bit in
the diagram is the high order or most significant bit. That is, the
bit labeled 0 is the most significant bit. For example, the following
diagram represents the value 170 (decimal).


0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+
|1 0 1 0 1 0 1 0|
+-+-+-+-+-+-+-+-+

Significance of Bits

Similarly, whenever a multi-octet field represents a numeric quantity
the left most bit of the whole field is the most significant bit.
RFC1700 被 RFC3232 取代,它将最新的协议(protocol)定义在线放在 iana.org/protocols .他们似乎保留了该符号(例如 RouterAdvertisementFlags )。
我假设这种重要性约定也适用于 n 位位字段(1 < n < 8),因此 2 位字段中的最左边位(例如 Prf )将是符号位。
应该由硬件对物理介质上的位进行反序列化,并将它们放置在字节可寻址计算机上一个字节内的正确位置。不同的物理层(物理以太网、wifi、同轴电缆、infiniband、光纤 channel )可能会在“线路”上以不同的顺序序列化位,但无论如何,在数据包级别以字节为单位的相应位置将是相同的。

关于networking - 互联网 RFC 数据包图中的预期位(不是字节)顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39969580/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com