跳到主要内容

A2.1. Managing and Using the Anti-Replay Window (管理和使用防重放窗口)

A2.1. Managing and Using the Anti-Replay Window (管理和使用防重放窗口)

防重放窗口可以被视为一串比特位, 其中 'W' 定义了该字符串的长度。W = T - B + 1, 其值不能超过 2^32 - 1。最底部的比特位对应 B, 最顶部的比特位对应 T, 从 Bl 到 Tl 的每个序列号都由相应的比特位表示。该比特位的值指示是否已接收并验证具有该序列号的数据包, 以便可以检测并拒绝重放。

当接收并验证具有大于 T 的 64 位序列号 (Seq) 的数据包时,

  • B 增加 (Seq - T)
  • 从窗口的低端删除 (Seq - T) 个比特位
  • 向窗口的高端添加 (Seq - T) 个比特位
  • 设置顶部比特位以指示已接收并验证具有该序列号的数据包
  • 将 T 和顶部比特位之间的新比特位设置为指示尚未接收具有这些序列号的数据包。
  • T 设置为新的序列号

在检查重放数据包时,

  • 在情况 A 下: 如果 Seql >= Bl (其中 Bl = Tl - W + 1) 且 Seql <= Tl, 则检查窗口中的相应比特位以查看是否已看到此 Seql。如果是, 则拒绝该数据包。如果否, 则执行完整性检查 (有关 Seqh 的确定, 请参见下面的附录 A2.2.)。

  • 在情况 B 下: 如果 Seql >= Bl (其中 Bl = Tl - W + 1) 或 Seql <= Tl, 则检查窗口中的相应比特位以查看是否已看到此 Seql。如果是, 则拒绝该数据包。如果否, 则执行完整性检查 (有关 Seqh 的确定, 请参见下面的附录 A2.2.)。