[发明专利]一种建链报文的无锁处理系统及方法有效
申请号: | 202110336624.0 | 申请日: | 2021-03-29 |
公开(公告)号: | CN113098858B | 公开(公告)日: | 2023-07-14 |
发明(设计)人: | 周明富;樊志杰;陈家明 | 申请(专利权)人: | 上海辰锐信息科技有限公司 |
主分类号: | H04L69/22 | 分类号: | H04L69/22;H04L69/16 |
代理公司: | 上海申新律师事务所 31272 | 代理人: | 俞涤炯 |
地址: | 200031*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 报文 处理 系统 方法 | ||
本发明提供了一种建链报文的无锁处理系统及方法,涉及数据处理领域;无锁处理系统设置于处理器中;包括多个独立的处理单元,每个处理单元分别包括:链路层解析模块,用于对建链报文进行解析;流表查询模块,用于流表查询单元中查询对应的流表信息;应用层解析模块,用于流表查询单元中存在对应的流表时,进行应用层解析,并将最终解析结果汇总至数据库中进行保存。上述技术方案的有益效果是:通过无锁处理系统,可以直接对流表进行查询和创建。通过本发明解决相关技术中建链报文效率低、丢包和报错等问题,提供一种建链报文的无锁处理系统及方法,简化协议栈交互形式,提高建链报文的效率和降低丢包以及报错的发生概率。
技术领域
本发明涉及数据处理领域,尤其涉及一种建链报文的无锁处理系统及方法。
背景技术
随着大数据时代的到来,各种数据以指数级增长,流量包数据越来越大,快速采集还原数据流成为发展趋势,现有技术中数据采集通常是使用的共享的TCP/IP协议栈,接收到流量包后先经链路层解析,解析完再用读锁的方式查询流表,查到流表后,进入应用层解析并发往数据库,当未读到流表时,需要TCP协议栈用写锁的方式去创建流表,创建流表后再进行应用层解析,再发往数据库。
现有技术中,当多线程同时进行数据采集时必须通过解锁和写锁的的方式与TCP/IP协议栈进行交互,交互复杂,且会导致数据采集的时候建链报文效率低,单线程处理时,因为流量包过大,超出协议栈处理能力,会出现丢包和报错等问题。
发明内容
本发明提供了一种建链报文的无锁处理系统及方法的技术方案,旨在有效地改善乃至解决建链报文的效率低的问题,提升协议栈在数据采集的效率。
根据本发明,提供了一种建链报文的无锁处理系统,设置于处理器中;包括多个独立的处理单元,每个所述处理单元的输入端分别连接至网卡的输出端,每个所述处理单元的输出端分别连接至一数据库,每个所述处理单元的查询端分别连接至一流表查询单元;
每个所述处理单元用于承载一个处理线程,每个所述处理线程分别对应于一个协议栈;
则每个所述处理单元分别包括:
链路层解析模块,用于获取所述网卡输出的所述建链报文并进行解析,输出解析结果;
流表查询模块,连接所述链路层解析模块,用于根据所述解析结果,于所述流表查询单元中查询对应的流表信息,并输出查询结果;
应用层解析模块,连接所述流表查询模块,用于在所述查询结果为所述流表查询单元中存在对应的流表时,根据所述流表对所述建链报文进行应用层解析,并将最终解析结果汇总至所述数据库中进行保存。
进一步地,该无锁处理系统,其中,还包括一建表单元,分别连接每个所述处理单元以及所述流表查询单元,用于在所述查询结果为所述流表查询单元不存在对应的流表时,在所述流表查询单元中创建对应的流表。
进一步地,该无锁处理系统,其中,所述链路层解析模块解析得到的所述解析结果中包括所述建链报文的报文长度以及报文序号。
进一步地,该无锁处理系统,其中,所述流表查询模块采用无锁处理的方式对所述流表查询单元发起查询。
进一步地,该无锁处理系统,其中,所述建表单元采用无锁处理的方式在所述流表查询单元中建立对应的流表。
进一步地,该无锁处理系统,其中,所述建表单元为TCP协议栈。
进一步地,该无锁处理系统,其中,所有所述应用层解析模块输出的所述最终解析结果以聚合方式被送入至所述数据库中进行保存。
一种建链报文的无锁处理方法,应用于处理器;包括上述的无锁处理系统并包括:
步骤S1,将所述建链报文分别送入多个独立的处理线程中进行链路层解析;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海辰锐信息科技有限公司,未经上海辰锐信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110336624.0/2.html,转载请声明来源钻瓜专利网。