基于tcp会话的网络流量监测方法、装置及报文处理芯片的制作方法

文档序号:7821147阅读:355来源:国知局
基于tcp会话的网络流量监测方法、装置及报文处理芯片的制作方法
【专利摘要】本发明揭示了一种基于TCP会话的网络流量监测方法、装置及报文处理芯片。该方法包括:基于IPFIX技术,在交换机芯片上通过解析TCP报文首部,感知TCP会话的建立、结束过程,将TCP双向流量以一个会话的形式进行监测记录,一方面芯片级地将TCP两个方向的流量整合在一起统计,提供了一种新颖的统计方式,有效地降低了上层软件的复杂程度,适用于基于一个应用程序的流量统计等相关应用场景;另一方面将入口和出口两条流量,记录在一个会话里,节省芯片的存储空间,提高存储空间利用率。
【专利说明】基于TCP会话的网络流量监测方法、装置及报文处理芯片

【技术领域】
[0001]本发明涉及网络流量监测【技术领域】,尤其是涉及一种基于TCP双向会话的网络流量实时监测方法、装置及报文处理芯片。

【背景技术】
[0002]IPFIX (IP Flow Informat1n Export, IP 数据流信息输出)是由 IETF (InternetEngineering Task Force,互联网工程任务组)公布的用于网络中的流信息测量的标准协议。该协议主要在于:1、统一 IP数据流的统计、输出标准,这使得网络管理员很容易地提取和查看存储在这些网络设备中的重要流量统计信息。2、输出格式具有较强的可扩展性,因此如果流量监控的要求发生改变,网络管理员也可通过修改相应配置来实现,不必升级网络设备软件或管理工具。
[0003]IPFIX定义的格式以网络流量监控技术第9版本(Netflow Vers1n 9)数据输出格式作为基础,可使IP流量信息从一个输出器传送到收集器。因为IPFIX是一种针对数据流特征分析、基于模板的格式输出的协议,因此具有很强的可扩展性,对于不同的需求都可以定义不同的数据格式。为了较完整的输出数据,IPFIX缺省使用七元组来标识网络流量:源IP地址、目的IP地址、TCP/UDP源端口、TCP/UDP目的端口、三层协议类型、服务类型和输入逻辑接口。如果不同IP报文中这所有的七个字段都匹配,那么这些IP报文都将被视为属于同一条流量。这些流的统计数据,如流量持续时间、流量中报文个数、报文平均长度、TTL的变化等,定期被组装为IPFIX报文,发送给指定的IPFIX服务器。IPFIX服务器提供强大的图形显示、计算能力,对IPFIX报文中的流统计进行分析,帮助网络管理员可以了解到当前网络的应用情况,并根据这些信息对网络进行优化,安全检测,流量计费。
[0004]网络流量中,TCP提供了可靠的流交付服务,允许两台设备之间的全双工连接,保证它们高效地双向交换大量数据,所以TCP流量在网络流量中占了很大比例。
[0005]如何芯片级地支持IPFIX作为流量监测的手段,尤其是如何基于会话对TCP双向流量进行监测,同时提高芯片中存储空间的利用率,已经成为网络交换机芯片设计中的难点。
[0006]现有技术对于TCP的双向流量,芯片级都是分类成两条流进行统计。这两条流在芯片层面并没有关联,是相互独立的,各自上报中央处理器CPU后,需要软件层面进行相关信息的整合处理。如图1所示,启用IPFIX技术的监测点在监测个人电脑PC1和个人电脑PC2之间的TCP流量时,必须当作两条流进行监测并记录统计相关信息。现有这种技术方案存在的问题有:1、一个会话分成了两条流,分类比较粗糙,芯片内部的存储空间没有得到充分利用;2、软件层面需要对同一 TCP会话的流记录进行整合处理,增加了软件的复杂度。


【发明内容】

