我正在尝试通过查看内核源代码来更好地了解Linux内核IPSec网络技术。从概念上讲,我理解IPSec使用序列号和重放窗口来防止重放攻击,即如果接收者收到一个不在重放窗口内或已经接收过的序列号,则丢弃该数据包并增加重放计数器。
我正在尝试将此与xfrm_replay_state_esn结构相关联,该结构定义如下:
struct xfrm_replay_state_esn {
unsigned int bmp_len;
__u32 oseq;
__u32 seq;
__u32 oseq_hi;
__u32 seq_hi;
__u32 replay_window;
__u32 bmp[0];
};
我试图搜索相关文档,但是很少,我也无法找到各种函数和结构的手册,因此我不理解每个字段之间的关系。