主模式第六包(收包):main_inR3
1. 序言
main_inR3()
函数是ISAKMP协商过程中第一阶段的最后一个报文的接收处理函数,它的作用同main_inI3_outR3()
部分功能相同:完成对对端身份的认证。他们的不同之处在于不在需要响应报文(如果不考虑第二阶段的话)。此包处理完毕后,发起端便成功建立了ISAKMP SA, 完成了第一阶段主模式的协商。后续便是第二阶段的协商。这里我们主要说明main_inR3
的函数调用关系、处理流程以及对源码的注释分析,关于main_inR3
的上下文环境暂不叙述,留给后面的文章进行更新。
ISAKMP协商报文的处理流程都比较复杂,此函数在协商的报文处理函数中比较复杂的,因此个人学习期间难免有遗漏和理解错误的地方,请大家多多批评指正。
目前主要是整理源码中的处理里流程和实现逻辑,尚未深入比较细节的处理;后续在我整理完毕使用主模式协商的9个报文后,我再次结合代码整理每一个报文的详细流程,到时把每一个报文的注意事项、作用,处理方式做一个整体上的把握。同时结合书本上的描述来解释代码层的实现。
ISAKMP主模式协商流程如下:
本文要说明的便是第⑥包的接收函数:main_inR3()
;