[0007]本发明的目的在于克服现有技术的缺陷,提供一种基于TCP会话的网络流量监测方法、装置及报文处理芯片,旨在对双向TCP流量从建立会话到结束会话的完整会话过程进行监测,从基于流上升为基于会话,提供更完整的统计信息,同时原本需要两条流记录,本发明只需一条会话记录,IPFIX表项利用率提高了 100%。
[0008]为实现上述目的,本发明提出如下技术方案:一种基于TCP会话的网络流量监测方法,包括:获取芯片端口上IPFIX配置信息,根据所述配置信息选择哈希关键字类型,结合报文的信息组合所述哈希关键字,根据组合后的所述哈希关键字在芯片的IPFIX存储空间中进行哈希查找,查找后,若报文所在的TCP会话记录存在,则更新所述TCP会话记录;反之,则芯片在相应的IPFIX存储空间中插入新的会话记录,插入或更新会话记录后,判断是否要将更新后的会话记录或者插入的会话记录上报CPU进行处理,若上报,则将所述会话记录通过芯片中的存储器直接访问通道上报CPU进行处理,从而完成一次网络流量监测。
[0009]优选地,所述IPFIX配置信息通常选择七元组的方式或五元组方式对网络流量进行分类,当然,本发明可以灵活地选择组合,即也可以是一元组、二元组、三元组等等。所述七元组是:源IP地址、目的IP地址、TCP/UDP源端口、TCP/UDP目的端口、三层协议类型、月艮务类型和输入逻辑接口,所述五元组是:源IP地址,目的IP地址,TCP/UDP源端口,TCP/UDP目的端口和传输层协议号。
[0010]优选地,所述芯片端口为报文入口或报文出口,组合所述哈希关键字的过程为:对于所有所述报文出口方向的所述关键字,将其源IP地址和目的IP地址互换,源端口和目的端口互换。
[0011]优选地,在TCP会话记录中进行哈希查找的过程为:将芯片所述IPFIX的存储空间分成η级存储空间,每一级所述存储空间选择一个不同的Hash算法多项式,组合后的哈希关键字经过每级存储空间的不同的哈希多项式,可以得到不同的哈希值,根据各级所述哈希值读出各级所述存储空间中记录的哈希关键字,如果报文组合的哈希关键字和一级存储空间中读出的哈希关键字一致,则表明该级存储空间对应的哈希值记录着报文的会话信肩、Ο
[0012]优选地,更新所述TCP会话记录的过程为:芯片对入口和出口方向的TCP会话记录进行判断是否会话结束,若结束,则将所述TCP会话记录上报CPU,同时删除芯片IPFIX存储空间中的相关表项,若未结束,则将所述TCP会话记录相应的更新操作记录下来。
[0013]优选地,芯片的IPFIX存储空间内,储存的每个会话记录的入口和出口方向统计在同一块所述IPFIX存储空间内。
[0014]优选地,所述会话记录的入口和出口的信息分开统计后一起上报给CPU处理。
[0015]优选地,判断是否要将更新后的会话记录或者插入的会话记录上报CPU进行处理的过程中,上报CPU的条件为当前会话已经结束,或会话持续的时间过长,或数据统计超过设定的阈值。
[0016]本发明的另一目的在于提供一种基于TCP会话的网络流量监测装置,包括获取配置信息模块、选择哈希关键字模块、组合哈希关键字模块、会话记录查找模块、会话存在判断模块、更新会话记录模块、插入会话记录模块和上报处理模块,所述获取配置信息模块用于获取芯片端口上IPFIX配置信息;所述选择哈希关键字模块用于根据所述配置信息选择哈希关键字类型;所述组合哈希关键字模块用于结合报文的信息组合所述哈希关键字;所述会话记录查找模块用于根据组合后的所述哈希关键字在TCP会话记录中进行哈希查找;所述更新会话记录模块用于更新芯片的IPFIX存储空间中报文所在的TCP会话记录;所述插入会话记录模块用于在芯片相应的IPFIX存储空间中插入新的会话记录;所述上报处理模块用于将所述会话记录通过芯片中的存储器直接访问通道上报CPU进行处理。
[0017]本发明还提供一种基于本发明的网络流量实时监测方法的报文处理芯片,包括入口方向处理模块、队列处理模块、出口方向处理模块和IPFIX处理模块,数据报文进入所述入口方向处理模块,经所述队列处理模块处理后,从所述出口方向处理模块送出,若所述报文入口和出口启用了 IPFIX技术,则将携带的相关信息送入所述IPFIX处理模块进行处理。
[0018]本发明的有益效果是:本发明基于IPFIX技术,在交换机芯片上通过解析TCP报文首部,感知TCP会话的建立、结束过程,将TCP双向流量以一个会话的形式进行监测记录,一方面芯片级地将TCP两个方向的流量整合在一起统计,提供了一种新颖的统计方式,有效地降低了上层软件的复杂程度,适用于基于一个应用程序的流量统计等相关应用场景;另一方面将入口和出口两条流量,记录在一个会话里,节省芯片的存储空间,提高存储空间利用率。

【专利附图】

【附图说明】
[0019]图1是现有IPFIX技术基于流进行网络流量监测的原理示意图;
图2是本发明报文处理芯片的模块结构示意图;
图3是本发明基于TCP会话的网络流量监测方法的流程示意图;
图4是图3中组合哈希关键字的流程示意图;
图5是图3中会话记录哈希查找的流程示意图;
图6是TCP关闭连接的四次握手过程的原理示意图;
图7是图3中更新会话记录的流程示意图。

