一种基于软件定义复杂规则的高效流量处理方法技术

技术编号:33034966 阅读:124 留言:0更新日期:2022-04-15 09:12
本发明专利技术公开了基于软件定义复杂规则的高效流量处理方法,包括以下步骤:步骤一:规则配置文件;步骤二:读取配置;步骤三:接收数据前准备;步骤四:开始正式工作;步骤五:消费线程收包;步骤六:数据解析;步骤七:会话管理;步骤八:规则校验;步骤九:输出阶段。该处理方法在程序运行前就准备好内存池,避免使用过程中申请、释放内存系统开销,多线程和无锁队列管理,每个线程对应一个无锁队列,每个线程对应一个网卡,收发包,数据包的入队出队操作避免了查找的时间开销和上下文切换开销,随着网络数据包的到来能够被快速消费,不堵塞,提高了处理效率和性能。效率和性能。效率和性能。

【技术实现步骤摘要】
一种基于软件定义复杂规则的高效流量处理方法


[0001]本专利技术涉及物理领域,尤其涉及网络流量数据的处理方法,具体是一种基于软件定义复杂规则的高效流量处理方法。

技术介绍

[0002]随着计算机技术全面应用,互联网的兴起和网络技术的飞速发展,以及智能设备兴起,信息爆炸已经积累到引发变革的程度,世界每天产生巨量数据,速度也疯狂加快。互联网、移动互联网、物联网,车联网,GPS,医学影像,安全监控,金融,电信都在疯狂产生着数据。
[0003]据IDC(互联网数据中心)监测,人类产生的数据量正在呈指数级增长,大约每两年翻一番,这个速度在2020年之前会继续保持下去,这意味着人类在最近的两年产生的数据量相当于之前产生的全部数据。大量新数据的出现导致了非结构化,半结构化数据爆发式增长。
[0004]数据规模一般在10TB(1TB=1024GB)规模以上的数据量的大数据出现,大数据具有以下四种特点。
[0005]大体量:存储量大,增量大多样化:来源多,搜索引擎,社交网络,通话记录,传感器等等;格式多,结构化数据和非结构化数据快速化:高速数据,数据处理速度快实时分析。
[0006]价值密度低:大量的不相关信息,数据价值密度低大数据计算常常需要面度存储和计算问题,而本软件解决的就是在存储和计算之前的流量过滤,本软件将大流量的数据根据需求提取有价值数据流量供后续软件设备分析计算或者存储。
[0007]在面对体量巨大,数据类型繁多,价值密度低,数据增长迅速的流量面前,需要快速高效的过滤出有价值的知识和情报,需要达到的性能要求包括:海量处理规模,多字段过滤,高效过滤。
[0008]分流过滤:大数据环境下数据量快速积累,想要分析出海量数据所蕴含的价值,需要在这些海量数据中提取有价值数据,剔除大量无用数据,使海量数据的流量和积累速度都大幅度降低,减小对后续解析存储方面的压力,提高解析研究等的效率。
[0009]五元组过滤:五元组是指源IP地址,目的IP地址,源端口,目的端口和传输层协议组成个一个组合。五元组过滤就是将原始流量中五元组信息相同的流量提取出来。
[0010]例如:192.168.1.11000 TCP 190.168.2.2 80就构成了一个五元组,其意义是一个IP地址是192.168.1.1的终端通过端口1000,利用TCP协议和IP协议地址为190.168.2.2 端口为80的终端进行连接。
[0011]精确串匹配过滤:在原始数据流量中提取包含目标字符串的数据流。
[0012]例如:在原始数据流

0BeiJing Baidu Netcom Science Technology Co., Ltd1&0$
”ꢀ“
0....*baiducontent.com..*.baidustatic.com...baidu.com..*.baifae.com..*.hao123.com..*.nuomi.com”中查找
ꢀ“
baidu.com
”ꢀ
字符串,只有第二条数据中包含目标字符串,那就将第二条数据提取出来。
[0013]正则过滤:了解正则过滤之前需要先了解正则表达式,正则表达式是描述一种字符串匹配的模式,是对字符串操作的一种逻辑公式,是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则过滤就是用在原始流量中提取符合这个“规则字符串”的数据流。
[0014]例如:原始数据流
ꢀ“
altk

