一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

流量检测方法、系统、装置及计算机可读存储介质与流程

2021-10-29 21:38:00 来源:中国专利 TAG:例数 交互 检测方法 装置 流量


1.本发明实施例涉及数据交互领域,特别涉及一种流量检测方法、系统、装置及计算机可读存储介质。


背景技术:

2.互联网技术的发展正在推动着社会信息化的技术革命。个人、企业以及政府的各个部门通过计算机网络来获取、存储、处理和传输信息,广泛的利用信息进行生产过程控制和经济计划的决策。全国乃至全球范围的计算机网络不断的高速发展并日益深入到国民经济和社会生活的各个方面,计算机网络已经成为人们日常工作与生活的必不可少的工具。为了提高网络的安全性与可靠性,现有技术中通过dpi设备对数据包进行深度检测,dpi设备通过对网络的关键点处的流量和报文内容进行检测分析,可以根据事先定义的策略对检测流量进行过滤控制,能完成所在链路的业务精细化识别、业务流量流向分析、业务流量占比统计、业务占比整形、以及应用层拒绝服务攻击等功能。
3.发明人发现现有技术中至少存在如下问题:随着互联网的发展,网络规模不断扩大,网络流量越来也大,一台dpi的性能有限,无法对较大规模的流量(比如20g、40g网卡流量)进行检测。


技术实现要素:

