Suricata6.0流表管理源码注释四(第4部分:流量建立)
发布时间
阅读量:
阅读量
本文在上文中阐述了流程建立的过程。其中最核心的一个函数 named FlowGetNew 被详细讨论。它的主要目标就是获取一个flow,在获取流程的过程中也经历了许多波折。经过多方努力终于成功地获得了这个flow。
1. FlowGetNew 这个函数也分几个方面理解:
FlowHandlePacket-》FlowGetFlowFromHash-》FlowGetNew
a. 通过本线程的flow队列进行查询操作。若成功则返回该flow;否则需从全局流内存池中临时创建一个新的流队列,并在此新队列中进行查找操作以获得所需的流资源。
b. 当该线程own的flow queue以及global flow memory pool均无空闲资源,并且current flow memory超出configuration upper limit时,则触发紧急模式流程。
c)。连接到b后,在紧急模式被触发前完成相关操作:随后将执行以下步骤:首先启动紧急模式;随后在紧急模式被触发后立即执行以下操作:首先启动紧急模式;随后在紧急模式被触发后立即执行以下操作:启动并运行Flows Get Used Flow(即调用该函数)以获取所需的流信息;该过程结束后会标记该功能点为已处理;随后在紧急模式被触发后立即执行以下操作:启动并运行Flows Get Used Flow(即调用该函数)以获取所需的流信
全部评论 (0)
还没有任何评论哟~
