递增 1 模 256
increment by one modulo 256
我正在尝试发送数据包。我已经建立了可靠的通信。我从客户端收到了序列号 0x00。我被告知将该序列号增加一个模数 256 并在我的下一个序列 API header 中发送它。我对以 1 模 256 递增的含义感到困惑。
简单恢复,每次都要发送API header :
- 增加接收到的序列号。
- 如果序列号为256,则将其重置为0。
- 将生成的序列号与您的下一个序列号一起发送 API header.
解释自增1模256的确切含义:
这意味着预期的序列号应该是 ( received sequence number from the client
+ 1 ) 模 256。如果您考虑数学,这意味着您得到的序列号应该始终是 0 到 255 之间的值,因为任何整数的模 256 只能是那个(对于 -128 和 +127 之间的有符号整数,模运算将给出相同的二进制结果,无论您认为整数有符号还是无符号)。所以每次序列到达256,都是从0重新开始:
Client sequence number
You send
0
1
1
2
..
..
254
255
255
0
0
1
..
..
如你所说:
I received a sequence number of 0x00
表示接收到的序列号是一个字节,因此只能是0到255之间的正整数(或者-128到+127之间的有符号整数,但是模运算得到的二进制结果是一样的,无论你认为整数有符号或无符号)。如果接收到的序列号不仅仅是一个字节,那么它可以是所提供格式范围内的任何整数。在这种情况下,您仍然必须应用所需的公式。带有单词类型客户端序列号的示例:
Client sequence number
You send
0
1
1
2
..
..
255
0
256
1
257
2
..
..
510
255
511
0
512
1
..
..
4336
241
..
..
I'm told to increment that sequence number by one modulo 256
表示以 1 递增并对结果应用模 256 以获得您的序列号。
我正在尝试发送数据包。我已经建立了可靠的通信。我从客户端收到了序列号 0x00。我被告知将该序列号增加一个模数 256 并在我的下一个序列 API header 中发送它。我对以 1 模 256 递增的含义感到困惑。
简单恢复,每次都要发送API header :
- 增加接收到的序列号。
- 如果序列号为256,则将其重置为0。
- 将生成的序列号与您的下一个序列号一起发送 API header.
解释自增1模256的确切含义:
这意味着预期的序列号应该是 ( received sequence number from the client
+ 1 ) 模 256。如果您考虑数学,这意味着您得到的序列号应该始终是 0 到 255 之间的值,因为任何整数的模 256 只能是那个(对于 -128 和 +127 之间的有符号整数,模运算将给出相同的二进制结果,无论您认为整数有符号还是无符号)。所以每次序列到达256,都是从0重新开始:
Client sequence number | You send |
---|---|
0 | 1 |
1 | 2 |
.. | .. |
254 | 255 |
255 | 0 |
0 | 1 |
.. | .. |
如你所说:
I received a sequence number of 0x00
表示接收到的序列号是一个字节,因此只能是0到255之间的正整数(或者-128到+127之间的有符号整数,但是模运算得到的二进制结果是一样的,无论你认为整数有符号或无符号)。如果接收到的序列号不仅仅是一个字节,那么它可以是所提供格式范围内的任何整数。在这种情况下,您仍然必须应用所需的公式。带有单词类型客户端序列号的示例:
Client sequence number | You send |
---|---|
0 | 1 |
1 | 2 |
.. | .. |
255 | 0 |
256 | 1 |
257 | 2 |
.. | .. |
510 | 255 |
511 | 0 |
512 | 1 |
.. | .. |
4336 | 241 |
.. | .. |
I'm told to increment that sequence number by one modulo 256
表示以 1 递增并对结果应用模 256 以获得您的序列号。