4.本发明实施方式的目的在于提供一种流量检测方法、系统、装置及计算机可读存储介质,其能够过滤流量,确保dpi设备的正常工作。
5.为解决上述技术问题,本发明的实施方式提供了一种流量检测方法,包括:
6.根据预设的过滤规则过滤从物理网卡发送的流量;判断过滤后的流量大小是否在预设范围内;在判定不在所述预设范围内时,更新所述过滤规则,直至根据更新后的过滤规则过滤的所述流量大小在所述预设范围内;将过滤后符合预设范围的流量转发至dpi设备,以使所述dpi设备对所述符合预设范围的流量进行检测。
7.本发明的实施方式还提供了一种流量检测系统,包括:物理网卡、过滤模块、处理模块和dpi设备;所述物理网卡用于向所述过滤模块发送流量;所述过滤模块用于根据预设的过滤规则过滤从所述物理网卡发送的流量;所述处理模块用于判断过滤后的流量大小是否在预设范围内,在判定不在所述预设范围内时,更新所述过滤规则,直至所述过滤模块过滤的流量大小在所述预设范围内,并将过滤后符合预设范围的流量转发至所述dpi设备;所述dpi设备用于对所述符合预设范围的流量进行检测。
8.本发明的实施方式还提供了一种流量检测装置,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的流量检测方法。
9.本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,所述
计算机程序被处理器执行时实现上述的流量检测方法。
10.本发明的实施方式相对于现有技术而言,通过根据预设的过滤规则过滤从物理网卡发送的流量,从而能够对所述流量进行筛选,减少了最后到达dpi设备的流量的大小;通过判断过滤后的流量大小是否在预设范围内,并在判定不在所述预设范围内时,更新所述过滤规则,直至根据更新后的过滤规则过滤的所述流量大小在所述预设范围内,使得最后到达dpi设备的流量大小能够满足dpi设备的检测标准,从而确保了dpi设备的正常工作。
11.另外,所述物理网卡被用户态程序接管,在所述根据预设的过滤规则过滤从物理网卡发送的流量之前,还包括:创建基于内核态的虚拟网卡;将所述物理网卡接收的流量通过所述用户态程序导入所述虚拟网卡;所述根据预设的过滤规则过滤从物理网卡发送的流量,包括:根据所述过滤规则过滤从所述虚拟网卡发送的流量。
12.另外,在将所述物理网卡接收的流量通过所述用户态程序导入所述虚拟网卡之前,还包括:创建共享内存,其中,所述共享内存内存储有所述物理网卡通过所述用户态程序导入的流量;将所述物理网卡接收的流量通过所述用户态程序导入所述虚拟网卡,包括:将所述共享内存内存储的流量导入所述虚拟网卡,并将所述流量由所述虚拟网卡传递到内核协议栈。
13.另外,将所述物理网卡接收的流量通过所述用户态程序导入所述虚拟网卡,包括:所述用户态程序利用所述虚拟网卡的接口上下文,在用户态和所述内核态之间使用队列的方式,传递流量的指针,其中,所述虚拟网卡通过所述指针获取流量,并将所述流量传递到内核协议栈。
14.另外,在将所述物理网卡接收的流量通过所述用户态程序导入所述虚拟网卡之后,还包括:通过ifconfig和/或dstat工具获取所述虚拟网卡的流量信息,并将所述流量信息发送至预设的分析模块进行分析。
15.另外,在将所述物理网卡接收的流量通过所述用户态程序导入所述虚拟网卡之后,还包括:由内核态协议栈的tcpdump工具对所述虚拟网卡进行抓包,并将所述抓包的结果发送至预设的分析模块进行分析。
16.另外,所述根据预设的过滤规则过滤从物理网卡发送的流量,包括:过滤通信地址不在预设通信地址范围内的流量。
附图说明
17.一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
18.图1是根据本发明第一实施方式提供的流量检测方法的流程图;
19.图2是根据本发明第一实施方式提供的流量检测装置的结构示意图;
20.图3是根据本发明第二实施方式提供的流量检测方法的流程图;
21.图4是根据本发明第二实施方式提供的流量检测装置的结构示意图;
22.图5是根据本发明第二实施方式提供的流量检测装置的另一种结构示意图;
23.图6是根据本发明第三实施方式提供的流量检测方法的流程图;
24.图7是根据本发明第三实施方式提供的流量检测装置的结构示意图;
25.图8是根据本发明第四实施方式提供的流量检测系统的结构示意图;
26.图9是根据本发明第五实施方式提供的流量检测装置的结构示意图。
具体实施方式
27.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本发明而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本发明所要求保护的技术方案。
28.本发明的第一实施方式涉及一种流量检测方法,具体流程如图1所示,包括:
29.s101:根据预设的过滤规则过滤从物理网卡发送的流量。
30.具体的说,本实施方式中物理网卡发送的流量即物理网卡发送的数据包,预设的过滤规则可以为:预先配置源ip地址范围,提取数据包的源ip地址,与预先配置的源ip地址范围比较,如果数据包的源ip地址不在预设的源ip地址范围内,则丢弃该数据包;或预先配置源mac地址范围,提取数据包的源mac地址,与预先配置的源mac地址范围比较,如果数据包的源mac地址不在预设的源mac地址范围内,则丢弃该数据包。
31.更具体的,如图2所示,本实施例过滤结构的整体功能如下:物理网卡接收以服务器软件发送的数据包,将数据包存入数据包缓存,同时提取数据包关键字段并存入关键字缓存(数据包关键字段一般都在每个数据包的各个首部当中)。物理网卡将数据包的接收和关键字提取放在一起,虽然在对数据包接收的同时并行提取关键字段增加了少许时间,但是在后续进行数据包过滤时,由于关键字段已经提取,就不需要在数据包缓存中重复提取关键字段,大幅提高过滤速度。数据包完全存入缓存后,过滤包模块便开始根据已经配置的过滤规则进行包过滤,如果需要进行ip、mac地址过滤,就将关键字段中ip、mac地址与ip、mac地址缓存中的地址进行比对。如果过滤包模块拦截了这个数据包,就将其丢弃,如果不拦截,即认为其安全,就控制数据包发送模块将此包发送至dpi设备。
32.s102:在判定过滤后的流量大小不在预设范围内时,更新过滤规则,直至根据更新后的过滤规则过滤的流量大小在预设范围内。
33.具体的说,由于dpi设备的性能有限,无法对较大规模的流量(比如20g、40g网卡流量)进行服务,因此通过设置预设范围,大小在预设范围内的流量即可满足dpi设备的工作要求,从而能够以预设范围为判断标准,判断过滤后的流量大小是否在预设范围内。
34.可以理解的是,过滤规则是预先设置的,难以确保过滤后的流量大小在预设范围内,通过在判定过滤后的流量大小不在预设范围内时,更新过滤规则,直至根据更新后的过滤规则过滤的流量大小在预设范围内,能够确保最后转发至dpi设备的流量满足dpi设备的工作要求,提高了流量检测方法的可靠性。具体的说,过滤规则的更新方式可以为扩大/缩小源ip地址范围等,如发现过滤后的流量大小仍大于dpi设备的检测上限时可以缩小源ip地址范围,使dpi设备能够正常工作,发现过滤后的流量大小远小于dpi设备的检测上限时可以扩大源ip地址范围,以提高dpi设备的工作效率,本实施方式并不对过滤规则的更新方式做具体限定,确保更新过滤规则后,能够使最后转发至dpi设备的流量满足dpi设备的工作要求即可。
35.总的来说,如图2所示,过滤包模块可以根据数据包的2-4层信息来判断是否将该
数据包放行到dpi(2-4层信息包括二层的mac信息、vlan信息、三层的ip头部信息、四层的传输层头部信息等等)。通过配置这些过滤信息,到达dpi的数据将极大的减少,从而dpi能够正常的进行工作。
36.需要说明的是,不同型号的dpi设备正常工作时对流量的大小要求可能不同,如有的dpi设备可以对最大40g的流量进行检测,而有的dpi设备最大10g的流量进行检测,因此本实施方式并不对预设范围的大小作具体限定,可以根据dpi设备的性能设置满足需求的预设范围,确保最后转发至dpi设备的流量满足dpi设备的工作要求即可。
37.s103:将过滤后符合预设范围的流量转发至dpi设备,以使dpi设备对符合预设范围的流量进行检测。
38.具体的说,dpi设备是能够对网络所承载的业务进行识别和流量管理的网络设备,dpi设备通过对网络的关键点处的流量和报文内容进行检测分析,可以根据事先定义的策略对检测流量进行过滤控制。
39.需要说明的是,本实施方式中的dpi设备仅为可以对流量进行检测的一种可行的设备,实际应用中还可以通过其他设备对流量进行检测,本实施方式并不对此作具体限定。
40.本发明的实施方式相对于现有技术而言,通过根据预设的过滤规则过滤从物理网卡发送的流量,从而能够对所述流量进行筛选,减少了最后到达dpi设备的流量的大小;通过判断过滤后的流量大小是否在预设范围内,并在判定不在所述预设范围内时,更新所述过滤规则,直至根据更新后的过滤规则过滤的所述流量大小在所述预设范围内,使得最后到达dpi设备的流量大小能够满足dpi设备的检测标准,从而确保了dpi设备的正常工作。
41.本发明的第二实施方式涉及一种流量检测方法,第二实施方式与第一实施方式大致相同,主要区别之处在于:在第二实施方式中,物理网卡被用户态程序接管,dpi无法直接进行工作,通过创建虚拟网卡,将流量从用户态程序内部导入到虚拟网卡,从而确保了dpi设备的正常工作。
42.本实施方式的具体流程如图3所示,包括:
43.s201:创建基于内核态的虚拟网卡。
44.具体的说,服务器dpdk(dpdk应用程序运行在操作系统的用户空间,利用自身提供的数据库进行收发包处理,绕过了linux内核态协议栈,以提升报文处理效率)化以后,用户态程序接管了物理网卡,导致dpi设备无法正常工作,此时通过创建虚拟网卡,将数据包从用户态程序内部导入到虚拟网卡,使dpi设备监听虚拟网卡,即可解决“用户态程序接管物理网卡,导致的dpi无法工作”的问题。
45.需要说明的是,虚拟网卡主要是建立远程计算机间的局域网,虚拟网卡的链接技术就是vpn,可以连接到虚拟集线器(hub)上与其它电脑组成局域网。在此虚拟的局域网上能进行所有物理存在的局域网的操作,因此通过监听虚拟网卡,可以达到与服务器未dpdk时监听物理网卡同样的技术效果。
46.值得一提的是,本实施方式可以根据用户态程序接管的网卡数量来创建多个的虚拟网卡,让网卡与虚拟网卡进行对应,即一个物理网卡对应一个虚拟网卡;也可以只创建单个虚拟网卡,即多个物理网卡对应一个虚拟网卡。
47.s202:将物理网卡接收的流量通过用户态程序导入虚拟网卡。
48.具体的说,本实施方式中将所述物理网卡接收的流量通过所述用户态程序导入所
述虚拟网卡,可以为:利用虚拟网卡的接口上下文,在用户态和所述内核态之间使用队列的方式,传递流量的指针,其中,所述虚拟网卡通过所述指针获取流量,并将所述流量传递到内核协议栈。也就是说,用户态程序可以通过调用虚拟网卡驱动的接口,在内核态和用户态之间使用队列的方式,传递数据包的指针,不需要拷贝数据内容。在程序初始化的时候,创建虚拟网卡,创建队列连接虚拟网卡驱动与用户态程序;在用户态程序运行过程中,当收到接管的网卡发过来的数据报文,把数据包的指针传递到队列中。可以理解的是,虚拟网卡是有注册进内核协议栈的,从队列中收到的数据包也会通过虚拟网卡驱动传递到内核协议栈中。
49.值得一提的是,本实施方式在将所述物理网卡接收的流量通过所述用户态程序导入所述虚拟网卡之后,还包括:由内核态协议栈的tcpdump工具对所述虚拟网卡进行抓包,并将所述抓包的结果发送至预设的分析模块进行分析。可以理解的是,命令只能在内核态中执行,当服务器dpdl化后,用户态程序接管物理网卡,从而无法使用tcpdump工具抓包,通过创建虚拟网卡,由于虚拟网卡是基于内核的,同时用户态程序也可以连接该虚拟网卡,从而把流量复制到虚拟网卡,在虚拟网卡上使用tcpdump抓包。具体的说,如图4所示,程序接管的网卡可以是物理网卡,也可以是其它虚拟网卡(虚拟网卡类似于dpdk的kni网卡),比如openvswitch创建的虚拟网卡。程序初始化的时候创建虚拟网卡,并把网卡注册进入内核,同时创建队列连接用户态程序。在程序接收到报文的时候,程序可以把数据包的指针(地址)传递到队列,并由虚拟网卡驱动传递到内核协议栈。由于tcpdump是基于内核进行抓包,这样就可以实现tcpdump的抓包功能。
50.请参见图5,服务器dpdk化后,物理网卡已经被用户态程序接管,其它程序包括过滤包模块无法直接使用。服务器软件启动的时候创建出虚拟网卡,运行过程中,把数据包导入到虚拟网卡。过滤包模块通过虚拟网卡接收数据,并进行过滤筛选,再把数据包传递给dpi设备。
51.s203:根据预设的过滤规则过滤从虚拟网卡发送的流量。
52.s204:在判定过滤后的流量大小不在预设范围内时,更新过滤规则,直至根据更新后的过滤规则过滤的流量大小在预设范围内。
53.s205:将过滤后符合预设范围的流量转发至dpi设备,以使dpi设备对符合预设范围的流量进行检测。
54.本实施方式的步骤s203至步骤s205与第一实施方式的步骤s101至步骤s103类似,为了避免重复,此处不再赘述。
55.本发明的实施方式相对于现有技术而言,通过根据预设的过滤规则过滤从物理网卡发送的流量,从而能够对所述流量进行筛选,减少了最后到达dpi设备的流量的大小;通过判断过滤后的流量大小是否在预设范围内,并在判定不在所述预设范围内时,更新所述过滤规则,直至根据更新后的过滤规则过滤的所述流量大小在所述预设范围内,使得最后到达dpi设备的流量大小能够满足dpi设备的检测标准,从而确保了dpi设备的正常工作。
56.本发明的第三实施方式涉及一种流量检测方法,第三实施方式与第一实施方式大致相同,主要区别之处在于:在第三实施方式中,物理网卡同样被用户态程序接管,此时系统工具(比如ifconfig、dstat)无法使用,通过创建共享内存,将用户态程序统计的网卡流量信息传递给虚拟网卡在内核相应的设备信息中,能够使用ifconfig、dstat等工具查看虚
拟网卡流量,从而能够采集用户态程序的网卡流量。
57.本实施方式的具体流程如图6所示,包括:
58.s301:创建基于内核态的虚拟网卡。
59.s302:创建共享内存。
60.具体的说,共享内存指在多处理器的计算机系统中,可以被不同中央处理器(cpu)访问的大容量内存。本实施方式创建共享内存的方法可以为:1.定义共享内存的结构体;2.利用createfilemapping函数创建共享内存;3.定义指向共享内存结构体的指针psharemem,利用mapviewoffile函数将刚刚创建的内存映射到定义指针psharemem。
61.s303:将共享内存中存储的流量导入虚拟网卡,并将流量由虚拟网卡传递到内核协议栈。
62.具体的说,共享内存中存储有物理网卡通过用户态程序导入的流量,也就是说,在程序运行过程中,服务器会定时写入流量信息到共享内存。在虚拟网卡底层驱动里面可以获取共享内存信息,并把流量信息更新到虚拟网卡对应的内核设备net_device结构变量里面。
63.s304:通过ifconfig和/或dstat工具获取内核协议栈的流量信息,并将流量信息发送至预设的分析模块进行分析。
64.具体的说,请参见图7,内核协议栈的流量信息包括了rx packet个数、rx packet字节数、rx packet错误个数、rx丢包个数、tx packet个数、tx packet字节数、tx packet错误个数、tx丢包个数等。这些信息可以在程序里面处理的时候统计得到。程序定时把这些信息写入到共享内存,比如1秒更新一次。创建虚拟网卡跟程序接管的网卡进行对应。虚拟网卡注册到内核,每个虚拟网卡在内核都有对应的设备信息。在外部使用ifconfig、dstat等工具获取流量信息的时候,驱动把共享内存的信息更新到内核设备信息中。
65.s305:根据预设的过滤规则过滤从虚拟网卡发送的流量。
66.s306:在判定过滤后的流量大小不在预设范围内时,更新过滤规则,直至根据更新后的过滤规则过滤的流量大小在预设范围内。
67.s307:将过滤后符合预设范围的流量转发至dpi设备,以使dpi设备对符合预设范围的流量进行检测。
68.本实施方式的步骤s305至步骤s307与第一实施方式的步骤s101至步骤s103类似,为了避免重复,此处不再赘述。
69.本发明的实施方式相对于现有技术而言,通过根据预设的过滤规则过滤从物理网卡发送的流量,从而能够对所述流量进行筛选,减少了最后到达dpi设备的流量的大小;通过判断过滤后的流量大小是否在预设范围内,并在判定不在所述预设范围内时,更新所述过滤规则,直至根据更新后的过滤规则过滤的所述流量大小在所述预设范围内,使得最后到达dpi设备的流量大小能够满足dpi设备的检测标准,从而确保了dpi设备的正常工作。
70.本发明的第四实施方式涉及一种流量检测系统,如图8所示,流量检测系统100包括物理网卡1、过滤模块2、处理模块3和dpi设备4;物理网卡1用于向过滤模块2发送流量;过滤模块2用于根据预设的过滤规则过滤从物理网卡1发送的流量;所述处理模块用于判断过滤后的流量大小是否在预设范围内,在判定不在所述预设范围内时,更新所述过滤规则,直至所述过滤模块过滤的流量大小在所述预设范围内,并将过滤后符合预设范围的流量转发
至所述dpi设备;所述dpi设备用于对所述符合预设范围的流量进行检测。
71.不难发现,本实施方式为与第一实施方式相对应的装置实施例,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。
72.值得一提的是,本实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。
73.本发明第五实施方式涉及一种流量检测装置,如图9所示,包括:
74.至少一个处理器701;以及,
75.与至少一个处理器701通信连接的存储器702;其中,
76.存储器702存储有可被至少一个处理器701执行的指令,指令被至少一个处理器701执行,以使至少一个处理器701能够执行上述流量检测方法。
77.其中,存储器702和处理器701采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器701和存储器702的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器701处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器701。
78.处理器701负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器702可以被用于存储处理器701在执行操作时所使用的数据。
79.本发明第六实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
80.即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
81.本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