mtalk.google.com..)...alth”“e33a45c37f89471088539fd9acfb61fe.Zd+jG7B/dg5wLwCcib7exUNt5wX5yQiPKig9KrggaIqoWeYi2DlxhW”正则表达式:[0

9],意思是“匹配0到9范围内的任意数字”符合以上正则表达式的只有第二条数据,第一条因为没有0到9数字被丢弃。
[0015]Fpga:采用了逻辑单元阵列LCA(Logic Cell Array),内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输出模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。Fpga是通过向内部静态存储单元加载编程数据来实现的,存储在存储在存储单元中的值决定了逻辑单元的逻辑功能以及各个模块之间或者模块与I/O间的连接方式,并最终决定了FPGA锁能实现的功能。
[0016]网络处理器:是一种可以编程的器件,特定的用于通信领域的各种任务,其内部由若干个微码处理器和若干硬件协处理器组成,多个微码处理器在网络处理器内部进行并行处理,通过预先编制的微码来控制处理流程。对于一些复杂的标准操作(如内存操作,路由表查找算法,流量调度算法等)则采用硬件协处理器来进一步提高处理性能。
[0017]Tcpdump:即dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。Tcpdump主要作在linux操作系统上作为网络数据采集工具使用。
[0018]Tcpdump可以根据五元组或者五元组的逻辑组合(与或非等),包大小以及协议类型(协议类型有限), 负载部分固定位置偏移等采集来自网卡的数据流,采集结果可保存成文件或者试试分析。
[0019]例如:tcpdump
ꢀ–
ni eth0
ꢀ“
src 10.0.2.4 and (dst port 338 or 22)”采集来自eh0网口的源地址是10.0.2.4端口是338或者22的数据tcpdump
ꢀ–
ni less 64采集数据包小于64个字节的数据tcpdump
ꢀ–
ni eth0
ꢀ“
tcp[20:2]=0x4745 or tcp[20:2]=0x4854”抓取HTTP报文,0x4754是GET的前两个字符的值,0x4854是HTTP的前两个字符的值tcpdump作为数据采集工具,只能采集有限类型的协议,ether,ip,ipv6,arp,tcp,udp等,不能根据精确串匹配以及正则表达式采集数据,不能以流会话为过滤条件抓包,以及间隔采集等等,这些只是采集功能上的缺陷,最主要在高速流量场景下,tcpdump抓包严
重影响系统性能,丢包严重,不适合大数据流量过滤。
[0020]Wirshark:是一款流行的网络封包分析软件,同时也可以截取各种网络封包。Wireshark可以选取一个或几个网卡,跟tcpdump采集条件类似,但是比其多正则表达式抓包、根据精确串匹配抓包条件,都不能以流会话为单位抓包,间隔抓包等,同样,在高速流量下存在丢包严重的问题。
[0021]因此,包括Wireshar本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于软件定义复杂规则的高效流量处理方法,其特征在于:包括以下步骤:步骤一:规则配置文件,配置对网络流量的过滤规则,这些规则分为多条,每条规则都有一个ID表示优先级,命中规则后的动作类型,规则的属性有多种,每种属性配置可选,其中包括源IP、目标IP、源端口、目标端口、协议类型等五元组规则、固定位置匹配规则、浮动匹配、锁流操作、间隔输出、正则规则、数据提取、单向流操作、剥离外部协议保留关键协议操作、给含有指定信息的数据尾部打标签、按指定报文长度提取数据其中的一种或多种;步骤二:读取配置,先获取规则文件条数,如果配置的规则数目超过上限或者未配置规则发出告警并退出,如果配置的规则数目合格或者完成配置进行读取规则,当规则文件读取完成后,再对这些规则按照规则ID大小做优先级排序并去重;步骤三:接收数据前准备,申请内存、队列等耗时操作前预先准备存放元数据的内存池和无锁队列,存放流数据的会话内存池及哈希表,为接收数据后的操作节省时间和避免一些异常情况,内存池、队列、哈希表申请完后开始数据处理;步骤四:开始正式工作,从Fibre Optical Port、Electrical Port和pcap文件中开始接收数据,每个模块的运行参数都从配置中读取,收包模块收到数据后解析链路层和网络层数据得到网络层IP地址信息,将源IP和目标IP转成主机字节序后相加,计算结果作为无锁队列索引,再将此数据包存入计算后得到的队列中,这样能够保证同一个地址信息的数据包在同一个无锁队列中;步骤五:数据存入无锁队列后,消费线程会检测无锁队列,只要其中有数据就会被取走,消费线程在收包线程之前已经开始工作,并且有多个消费线程从队列中取包;步骤六:消费线程取出数据后交给数据解析模块,解析模块将数据包层层解析,以太层、网络层及传输层直到解析到数据包内层得到所有数据结果;步骤七:会话管理,此时可得到数据包中全部五元组...

【专利技术属性】
技术研发人员:贺辉郑思文杨娜李春利江会宗
申请(专利权)人:上海阅维科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1