如何读取和解释 RFC(征求意见稿)中的数据包格式?

如何读取和解释 RFC(征求意见稿)中的数据包格式?

很多时候,当我阅读征求意见文档时,我总是看到协议的数据包格式部分,如下所示。我的问题是数字和不同的符号 (+-|) 代表什么?

  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|
                     +-+-+-+-+-+-+-+-+

位的意义

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

相关内容