很多时候,当我阅读征求意见文档时,我总是看到协议的数据包格式部分,如下所示。我的问题是数字和不同的符号 (+-|) 代表什么?
RADIUS 数据格式的摘要如下所示。字段包括 从左到右传输。 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 代码 | 标识符 | 长度 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | 验证器 | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 属性 ... +-+-+-+-+-+-+-+-+-+-+-+-+-
谢谢
答案1
这些数字是位数,从最高有效位开始。位是最高有效位似乎违反直觉0
,但它是第一个传输的位。网络字节(和位)顺序是大端序(最高有效位优先)。
其它符号表示个别位,一种不完整的网格。
有一些 RFC 对此进行了解释。例如,RFC 1700,分配号码:
数据符号
互联网协议文档中的惯例是用十进制表示数字,并以“大端”顺序表示数据[科恩] 也就是说,字段是从左到右描述的,最重要的八位字节在左边,而最低重要的八位字节在右边。
本文档中描述的报头和数据传输顺序以八位字节为单位。每当图表显示一组八位字节时,这些八位字节的传输顺序就是它们在英语中的正常读取顺序。例如,在下图中,八位字节按其编号顺序传输。
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1 | 2 | 3 | 4 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 5 | 6 | 7 | 8 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 9 | 10 | 11 | 12 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
字节的传输顺序
每当八位字节表示数值时,图中最左边的位就是高位或最高有效位。也就是说,标记为 0 的位是最高有效位。例如,下图表示值 170(十进制)。
0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+ |1 0 1 0 1 0 1 0| +-+-+-+-+-+-+-+-+
位的意义
类似地,当多八位字节字段表示数值时,整个字段的最左边位是最高有效位。传输多八位字节数量时,首先传输最高有效八位字节。