【具体实施方式】
[0020]下面将结合本发明的附图,对本发明实施例的技术方案进行清楚、完整的描述。
[0021]如图2所示,为本发明报文处理芯片的主要处理模块结构示意图。其包括入口方向处理模块、队列处理模块、出口方向处理模块和IPFIX处理模块,数据报文的处理流程为:数据报文进入入口方向处理模块,经队列处理模块处理后,从出口方向处理模块送出,若报文入口和出口启用了 IPFIX技术,则将携带的相关信息送入IPFIX处理模块进行处理。
[0022]如图3所示,是本发明IPFIX处理模块的流程示意图,即本发明基于TCP会话的网络流量监测方法的流程示意图。包括以下步骤:
步骤S301:获取芯片端口上IPFIX配置信息。
[0023]配置信息包括选择七元组还是五元组或者其他方式对流量进行分类。其中,七元组是指:源IP地址、目的IP地址、TCP/UDP源端口、TCP/UDP目的端口、三层协议类型、服务类型和输入逻辑接口,五元组是指:源IP地址,目的IP地址,TCP/UDP源端口,TCP/UDP目的端口和传输层协议号。当然,本发明可以灵活地选择组合,即也可以是一元组、二元组、三元组等等。
[0024]步骤S302:根据配置信息选择哈希关键字Hash Key类型。
[0025]步骤S303:结合当前报文的信息组合哈希关键字。
[0026]具体组合哈希关键字的过程如图4所示,对于同一个TCP会话的不同方向的流量,报文的源IP地址、目的IP地址是互换的,同时源端口和目的端口号也是互换的。报文处理芯片的IPFIX处理模块是知道当前端口是入口还是出口,对于所有出口方向的关键字,将其源IP地址和目的IP地址互换、源端口和目的端口互换,则能保证TCP的双向流量的HashKey相同,从而保证本发明基于会话进行监测统计。
[0027]步骤S304:根据组合后的哈希关键字在芯片的IPFIX存储空间中进行哈希查找。
[0028]会话记录哈希查找的流程如图5所示,图5的哈希查找过程显示了本发明中芯片是如何实现每个报文能找到相应的会话记录。芯片为了减小Hash冲突率,将IPFIX的存储空间分成η级,每一级选择一个不同的Hash算法多项式,组合后的哈希关键字经过不同的Hash多项式,可以得到不同的Hash值,这些Hash值其实就是各级存储空间的索引,根据各级索引读出各级存储空间中记录的Hash Key,如果当前报文组合的Key和某级存储空间中读出的Key —致,则表明该级存储对应的索引记录着当前报文的会话信息。
[0029]步骤S305:哈希查找后,根据哈希查找的结果可以知道当前报文所在的TCP会话记录是否存在。
[0030]步骤S306:如果不存在,则表明当前报文是所在会话的第一个报文,芯片需要在相应的存储空间中插入新的会话记录。
[0031]步骤S307:如果存在,则只需更新已经存在的会话记录。
[0032]图6为TCP关闭连接的四次握手过程:
步骤S601:网点1的事件发送一个结束标志FIN,用于关闭网点1的事件到网点2的事件的网络报文传送;步骤S602:网点2的事件收到这个FIN后,它发回一个确认标志ACK,确认序号为收到的序号加1 ;步骤S603:网点2的事件关闭与网点1的事件的连接,发送另一个结束标志FIN给网点1的事件;步骤S604:网点1的事件发回相应的确认标志ACK,并将确认序号设置为收到序号加1。
[0033]具体的会话记录更新操作如图7所示:本发明每个会话的记录,入口和出口方向统计在同一块存储空间,但是各个方向分开统计,如步骤70f步骤705所示。基于TCP会话进行监测,就需要在TCP结束会话时,将入口和出口的统计信息一起上报CPU,步骤S706?S711为芯片感知当前会话是否结束的过程。其中步骤S706和步骤S707对应图6中的步骤S601,步骤S708和步骤S709分别对应图6中的步骤S602、步骤S603,步骤S710和步骤S711对应步骤S604。每次对会话记录进行操作时都需要判断当前会话是否结束,如步骤S712 ;结束则上报CPU,如步骤S713,同时删除芯片中相关表项,以腾出存储空间记录新的会话,没有结束,则将会话记录相应的更新操作记录下来,如步骤S714。
[0034]步骤308:插入或者更新会话记录后,需要判断是否要将该会话记录上报CPU进行软件上的处理。上报CPU的条件包括当前会话已经结束、会话持续的时间过长、数据统计(如报文总个数、报文总长度等)超过设定的阈值等。
[0035]步骤S309:如果满足上报条件,则将相关会话记录通过芯片中的DMA高速通道上报 CPU。
[0036]步骤S310:如果不满足上报条件,则直接结束IPFIX流程。至此,本发明此次IPFIX流程结束。
[0037]本发明的技术内容及技术特征已揭示如上,然而熟悉本领域的技术人员仍可能基于本发明的教示及揭示而作种种不背离本发明精神的替换及修饰,因此,本发明保护范围应不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修饰,并为本专利申请权利要求所涵盖。
【权利要求】
1.一种基于I'⑶会话的网络流量监测方法,其特征在于包括:获取芯片端口上1??1父配置信息,根据所述配置信息选择哈希关键字类型,结合报文的信息组合所述哈希关键字,根据组合后的所述哈希关键字在芯片的1??以存储空间中进行哈希查找,查找后,若报文所在的扣?会话记录存在,则更新所述扣?会话记录;反之,芯片则在相应的1??以存储空间中插入新的会话记录,插入或更新会话记录后,判断是否要将更新后的会话记录或者插入的会话记录上报0^进行处理,若上报,则将所述会话记录通过芯片中的存储器直接访问通道上报0^进行处理,从而完成一次网络流量监测。
2.根据权利要求1所述的基于扣?会话的网络流量监测方法,其特征在于,所述1??以配置信息为选择七元组的方式或五元组方式对网络流量进行分类,所述七元组是:源I?地址、目的I?地址、了⑶/仙?源端口、了⑶/仙?目的端口、三层协议类型、服务类型和输入逻辑接口,所述五元组是:源I?地址,目的I?地址,扣?/皿?源端口,扣?/皿?目的端口和传输层协议号。
3.根据权利要求1所述的基于扣?会话的网络流量监测方法,其特征在于,所述芯片端口为报文入口或报文出口,组合所述哈希关键字的过程为:对于所有所述报文出口方向的所述关键字,将其源I?地址和目的I?地址互换,源端口和目的端口互换。
4.根据权利要求1或3所述的基于扣?会话的网络流量监测方法,其特征在于,在丁⑶会话记录中进行哈希查找的过程为:将芯片所述1??以的存储空间分成!1级存储空间,每一级所述存储空间选择一个不同的他也算法多项式,组合后的哈希关键字经过每级存储空间的不同的哈希多项式,可以得到不同的哈希值,根据各级所述哈希值读出各级所述存储空间中记录的哈希关键字,如果报文组合的哈希关键字和一级存储空间中读出的哈希关键字一致,则表明该级存储空间对应的哈希值记录着报文的会话信息。
5.根据权利要求4所述的基于扣?会话的网络流量监测方法,其特征在于,更新所述扣?会话记录的过程为:芯片对入口和出口方向的扣?会话记录进行判断是否会话结束,若结束,则将所述扣?会话记录上报⑶口,同时删除芯片1??以存储空间中的相关表项,若未结束,则将所述扣?会话记录相应的更新操作记录下来。
6.根据权利要求1所述的基于扣?会话的网络流量监测方法,其特征在于,芯片的1??以存储空间内,储存的每个会话记录的入口和出口方向统计在同一块所述1??以存储空间内。
7.根据权利要求1所述的基于扣?会话的网络流量监测方法,其特征在于,所述会话记录的入口和出口的信息分开统计后一起上报给0^处理。
8.根据权利要求1所述的基于扣?会话的网络流量监测方法,其特征在于,判断是否要将更新后的会话记录或者插入的会话记录上报0^进行处理的过程中,上报0^的条件为当前会话已经结束,或会话持续的时间过长,或数据统计超过设定的阈值。
9.一种基于扣?会话的网络流量监测装置,其特征在于包括获取配置信息模块、选择哈希关键字模块、组合哈希关键字模块、会话记录查找模块、会话存在判断模块、更新会话记录模块、插入会话记录模块和上报处理模块,所述获取配置信息模块用于获取芯片端口上1??以配置信息;所述选择哈希关键字模块用于根据所述配置信息选择哈希关键字类型;所述组合哈希关键字模块用于结合报文的信息组合所述哈希关键字;所述会话记录查找模块用于根据组合后的所述哈希关键字在扣?会话记录中进行哈希查找;所述更新会话记录模块用于更新芯片的1??以存储空间中报文所在的扣?会话记录;所述插入会话记录模块用于在芯片相应的1??以存储空间中插入新的会话记录;所述上报处理模块用于将所述会话记录通过芯片中的存储器直接访问通道上报0^进行处理。
10.一种基于权利要求1所述的网络流量实时监测方法的报文处理芯片,其特征在于包括入口方向处理模块、队列处理模块、出口方向处理模块和处理模块,数据报文进入所述入口方向处理模块,经所述队列处理模块处理后,从所述出口方向处理模块送出,若所述报文入口和出口启用了 1??以技术,则将携带的相关信息送入所述1??以处理模块进行处理。
【文档编号】H04L12/26GK104378263SQ201410706204
【公开日】2015年2月25日 申请日期:2014年11月27日 优先权日:2014年11月27日
【发明者】方沛昱, 杨曙军, 马千里 申请人:盛科网络(苏州)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1