一种网络通信会话聚合的方法
技术领域
本发明涉及通信技术领域,具体地涉及一种网络通信会话聚合的方法
背景技术
所谓会话关联,指建立同一个协议,会建立多个协议连接的会话,通常存在动态端口开放的通信协议,如FTP和OPCClassic。以FTP为例,一个FTP应用包含一个控制通道会话和若干个数据通道会话。进行FTP访问时先建立控制通道的会话连接,在需要传输文件数据时再动态的建立数据会话的连接。由于这时建立的通信会话的端口是报文协商获得或者随机分配的,这类的协议也被称为“动态端口”协议。
由于是“动态端口”协议,一个FTP或OPC-DA应用就会由多个TCP会话组成,包括:一个主会话(控制会话)和多个从会话(数据会话)。对于网络监测审计类、网络数据采集类、网络保护控制类产品,需要把存在关联关系的会话按照主会话-从会话进行关联聚合,从而在接收数据和后续处理中都能取得会话间的关联关系。由在需要进行流还原与通信控制等的场合得到必要的支持。
现有的会话处理技术:会话信息独立保存和展示,会话信息独立保存并单独控制缺点:
1.通过列表展示可以标识通信对,但主会话和从会话之间不存在关联关系,被表示为独立的会话
2.由于主会话和数据会话没有关联关系,对于没有协议/端口特征的从会话,无法得知所属的是哪种通信协议。
3.对于监测审计类设备/安全控制类设备,无法自动的将主会话的规则对应到数据会话生效。
发明内容
(一)发明目的
本发明的目的是针对现有技术的缺点提供一种网络通信会话聚合的方法。
(二)技术方案
为解决上述问题,本发明一种网络通信会话聚合的方法,包括如下步骤:
步骤a:创建关于主会话和从会话的数据结构;
步骤b:根据步骤a创建的数据结构将主会话和从会话关联,并将主会话的规则关联至从会话,得到主会话结点和从会话结点;
步骤c:若动态端口有协议,则建立与主会话关联的从会话节点;
步骤d:若有新会话时,将从会话与相应的主会话关联;
步骤e:创建关于上传至上层组件的会话信息的数据结构;
步骤f:根据步骤e的数据结构将上层组件与相应的主会话关联;
步骤g:创建上层组件的数据结构;
步骤h:根据步骤g的数据结构,上层组件获取主会话与从会话的关联关系。
进一步的,步骤c具体包括,
步骤c1:判断会话是否是动态端口协议,如果是则执行步骤c2,否则结束;
步骤c2:判断五元组从会话哈希表上是否有对应的从会话节点,如果没有,则执行步骤c3,否则结束;
步骤c3:建立从会话节点,将主会话关联到从会话节点,将从会话节点挂入五元组从会话哈希表中。
进一步的,步骤d具体包括:
步骤d1:接收新会话数据,判断是否有对应的从会话结点,如果有,则执行步骤d2,否则填写数据流统计信息;
步骤d2:判断从会话是否已经关联主会话,如果是,则执行步骤d3,否则更新从会话节点的标志;
步骤d3:判断当前会话是否已经达到establish状态,如果是则执行步骤d4,否则填写数据流统计信息;
步骤d4:拆除对应的从会话节点。
进一步的,步骤f具体包括当底层组件向上层组件上报会话信息时,将当前会话的信息,以及主会话信息一同上报,上层组件通过主会话的端口信息找到对应的主会话进行关联。
进一步的,步骤h,上层组件通过主会话的五元组哈希值和哈希值下的索引值得到主会话的数据结构,最终获取主会话与从会话的关联关系。
进一步的,还包括步骤i,以聚合的形式展示会话。
(三)有益效果
本发明的上述技术方案具有如下有益的技术效果:
可以广泛的适用于各种类型的动态端口协议。本方法可以实现主会话-从会话的关联聚合,从而在接收数据和后续处理中都能取得会话间的关联关系。可以在无法判定从会话(数据会话)协议特征时获知数据会话的所属协议。
可以在网络安全保护控制的场合提供必要的支持,使得从会话(数据会话)可以遵循主会话的相应规则。同时在需要进行流还原的应用场合,支持在进行协议数据流展示时,将主会话和从绘画聚合展示。网络通信的安全关联分析和控制、性能分析和网络数据流拓扑展示。
附图说明
图1是从会话处理逻辑图;
图2是会话关联逻辑图;
图3是会话聚合的展示效果图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
一种网络通信会话聚合的方法,包括如下步骤:
步骤a:创建关于主会话和从会话的数据结构;
步骤b:根据步骤a创建的数据结构将主会话和从会话关联,并将主会话的规则关联至从会话,得到主会话结点和从会话结点;
例如,3个相同的数据结构flow_stat_node。其中第一个表示主会话node,后面2个表示从会话node。主会话通过relate_session成员找到从会话,而每个从会话都能通过各自的master成员找到主会话。
步骤c:若动态端口有协议,则建立与主会话关联的从会话节点;
如图1所示,当处理网络数据包时,一旦发现有动态端口协商协议,就会申请一个“从会话结点”,“从会话结点”能够关联主会话。
步骤d:若有新会话时,将从会话与相应的主会话关联;
如图2所示,当发现一个新会话时,会查询从会话哈希表。如果从会话哈希表中存在与当前会话相同信息的“从会话结点”,则说明当前会话存在主会话,则需要经当前会话(从会话)与相应的主会话关联。
当底层组件实现主会话与从会话的关联后,可以在发现从会话的第一时间为从会话标记对应的协议。同时施加于主会话的规则也有能力同时关联到从会话。这样不但能够获知从会话的网络协议,而且对于动态端口协议,可以自动的为动态的从会话施加规则。
步骤e:创建关于上传至上层组件的会话信息的数据结构;
步骤f:根据步骤e的数据结构将上层组件与相应的主会话关联;
其中:timestamp表示数据包时间戳,
srv、sp、clnt、dp分别表示服务器IP、服务器端口、客户端IP、客户端端口,
proto表示4层协议名称,app表示app层协议名称,
mstrSp、mstrDp分别表示主会话服务器端口、主会话客户端端口
当底层组件向上层组件上报网络会话信息时,会将当前会话的信息,以及主会话信息(如果有对应的主会话)一同上报。
由于主会话和从会话的服务器IP、客户端IP是一样的,因此上层组件可以通过将主会话的端口信息就可以找到对应的主会话进行关联。
步骤g:创建上层组件的数据结构;
步骤h:根据步骤g的数据结构,上层组件获取主会话与从会话的关联关系。
上层组件数据结构
其中:hashNum、indexNum分别表示本条流的五元组哈希值,和哈希值下的索引值
srv、sp、clnt、dp分别表示服务器IP、服务器端口、客户端IP、客户端端口
master_slave表示本条会话是主会话还是从会话
mstr_hashNum、mstr_indexNum分别表示主会话的五元组哈希值,和哈希值下的索引值
上层组件通过主会话的五元组哈希值,和哈希值下的索引值就可以找到主会话的数据结构,从而实现上层组件获取主会话与从会话的关联关系。
至此,不论是底层组件,还是上层组件都获取到了主会话与从会话的关联关系。
步骤c具体包括,
步骤c1:判断会话是否是动态端口协议,如果是则执行步骤c2,否则结束;
步骤c2:判断五元组从会话哈希表上是否有对应的从会话节点,如果没有,则执行步骤c3,否则结束;
步骤c3:建立从会话节点,将主会话关联到从会话节点,将从会话节点挂入五元组从会话哈希表中。
步骤d具体包括:
步骤d1:接收新会话数据,判断是否有对应的从会话结点,如果有,则执行步骤d2,否则填写数据流统计信息;
步骤d2:判断从会话是否已经关联主会话,如果是,则执行步骤d3,否则更新从会话节点的标志;
步骤d3:判断当前会话是否已经达到establish状态,如果是则执行步骤d4,否则填写数据流统计信息;
步骤d4:拆除对应的从会话节点。
步骤f具体包括当底层组件向上层组件上报会话信息时,将当前会话的信息,以及主会话信息一同上报,上层组件通过主会话的端口信息找到对应的主会话进行关联。
步骤h,上层组件通过主会话的五元组哈希值和哈希值下的索引值得到主会话的数据结构,最终获取主会话与从会话的关联关系。
还包括步骤i,以聚合的形式展示会话。在进行会话信息展示的时候,由于上层组件已经将会话进行了关联聚合,可以以聚合的形式进行会话的展示。先展示主会话。主会话可以通过点击展开,展开后展示从会话。某一条主会话的从会话可以通过查询会话数据库中master_slave为从会话的,同时mstr_hashNum、mstr_indexNum符合主会话mstr_hashNum、mstr_indexNum的会话。会话聚合的展示效果如图3。
本发明优点:
1.通用性强,本发明可以适用于各种存在主-从会话、动态端口的网络协议;
2.从底层数据结构对网络协议的关联会话进行了聚合;
3.能够自动的将主会话的规则关联到数据会话,实现了主-从会话规则自动关联;
4.能够在展示网络会话时自动的将数据会话汇聚到主会话下。
可以广泛的适用于各种类型的动态端口协议。本方法可以实现主会话-从会话的关联聚合,从而在接收数据和后续处理中都能取得会话间的关联关系。可以在无法判定从会话(数据会话)协议特征时获知数据会话的所属协议。
可以在网络安全保护控制的场合提供必要的支持,使得从会话(数据会话)可以遵循主会话的相应规则。同时在需要进行流还原的应用场合,支持在进行协议数据流展示时,将主会话和从绘画聚合展示。网络通信的安全关联分析和控制、性能分析和网络数据流拓扑展示。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
以上参照本发明的实施例对本发明予以了说明。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本发明的范围。本发明的范围由所附权利要求及其等价物限定。不脱离本发明的范围,本领域技术人员可以做出多种替换和修改,这些替换和修改都应落在本发明的范围之内。
尽管已经详细描述了本发明的实施方式,但是应该理解的是,在不偏离本发明的精神和范围的情况下,可以对本发明的实施方式做出各种改变、替换和变更。
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。