CN105099730B - 终端设备、基于终端设备的网络流量统计方法及系统 - Google Patents

终端设备、基于终端设备的网络流量统计方法及系统 Download PDF

Info

Publication number
CN105099730B
CN105099730B CN201410165750.4A CN201410165750A CN105099730B CN 105099730 B CN105099730 B CN 105099730B CN 201410165750 A CN201410165750 A CN 201410165750A CN 105099730 B CN105099730 B CN 105099730B
Authority
CN
China
Prior art keywords
flow
protocol
network
packet
traffic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410165750.4A
Other languages
English (en)
Other versions
CN105099730A (zh
Inventor
杨晓东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qax Technology Group Inc
Original Assignee
Beijing Qianxin Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Qianxin Technology Co Ltd filed Critical Beijing Qianxin Technology Co Ltd
Priority to CN201410165750.4A priority Critical patent/CN105099730B/zh
Publication of CN105099730A publication Critical patent/CN105099730A/zh
Application granted granted Critical
Publication of CN105099730B publication Critical patent/CN105099730B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种终端设备、基于终端设备的网络流量统计方法及系统。该方法包括:抓取流经网络驱动接口规范中间层的网络数据包;根据预先设置的协议集对抓取的网络数据包进行协议解析,获取抓取的网络数据包采用的协议;利用获取的协议解析所述抓取的网络数据包的包头,得到所述抓取的网络数据包的流量;统计每一抓取的网络数据包的流量之和,得到终端设备的网络流量。应用本发明,可以降低网络流量统计误差、提升网络流量统计精度。

Description

终端设备、基于终端设备的网络流量统计方法及系统
技术领域
本发明涉及网络流量统计技术,具体涉及一种终端设备、基于终端设备的网络流量统计方法及系统。
背景技术
网络流量管理通过对网络整体架构进行合理配置,可以达到网络资源的最优使用效率,因而,作为网络资源有效配置的重要手段,应用日益广泛。其中,基于终端设备网络流量统计的网络流量管理系统,通过对当前网络内的各终端设备的运行状态进行实时监控和实施流量策略控制,从而可以有效避免网络资源的滥用和浪费,保障网络系统的正常运营,是企业实现IT管理和过程控制的有效方法。
目前,企业内设置的基于终端设备的网络流量统计及管理方法,主要通过在终端设备的传输驱动程序接口(TDI,Transport Driver Interface)层挂载流控驱动器,并通过挂载的流控驱动器,对接收以及发送的网络数据包进行协议解析,基于解析得到的每一协议对应的网络数据包,分别统计采用该协议封装的网络数据包流量并进行求和,从而实现对传输层网络流量的统计。其中,TDI层挂载的流控驱动器包括:采用套接字属性(SocketType)为因特网控制消息协议(ICMP,Internet Control Message Protocol)的因特网协议(IP,Internet Protocol)驱动器、套接字属性为原始IP(Raw IP)的原始IP驱动器、套接字属性为流(Stream)的传输控制协议(TCP,Transmission Control Protocol)驱动器、套接字属性为数据报(Datagram)的用户数据报协议(UDP,User Data Protocol)驱动器以及套接字属性为因特网组管理协议(IGMP,Internet Group Management Protocol)的IP多播(IPMULTICAST)驱动器。具体来说,通过在TDI层挂载上述的流控驱动器,当TDI层的上一层(应用层)对外发送网络数据包前,或TDI层的下一层网卡层(物理层)接收到指向本机的网络数据包后,网络数据包流经各已挂接的流控驱动器,流控驱动器对封装的网络数据进行协议解析,每一流控驱动器针对自身能够解析的传输协议,通过获取当前网络数据包上下文关联的进程信息,累计通过的网络数据包的大小,针对进程执行流量统计功能。从而实现网络流量统计,这样,多个流控驱动器可以实现对多种协议的网络数据包的流量统计功能,然后,TDI层通过累计各流控驱动器统计的流量信息,得到该终端设备的流量,并将得到的流量上报至流量管理服务器。
在进行流量统计时,终端设备还可以根据流量管理服务器下发的流量管理策略,计算预先设置的时间周期内通过进程上传或下载的网络数据包流量,如果上传或下载的网络数据包流量超过流量管理策略设置的限速值,则对上传或下载进行相应的限速处理。例如,对于发送至外部的网络数据包,则TDI层向发送网络数据包的该终端设备直接返回错误信息,对于接收到的网络数据包,则TDI层将接收的网络数据包放入缓存队列,并在检测到下载速度低于当前设置的限速值后,再将接收到的网络数据包返回给上层应用层进行应用处理,从而确保系统内各终端设备能够较为平衡地利用网络资源,保障网络的正常运行。
由上述可见,现有基于终端设备的网络流量统计及管理方法,由于TDI层挂载的流控驱动器数量有限,只能实现有限的协议解析并基于解析的协议进行网络数据包流量(采用底层网络协议的网络数据包在底层进行处理,不会传输至TDI层)统计,而无法对运行在更底层的一些网络协议进行解析。例如,网卡层的地址解析协议(ARP,Address ResolutionProtocol)协议、路由相关网络协议等,从而使得采用底层协议的网络数据包无法实现基于终端设备整体上行或下行的流量统计,该网络流量统计方法没有考虑采用底层协议传输的网络数据包流量,使得终端设备的流量统计误差较大,精度较低。进一步地,对于一个企业内的终端设备,网络流量包含有内网流量以及外网流量。其中,对于内网流量,是属于无需付费的网络流量,而现有网络流量统计方法没有区分内网流量与外网流量,增加了用户或企业的上网成本;而且,对于终端设备的一些操作系统共享文件,由于在文件共享功能上采用特殊处理方式,在网卡层进行接收后,或在应用层进行下发后,可以直接跳过挂接的流控驱动器进行网络数据包的发送和接收,因而,该部分网络数据包消耗的网络流量无法进行有效统计,使得流量统计的可靠性较低。例如,经过测试发现,现有基于终端设备的网络流量统计方法,由于windows操作系统在文件共享功能实现上进行了特殊的处理,直接跳过了流控驱动器进行收发网络数据包,因而,无法对windows系统共享文件的上传及下载流量进行流量统计及控制,使得提供给终端设备用户的流量可靠性差。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的终端设备、基于终端设备的网络流量统计方法及系统。
依据本发明的一个方面,提供了基于终端设备的网络流量统计方法,该方法包括:
抓取流经网络驱动接口规范中间层的网络数据包;
根据预先设置的协议集对抓取的网络数据包进行协议解析,获取抓取的网络数据包采用的协议;
利用获取的协议解析所述抓取的网络数据包的包头,得到所述抓取的网络数据包的流量;
统计每一抓取的网络数据包的流量之和,得到终端设备的网络流量。
优选地,在所述得到所述抓取的网络数据包的流量之后,统计每一抓取的网络数据包的流量之和之前,所述方法进一步包括:
C11,判断获取的协议是否为网络层协议,如果是,执行步骤C12,否则,将所述抓取的网络数据包的流量统计为内网流量;
C12,获取解析的网络数据包的包头中包含的因特网协议地址;
C13,判断获取的因特网协议地址是否在预先设置的本地因特网协议段范围内,如果是,将所述抓取的网络数据包的流量统计为内网流量,否则,执行步骤C14;
C14,读取终端设备网卡中的媒体访问控制器地址,判断读取的媒体访问控制器地址是否与网关媒体访问控制器地址相同,如果是,将所述抓取的网络数据包的流量统计为外网流量,否则,将所述抓取的网络数据包的流量统计为内网流量;
C15,将统计的每一网络数据包的外网流量作为求和计算的所述每一抓取的网络数据包的流量。
优选地,所述因特网协议地址包括:源因特网协议地址以及目的因特网协议地址,所述判断获取的因特网协议地址是否在预先设置的本地因特网协议段范围内为:所述源因特网协议地址以及目的因特网协议地址是否都在预先设置的本地因特网协议段范围内。
优选地,所述本地因特网协议段范围为请求评论3330和请求评论4193定义的本地因特网协议段范围。
优选地,所述方法进一步包括:
计算终端设备单位时间内的网络流量;
在确定终端设备单位时间内的网络流量超过预先设置的单位时间流量阈值后,获取流经网络驱动接口规范中间层的网络数据包采用的协议;
查询预先设置的协议流量控制策略集,得到所述采用的协议对应的协议流量控制策略,根据得到的协议流量控制策略,对网络数据包进行流量控制。
优选地,在所述获取流经网络驱动接口规范中间层的网络数据包采用的协议之后,查询预先设置的协议流量控制策略集之前,所述方法进一步包括:
利用所述网络数据包采用的协议解析所述网络数据包的包头,得到源因特网协议地址、源端口号、目的因特网协议地址及目的端口号;
判断得到的源因特网协议地址和源端口号,或目的因特网协议地址和目的端口号是否与预先设置的流量管理服务器的因特网协议地址和端口号相同,在确定不相同后,执行所述查询预先设置的协议流量控制策略集的流程。
优选地,所述根据得到的协议流量控制策略,对网络数据包进行流量控制具体包括:
如果获取的网络数据包采用的协议为传输控制协议,所述得到的协议流量控制策略为超速断开连接,发送重置连接包结束传输控制协议连接;
如果获取的网络数据包采用的协议为点对点协议,查找并拦截点对点下载源的网络数据包,不放行拦截的网络数据包;
如果获取的网络数据包采用的协议为流媒体通信协议,发送该流媒体通信协议定义的控制限速命令包进行限速;
如果获取的网络数据包采用的协议为网络电话协议,发送该网络电话协议定义的控制限速命令包进行限速;
如果获取的网络数据包采用的协议为网络文件系统协议,发送修改过的该网络文件系统协议定义的最佳传输尺寸进行限速。
优选地,在所述获取流经网络驱动接口规范中间层的网络数据包采用的协议之后,所述方法进一步包括:
确定抓取的网络数据包采用的协议是广播协议;
确定存在周期性查询的广播数据包;
确定所述周期性查询的广播数据包是查询自动代理协议的广播数据包;
构造代理因特网协议设置为流量管理服务器因特网协议地址的自动代理协议回应数据包;
向对应的旁路终端设备发送自动代理协议回应数据包,以使旁路终端设备接收到自动代理协议回应数据包后,设置流量管理服务器作为代理。
优选地,所述统计每一抓取的网络数据包的流量之和,得到终端设备的网络流量包括:
查询预先设置的协议流量统计表,如果存在所述抓取的网络数据包采用的协议映射的协议流量统计,将所述抓取的网络数据包的流量累加到所述协议流量统计中;如果不存在,则在所述协议流量统计表中,新增所述抓取的网络数据包采用的协议映射的协议流量统计,并将所述抓取的网络数据包的流量写入到所述协议流量统计中;
按照预先设置的流量统计周期,统计协议流量统计表中各协议流量统计之和,得到终端设备的网络流量。
优选地,所述协议流量统计表采用净流量的标准流记录格式。
优选地,所述统计每一抓取的网络数据包的流量之和,得到终端设备的网络流量包括:
将所述抓取的网络数据包流量累加到当前的流量统计中,按照预先设置的流量统计周期读取当前的流量统计。
优选地,所述协议集包括:传输驱动程序接口层协议集以及网卡层协议集。
优选地,所述传输驱动程序接口层协议集包括:因特网协议、传输控制协议、用户数据报协议、点对点协议、流媒体通信协议、网络电话协议以及网络文件系统协议,所述网卡层协议集包括:地址解析协议以及路由协议。
优选地,所述流经网络驱动接口规范中间层的网络数据包包括:
网卡从外部接收并传输至网络驱动接口规范中间层的接收网络数据包以及传输驱动程序接口层传输至网络驱动接口规范中间层并经网卡发送的发送网络数据包。
根据本发明的另一个方面提供了一种终端设备,该终端设备包括:网络数据包抓取模块、协议解析模块以及流量统计模块,其中,
网络数据包抓取模块,用于抓取流经网络驱动接口规范中间层的网络数据包;
协议解析模块,用于根据预先设置的协议集对抓取的网络数据包进行协议解析,获取抓取的网络数据包采用的协议;
流量统计模块,用于利用获取的协议解析所述抓取的网络数据包的包头,得到所述抓取的网络数据包的流量,统计每一抓取的网络数据包的流量之和,得到终端设备的网络流量。
优选地,所述流量统计模块包括:流量获取单元、查询处理单元以及流量统计单元,其中,
流量获取单元,用于利用获取的协议解析所述抓取的网络数据包的包头,得到所述抓取的网络数据包的流量;
查询处理单元,用于查询预先设置的协议流量统计表,如果存在所述抓取的网络数据包采用的协议映射的协议流量统计,将所述抓取的网络数据包的流量累加到所述协议流量统计中;如果不存在,则在所述协议流量统计表中,新增所述抓取的网络数据包采用的协议映射的协议流量统计,并将所述抓取的网络数据包的流量写入到所述协议流量统计中;
流量统计单元,用于按照预先设置的流量统计周期,统计协议流量统计表中各协议流量统计之和,得到终端设备的网络流量。
优选地,所述流量统计模块进一步包括:
内外网流量处理单元,用于判断获取的协议是否为网络层协议,如果是,获取解析的网络数据包的包头中包含的因特网协议地址,确定获取的因特网协议地址未在预先设置的本地因特网协议段范围内,且终端设备网卡中的媒体访问控制器地址与网关媒体访问控制器地址相同,将流量获取单元获取的网络数据包的流量统计为外网流量并通知查询处理单元;如果是非网络层协议,或,获取的因特网协议地址在预先设置的本地因特网协议段范围内,或终端设备网卡中的媒体访问控制器地址与网关媒体访问控制器地址不相同,将流量获取单元获取的网络数据包的流量统计为内网流量。
优选地,进一步包括:
流量上报模块,用于将流量统计模块得到的终端设备的网络流量上报至外部的流量管理服务器。
优选地,进一步包括:
流量控制模块,用于基于流量统计模块得到的终端设备的网络流量,计算终端设备单位时间内的网络流量,确定终端设备单位时间内的网络流量超过预先设置的单位时间流量阈值后,获取流经网络驱动接口规范中间层的网络数据包采用的协议,查询预先设置的协议流量控制策略集,得到所述采用的协议对应的协议流量控制策略,根据得到的协议流量控制策略,对网络数据包进行流量控制。
优选地,所述流量控制模块包括:单位流量计算单元、单位流量判断单元、查询单元以及流量控制单元,其中,
单位流量计算单元,用于基于流量统计模块得到的终端设备的网络流量,计算终端设备单位时间内的网络流量;
单位流量判断单元,用于确定终端设备单位时间内的网络流量超过预先设置的单位时间流量阈值后,获取流经网络驱动接口规范中间层的网络数据包采用的协议;
查询单元,用于查询预先设置的协议流量控制策略集,得到所述采用的协议对应的协议流量控制策略;
流量控制单元,用于根据得到的协议流量控制策略,对网络数据包进行流量控制。
优选地,所述流量控制单元包括:传输控制协议控制子单元、点对点协议控制子单元、流媒体通信协议控制子单元、网络电话协议控制子单元以及网络文件系统控制子单元,其中,
传输控制协议控制子单元,确定获取的网络数据包采用的协议为传输控制协议,在得到的协议流量控制策略为超速断开连接的情况下,发送重置连接包结束传输控制协议连接;
点对点协议控制子单元,确定获取的网络数据包采用的协议为点对点协议,查找并拦截点对点下载源的网络数据包,不放行拦截的网络数据包;
流媒体通信协议控制子单元,确定获取的网络数据包采用的协议为流媒体通信协议,发送该流媒体通信协议定义的控制限速命令包进行限速;
网络电话协议控制子单元,确定获取的网络数据包采用的协议为网络电话协议,发送该网络电话协议定义的控制限速命令包进行限速;
网络文件系统控制子单元,确定获取的网络数据包采用的协议为网络文件系统协议,发送修改过的该网络文件系统协议定义的最佳传输尺寸进行限速。
优选地,所述流量控制模块进一步包括:
流量控制例外处理单元,用于利用单位流量判断单元获取的网络数据包采用的协议解析网络数据包,得到源因特网协议地址、源端口号、目的因特网协议地址及目的端口号,在确定得到的源因特网协议地址和源端口号或目的因特网协议地址和目的端口号与预先设置的流量管理服务器的因特网协议地址和端口号不相同后,通知查询单元。
优选地,进一步包括:
旁路流量干预模块,用于在判断协议解析模块获取的网络数据包采用的协议为广播协议后,确定存在周期性查询的广播数据包且该周期性查询的广播数据包是查询自动代理协议的广播数据包,根据预先存储的旁路流量干预策略,构造代理因特网协议设置为流量管理服务器因特网协议地址的自动代理协议回应数据包,向对应的旁路终端设备发送自动代理协议回应数据包,以使旁路终端设备接收到自动代理协议回应数据包后,设置流量管理服务器作为代理。
优选地,所述协议集包括但不限于以下协议:因特网协议、传输控制协议、用户数据报协议、点对点协议、流媒体通信协议、网络电话协议、网络文件系统协议、地址解析协议以及路由协议。
根据本发明的再一个方面提供了一种基于终端设备的网络流量统计系统,该系统包括:流量管理服务器以及受控终端设备,其中,
受控终端设备,用于抓取流经网络驱动接口规范中间层的网络数据包,根据预先设置的协议集对抓取的网络数据包进行协议解析,获取抓取的网络数据包采用的协议,利用获取的协议解析所述抓取的网络数据包的包头,得到所述抓取的网络数据包的流量,统计每一抓取的网络数据包的流量之和,得到终端设备的网络流量并上报至流量管理服务器;接收流量管理服务器下发的协议流量控制策略,对网络数据包进行流量控制;
流量管理服务器,用于接收受控终端设备上报的网络流量,并对接收的各网络流量进行统计,根据统计的流量生成协议流量控制策略并下发至受控终端设备。
优选地,所述流量管理服务器包括:通信模块、流量统计模块以及流量控制策略管理模块,其中,
通信模块,用于接收受控终端设备上报的网络流量,输出至流量统计模块;接收流量控制策略管理模块输出的协议流量控制策略并向外发送;
流量统计模块,用于对接收的各网络流量进行统计;
流量控制策略管理模块,用于根据统计的流量生成协议流量控制策略并输出至通信模块。
优选地,所述流量管理服务器进一步包括:
流量报表模块,用于将流量统计模块统计的网络流量以流量报表的格式进行存储。
优选地,所述流量管理服务器进一步包括:
非受控终端设备识别模块,用于读取流量统计模块中的旁路流量信息,分析旁路流量信息,获取未受控制的非受控终端设备,通知流量控制策略管理模块向与非受控终端设备相连的受控终端设备下发旁路流量干预策略。
优选地,所述分析旁路流量信息,获取未受控制的非受控终端设备包括:
获取控制流量管理服务器中的受控终端设备列表;
枚举旁路流量信息,查询受控终端设备列表,如果枚举的旁路流量信息对应的终端设备未在受控终端设备列表中,将该枚举的旁路流量信息对应的终端设备置于未受控终端设备列表。
优选地,所述与非受控终端设备相连的受控终端设备为与非受控终端设备最近的受控终端设备,确定所述与非受控终端设备最近的受控终端设备包括:
读取流量管理服务器存储的未受控终端设备列表,枚举一未受控终端设备;
查询流量统计模块,得到与该未受控终端设备关联的关联流量信息;
按关联流量信息大小进行排序,读取排序最前的关联流量信息;
获取排序最前的关联流量信息对应的受控终端设备,作为所述与非受控终端设备最近的受控终端设备。
优选地,进一步包括:
路由器,用于接收受控终端设备的路由控制协议,调整路由表,以使非受控终端设备无法访问由流量管理服务器控制的网络。
优选地,所述流量管理服务器进一步包括:
优先通信模块,用于向受控终端设备的流量控制例外处理单元发送流量管理服务器的因特网协议地址和端口号信息。
根据本发明的终端设备、基于终端设备的网络流量统计方法及系统,通过在NDIS中间层进行网络数据包抓取,对抓取的网络数据包进行协议解析,得到抓取的网络数据包的流量,由此解决了对TDI层以下的网卡层的网络数据包的流量统计的技术问题,取得了实现对底层协议传输的网络数据包的流量统计,降低网络流量统计误差、提升网络流量统计精度的有益效果。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例基于终端设备的网络流量统计方法流程;
图2示出了本发明实施例的终端设备结构;以及,
图3示出了本发明实施例基于终端设备的网络流量统计系统结构。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
现有基于终端设备的网络流量统计及管理方法,在TDI层挂载流控驱动器进行协议解析,无法实现对位于TDI层以下的网卡层协议的解析,从而不能统计采用网卡层协议的网络数据包流量,使得终端设备的流量统计精度较低,误差较大。
现有基于终端设备的网络流量统计方法,通过TDI层挂载的流控驱动器对流经TDI层的网络数据包进行协议解析,并基于协议解析获取相应网络数据包的网络流量,然后,对基于每一协议解析获取的网络流量进行统计,得到该终端设备的网络流量。由于无法对运行在更底层的一些网络协议进行解析,使得采用底层协议的网络数据包无法实现基于终端设备整体上行或下行的流量统计,网络流量统计误差较大,精度较低。进一步地,现有网络流量统计方法没有区分内网流量与外网流量,增加了用户或企业的上网成本。
网络驱动接口规范(NDIS,Network Driver Interface Specification)中间层是为网络接口卡(NIC,Network Interface Cards,简称网卡)层(属于底层)制定的标准应用程序编程接口(API,Application Programming Interface)层,横跨传输层、网络层和数据链路层,定义了NIC硬件或NIC驱动程序与上层(例如,TDI层)协议驱动程序之间的通信接口规范,通过屏蔽底层物理硬件的不同,即通过媒体访问控制器(MAC,Media AccessController)驱动封装所有的NIC硬件实现,使得上层协议驱动程序可以和底层任何型号的NIC通信。
NDIS中间层提供一个函数库,该函数库中的函数可以被MAC驱动程序调用,也可以被上层协议(例如TCP/IP)驱动程序调用。具体来说,NDIS支持三种类型的网络驱动程序,分别为网卡驱动程序(NIC drivers)、中间驱动程序(Inter Mediate Protocol Drivers)以及协议驱动程序(Upper LevelProtocol Drivers)。其中,网卡驱动程序是网卡与上层驱动程序通信的接口,用于接收来自上层的网络数据包,或将网络数据包发送到上层相应的驱动程序。中间驱动程序位于网卡驱动程序和协议驱动程序之间,向上提供小端口(Minport)函数集,向下提供协议函数集,即对于上层驱动程序,中间驱动程序是小端口驱动程序,而对于底层驱动程序,中间驱动程序是协议驱动程序。协议驱动程序执行具体的网络协议,例如,IPX/SPX、TCP/IP等,协议驱动程序为应用层客户程序提供服务,接收来自网卡或中间驱动程序的信息进行协议解析。
本发明实施例中,考虑到NDIS的上述特性,在NDIS中间层中设置流量管理软件,由于可以实现NIC或NIC驱动程序与上层协议驱动程序之间的通信接口规范。这样,可以实现对采用底层,例如,NIC协议的网络数据包的流量统计,从而可以降低网络流量统计误差,提升网络流量统计精度。
图1示出了本发明实施例基于终端设备的网络流量统计方法流程。参见图1,该流程包括:
步骤101,抓取流经NDIS中间层的网络数据包;
本步骤中,NDIS中间层位于网卡层之上,TDI协议驱动层之下。在终端设备中,所有网络数据包都会通过NDIS中间层,才会进行往上或往下传输。这样,通过在NDIS中间层抓取网络数据包,可以考虑采用底层协议传输的网络数据包流量,可以使得针对终端设备的流量统计更完整,精度更高。关于抓取网络数据包为公知技术,在此略去详述。
本发明实施例中,流经NDIS中间层的网络数据包包括:网卡从外部接收并传输至NDIS中间层的接收网络数据包以及上层(TDI层)传输至NDIS中间层并经网卡发送的发送网络数据包。其中,网卡接收到来自外部的网络数据包后,输出至NDIS中间层进行中间处理,NDIS中间层对接收的网络数据包进行处理后,将处理的相应网络数据向上层,例如,TDI层传输;而NDIS中间层接收到来自上层的网络数据包后,进行中间处理后,将处理的网络数据向网卡传输。关于底层、NDIS中间层以及TDI层对网络数据包的处理为公知技术,在此略去详述。
作为可选实施例,上层传输至NDIS中间层的发送网络数据包流程包括:
A11,上层调用NDIS发送函数(NDIS Send),请求NDIS中间层发送网络数据包;
A12,NDIS中间层调用中间驱动程序对网络数据包进行处理后,中间驱动程序调用NDIS发送函数请求NDI S中间层发送处理的网络数据包;
A13,NDIS中间层调用小端口驱动程序,通过NDIS接口,将处理的网络数据包向网卡发送。
作为可选实施例,网卡传输至NDIS中间层的网络数据包流程包括:
A21,NDIS中间层接收来自网卡的网络数据包,调用小端口驱动程序,将接收的网络数据包置于缓冲区队列;
A22,调用中间驱动程序对缓冲区队列中的网络数据包进行处理后,中间驱动程序调用NDIS接收函数请求NDIS中间层通知上层以接收处理的网络数据包。
步骤102,根据预先设置的协议集对抓取的网络数据包进行协议解析,获取抓取的网络数据包采用的协议;
本步骤中,协议集包括:TDI层协议集以及网卡层协议集。其中,TDI层协议集包括:IP协议、TCP协议、UDP协议、点对点(P2P,Point to Point)协议、流媒体通信协议、网络电话(VoIP,Voice over IP)协议以及网络文件系统协议等,网卡层协议集包括:ARP协议以及路由协议等。每一协议通过解析采用该协议的网络数据包的包头,从而可以获取该网络数据包的大小信息,进而实现网络流量统计。
实际应用中,可以根据预先设置的标准协议格式对网络数据包进行协议解析,关于根据协议集对网络数据包进行协议解析,获取网络数据包采用的协议为公知技术,在此略去详述。
步骤103,利用获取的协议解析所述抓取的网络数据包的包头,得到所述抓取的网络数据包的流量;
本步骤中,根据获取的协议,对所述抓取的网络数据包进行包头解析,可以获取该网络数据包大小信息,即流量。例如,通过对网络数据包进行协议解析,获取该网络数据包采用的协议为TCP协议,则采用TCP协议对网络数据包的包头进行解析,可以得到包头中包含的网络数据包大小信息。
步骤104,统计每一抓取的网络数据包的流量之和,得到终端设备的网络流量。
作为可选实施例,该步骤具体包括:
B11,查询预先设置的协议流量统计表,如果存在所述抓取的网络数据包采用的协议映射的协议流量统计,将所述抓取的网络数据包的流量累加到所述协议流量统计中;如果不存在,则在所述协议流量统计表中,新增所述抓取的网络数据包采用的协议映射的协议流量统计,并将所述抓取的网络数据包的流量写入到所述协议流量统计中;
本步骤中,终端设备可以采用标准的流量记录生成格式,对基于每一协议的网络数据包流量在协议流量统计表进行记录,例如,可以采用Net Flow的标准流记录格式。
B12,按照预先设置的流量统计周期,统计协议流量统计表中各协议流量统计之和,得到终端设备的网络流量。
本步骤中,用户可以设置流量统计周期。例如,对应包月流量的用户,可以设置流量统计周期为七天或十天等。即每七天或十天进行一次网络流量统计。
作为另一可选实施例,由于是进行网络流量统计,未涉及网络流量的内网流量和外网流量区分,因而,该步骤也可具体包括:
将所述抓取的网络数据包流量累加到当前的流量统计中,按照预先设置的流量统计周期读取当前的流量统计。
本步骤中,所有协议对应同一流量统计,在根据协议解析网络数据包的包头获取流量信息后,将获取的流量信息累加到当前的流量统计中。
本发明实施例中,内网是指公司、企业等内部建立的局域网络或办公网络。举例来说,一家公司或一个家庭有多台计算机,通过利用不同网络布局将多台计算机连接起来,构成一个局部的办公或者资源共享网络,该构成的办公或者资源共享网络称之为内网。外网是指通过网关或网桥与其它网络系统连接的网络。举例来说,如果公司或家庭内的所有计算机构成的办公或者资源共享网络需要与公司或家庭以外的网络连接,则相对于办公或者资源共享网络来说,公司或家庭以外的网络就称之为外网。
如前所述,对于一个企业内的终端设备,对于内网流量,是属于无需付费的网络流量,因而,在进行网络流量统计时,可以对内网流量以及外网流量进行区分,以使用户可以更加详细了解所需付费的外网流量。因而,本发明实施例中,在得到所述抓取的网络数据包的流量之后,统计每一抓取的网络数据包的流量之和之前,该方法可以进一步包括:
C11,判断获取的协议是否为网络层协议,如果是,执行步骤C12,否则,将所述抓取的网络数据包的流量统计为内网流量;
本步骤中,网络层协议即TDI层协议集,包括IP协议、TCP协议等协议。非网络层协议为网卡层协议集,亦即非IP协议,可以是路由相关协议或ARP协议等。
C12,获取解析的网络数据包的包头中包含的IP地址;
本步骤中,可以在对抓取的网络数据包进行包头解析的流程中获取网络数据包的包头中的IP地址。
本发明实施例中,IP地址包括:源IP地址以及目的IP地址。
C13,判断获取的IP地址是否在预先设置的本地IP段范围内,如果是,将所述抓取的网络数据包的流量统计为内网流量,否则,执行步骤C14;
本步骤中,本地IP段范围为请求评论(RFC,Request for Comments)3330和RFC4193定义的本地IP段范围。如果IP协议包的IP地址在RFC3330或RFC4193定义的本地IP段范围内,即源IP地址和目的IP地址都在本地IP段范围内,表明该IP协议包是在本地网络内进行传输,则判定抓取的IP协议包(网络数据包)的流量为内网流量。
C14,读取终端设备网卡中的MAC地址,判断读取的MAC地址是否与网关MAC地址相同,如果是,将所述抓取的网络数据包的流量统计为外网流量,否则,将所述抓取的网络数据包的流量统计为内网流量;
本步骤中,如果源IP地址或目的IP地址不在本地IP段范围内,且读取的MAC地址与网关MAC地址相同,表明该IP协议包是由外部发送的数据包或向外发送的数据包。
C15,将统计的每一网络数据包的外网流量作为求和计算的所述每一抓取的网络数据包的流量。
本步骤中,由于内网流量并不占用用户付费的网络流量,因而,在进行用户网络流量统计时,可以只统计外网流量,以使用户得到的付费的网络流量更为精确,可靠性更高,用户体验更好。
本发明实施例中,通过执行步骤C11至步骤C15,可以实现网络流量的高精度统计,使得内外网流量的区分精度达到较高水平,有效降低用户或企业的网络成本。
实际应用中,在得到终端设备的网络流量之后,可以根据得到的网络流量,对终端设备的流量进行策略性控制,以使网络内的各终端设备的网络流量达到较佳的动态平衡。这样,该方法可以进一步包括:
C21,计算终端设备单位时间内的网络流量;
本步骤中,如前所述,按照流量划分的不同,例如,内网流量、外网流量、总流量以及基于每一协议的网络流量,因而,在单位时间内,可以对应不同的单位时间网络流量。
C22,确定终端设备单位时间内的网络流量超过预先设置的单位时间流量阈值后,获取流经NDIS中间层的网络数据包采用的协议;
本步骤中,对应于前述流量划分的不同,流量阈值可以包括:总(内外网)流量阈值、内网流量阈值、外网流量阈值以及基于每一协议的网络流量阈值。其中,对于基于协议的网络流量,针对不同的协议,可以设置不同的协议网络流量阈值。
本发明实施例中,通过设置单位时间流量阈值,可实现根据应用层协议特性的流量控制。
实际应用中,预先设置的单位时间流量阈值可以是由用户设置,也可以是由外部流量管理服务器根据网络内的各终端设备状态以及网络总负载,实时调整并下发至终端设备的单位时间流量阈值。
C23,查询预先设置的协议流量控制策略集,得到所述采用的协议对应的协议流量控制策略,根据得到的协议流量控制策略,对网络数据包进行流量控制。
本步骤中,同前所述,预先设置的协议流量控制策略集可以是由用户设置,也可以是由流量管理服务器根据网络内的各终端设备状态以及网络总负载,实时调整并下发至终端设备的协议流量控制策略集。
实际应用中,在进行流量控制时,需要确保终端设备与流量管理服务器的通信,以确保终端设备向流量管理服务器上报网络流量并接收流量管理服务器下发的协议流量控制策略集以及更新的单位时间流量阈值。因而,在获取抓取的网络数据包采用的协议之后,查询预先设置的协议流量控制策略集之前,该方法进一步包括:
D11,利用获取的网络数据包采用的协议解析网络数据包,得到源IP地址、源端口号、目的IP地址及目的端口号;
D12,判断得到的源IP地址和源端口号或目的IP地址和目的端口号是否与预先设置的流量管理服务器的IP地址和端口号相同,如果相同,不作处理,如果不相同,执行所述查询预先设置的协议流量控制策略集的流程。
本发明实施例中,在终端设备进行流量控制前,获取流量管理服务器的IP地址和端口号,并将流量管理服务器的IP地址和端口号置于流量控制例外列表中,在抓取网络数据包后,解析出网络数据包的源IP地址、源端口号、目的IP地址及目的端口号,然后,在流量控制例外列表中,查询是否存在与源IP地址和源端口号、或,目的IP地址和目的端口号对应的IP地址及端口号;如有则放行,没有则进行流量控制处理。
作为可选实施例,根据得到的协议流量控制策略,对网络数据包进行流量控制具体包括:
如果获取的网络数据包采用的协议为TCP协议,所述得到的协议流量控制策略为超速断开连接,发送重置连接(RST,Reset the connection)包结束TCP连接;
如果获取的网络数据包采用的协议为P2P协议,查找并拦截P2P下载源的网络数据包,不放行拦截的网络数据包;
如果获取的网络数据包采用的协议为流媒体通信协议,发送该流媒体通信协议定义的控制限速命令包进行限速;
如果获取的网络数据包采用的协议为VoIP协议,发送该VoIP协议定义的控制限速命令包进行限速;
如果获取的网络数据包采用的协议为网络文件系统(NFS,Network File System)协议,发送修改过的该NFS协议定义的最佳传输尺寸进行限速。
本发明实施例中,在根据获取的网络数据包采用的协议进行相应流量控制时,可以是基于内外网流量阈值、内网流量阈值、外网流量阈值或基于协议的网络流量阈值超过预先设置的单位时间流量阈值的应用场景。
实际应用中,终端设备接收的网络数据包中,会有一部分网络数据包是一终端设备通过该终端设备转发至另一终端设备的,该部分网络数据包作为旁路流量,计入外网流量,增加了用户的上网成本。因而,本发明实施例中,还可以进行旁路流量干预,使得通过该终端设备转发的网络数据包转移至通过流量管理服务器进行转发,从而节约该终端设备的网络流量。这样,在获取抓取的网络数据包采用的协议后,该方法进一步包括:
D31,判断抓取的网络数据包采用的协议是否为广播协议,如果是,执行步骤D32,否则,不作处理;
本步骤中,广播协议包括UDP协议以及ARP协议等。
D32,判断是否存在周期性查询的广播数据包,如果是,执行步骤D33,否则,结束流程;
本步骤中,通过一定时间内的网络数据包抓取,以判断是否存在周期性查询的广播数据包。对于采用广播协议传输的网络数据包,可能是终端设备所需的网络数据包,也可以是需要终端设备转发的网络数据包。因而,需要进行区分。
D33,判断是否是查询自动代理协议的广播数据包,如果是,执行步骤D34,否则,结束流程;
D34,构造代理IP设置为流量管理服务器IP地址的自动代理协议回应数据包;
本步骤中,构造自动代理协议回应数据包为公知技术,在此略去详述。
D35,向对应的旁路终端设备发送自动代理协议回应数据包,以使旁路终端设备接收到自动代理协议回应数据包后,设置流量管理服务器作为代理。这样,旁路终端设备不再向终端设备发送周期性查询的广播数据包,从而避免了终端设备的网络流量消耗,达到流量干预的目的。
图2示出了本发明实施例的终端设备结构。参见图2,该终端设备包括:网络数据包抓取模块、协议解析模块以及流量统计模块,其中,
网络数据包抓取模块,用于抓取流经NDIS中间层的网络数据包;
本发明实施例中,流经NDIS中间层的网络数据包包括:网卡从外部接收并传输至NDIS中间层的接收网络数据包以及上层(TDI层)传输至NDIS中间层并经网卡发送的发送网络数据包。
协议解析模块,用于根据预先设置的协议集对抓取的网络数据包进行协议解析,获取抓取的网络数据包采用的协议;
本发明实施例中,协议集包括但不限于以下协议:IP协议、TCP协议、UDP协议、P2P协议、流媒体通信协议、VoIP协议、网络文件系统协议、ARP协议以及路由协议。
流量统计模块,用于利用获取的协议解析所述抓取的网络数据包的包头,得到所述抓取的网络数据包的流量,统计每一抓取的网络数据包的流量之和,得到终端设备的网络流量。
其中,作为可选实施例,流量统计模块包括:流量获取单元、查询处理单元以及流量统计单元(图中未示出),其中,
流量获取单元,用于利用获取的协议解析所述抓取的网络数据包的包头,得到所述抓取的网络数据包的流量;
查询处理单元,用于查询预先设置的协议流量统计表,如果存在所述抓取的网络数据包采用的协议映射的协议流量统计,将所述抓取的网络数据包的流量累加到所述协议流量统计中;如果不存在,则在所述协议流量统计表中,新增所述抓取的网络数据包采用的协议映射的协议流量统计,并将所述抓取的网络数据包的流量写入到所述协议流量统计中;
本发明实施例中,终端设备可以采用标准的流量记录生成格式,对基于每一协议的网络数据包流量在协议流量统计表进行记录,例如,可以采用NetFlow的标准流记录格式。
流量统计单元,用于按照预先设置的流量统计周期,统计协议流量统计表中各协议流量统计之和,得到终端设备的网络流量。
作为可选实施例,该流量统计模块可以进一步包括:
内外网流量处理单元,用于判断获取的协议是否为网络层协议,如果是,获取解析的网络数据包的包头中包含的IP地址,确定获取的IP地址未在预先设置的本地IP段范围内,且终端设备网卡中的MAC地址与网关MAC地址相同,将流量获取单元获取的网络数据包的流量统计为外网流量并通知查询处理单元;如果是非网络层协议,或,获取的IP地址在预先设置的本地IP段范围内,或终端设备网卡中的MAC地址与网关MAC地址不相同,将流量获取单元获取的网络数据包的流量统计为内网流量。
作为可选实施例,该终端设备还可以进一步包括:
流量上报模块,用于将流量统计模块得到的终端设备的网络流量上报至外部的流量管理服务器。
作为另一可选实施例,该终端设备还可以进一步包括:
流量控制模块,用于基于流量统计模块得到的终端设备的网络流量,计算终端设备单位时间内的网络流量,确定终端设备单位时间内的网络流量超过预先设置的单位时间流量阈值后,获取流经NDIS中间层的网络数据包采用的协议,查询预先设置的协议流量控制策略集,得到所述采用的协议对应的协议流量控制策略,根据得到的协议流量控制策略,对网络数据包进行流量控制。
本发明实施例中,流量控制模块包括:单位流量计算单元、单位流量判断单元、查询单元以及流量控制单元(图中未示出),其中,
单位流量计算单元,用于基于流量统计模块得到的终端设备的网络流量,计算终端设备单位时间内的网络流量;
单位流量判断单元,用于确定终端设备单位时间内的网络流量超过预先设置的单位时间流量阈值后,获取流经NDIS中间层的网络数据包采用的协议;
查询单元,用于查询预先设置的协议流量控制策略集,得到所述采用的协议对应的协议流量控制策略;
流量控制单元,用于根据得到的协议流量控制策略,对网络数据包进行流量控制。
实际应用中,在进行流量控制时,需要确保终端设备与流量管理服务器的通信,以确保终端设备向流量管理服务器上报网络流量并接收流量管理服务器下发的协议流量控制策略集以及更新的单位时间流量阈值。因而,流量控制模块还可以进一步包括:
流量控制例外处理单元,用于利用单位流量判断单元获取的网络数据包采用的协议解析网络数据包,得到源IP地址、源端口号、目的IP地址及目的端口号,判断得到的源IP地址和源端口号或目的IP地址和目的端口号是否与预先设置的流量管理服务器的IP地址和端口号相同,如果相同,不作处理,如果不相同,通知查询单元。
本发明实施例中,如果得到的源IP地址和源端口号或目的IP地址和目的端口号与预先设置的流量管理服务器的IP地址和端口号相同,表明该网络数据包来自外部的流量管理服务器,为了确保终端设备与流量管理服务器的正常通信,对终端设备与流量管理服务器之间通信的网络数据包流量不进行限制。
其中,流量控制单元包括:TCP协议控制子单元、P2P协议控制子单元、流媒体通信协议控制子单元、VoIP协议控制子单元以及网络文件系统控制子单元,其中,
TCP协议控制子单元,确定获取的网络数据包采用的协议为TCP协议,在得到的协议流量控制策略为超速断开连接的情况下,发送重置连接包结束TCP连接;
P2P协议控制子单元,确定获取的网络数据包采用的协议为P2P协议,查找并拦截P2P下载源的网络数据包,不放行拦截的网络数据包;
流媒体通信协议控制子单元,确定获取的网络数据包采用的协议为流媒体通信协议,发送该流媒体通信协议定义的控制限速命令包进行限速;
VoIP协议控制子单元,确定获取的网络数据包采用的协议为VoIP协议,发送该VoIP协议定义的控制限速命令包进行限速;
网络文件系统控制子单元,确定获取的网络数据包采用的协议为网络文件系统协议,发送修改过的该NFS协议定义的最佳传输尺寸进行限速。
本发明实施例中,为了有效防止一终端设备通过该终端设备转发网络数据包至另一终端设备导致该终端设备流量消耗的情形,该终端设备可以进一步包括:
旁路流量干预模块,用于在判断协议解析模块获取的网络数据包采用的协议为广播协议后,确定存在周期性查询的广播数据包且该周期性查询的广播数据包是查询自动代理协议的广播数据包,根据预先存储的旁路流量干预策略,构造代理IP设置为流量管理服务器IP地址的自动代理协议回应数据包,向对应的旁路终端设备发送自动代理协议回应数据包,以使旁路终端设备接收到自动代理协议回应数据包后,设置流量管理服务器作为代理。
本发明实施例中,通过旁路流量干预模块对旁路流量进行有效干预,可以使得旁路终端设备在接收到自动代理协议回应数据包后,设置流量管理服务器作为代理。这样,旁路终端设备不再向终端设备发送周期性查询的广播数据包,从而避免了终端设备的网络流量消耗,达到流量干预的目的。
图3示出了本发明实施例基于终端设备的网络流量统计系统结构。参见图3,该系统包括:流量管理服务器以及受控终端设备,其中,
受控终端设备,用于抓取流经NDIS中间层的网络数据包,根据预先设置的协议集对抓取的网络数据包进行协议解析,获取抓取的网络数据包采用的协议,利用获取的协议解析所述抓取的网络数据包的包头,得到所述抓取的网络数据包的流量,统计每一抓取的网络数据包的流量之和,得到终端设备的网络流量并上报至流量管理服务器;接收流量管理服务器下发的协议流量控制策略,对网络数据包进行流量控制;
本发明实施例中,受控终端设备是指受流量管理服务器控制的设备,即前述的终端设备,终端设备可以主动将得到的终端设备网络流量进行上报,也可以是在接收到流量管理服务器的流量上报请求后进行上报。
实际应用中,受控终端设备可以即时上报网络流量,也可以是按照预先设置的商报周期上报网络流量。关于受控终端设备的结构,具体可参见图2,在此略去详述。
本发明实施例中,受控终端设备是指安装了客户端流量管理软件,并接受流量管理服务器进行流量管理的终端设备,其中,客户端流量管理软件可以是由流量管理服务器下发。非受控终端是指未安装客户端流量管理软件,从而不受流量管理服务器管理的终端设备。
作为可选实施例,网络流量包括:外网流量以及旁路流量,每一流量以不同的标识符进行标识。
流量管理服务器,用于接收受控终端设备上报的网络流量,并对接收的各网络流量进行统计,根据统计的流量生成协议流量控制策略并下发至受控终端设备。
其中,流量管理服务器包括:通信模块、流量统计模块以及流量控制策略管理模块(图中未示出),其中,
通信模块,用于接收受控终端设备上报的网络流量,输出至流量统计模块;接收流量控制策略管理模块输出的协议流量控制策略并向外发送;
本发明实施例中,协议流量控制策略包括但不限于:内网流量控制策略、外网流量控制策略以及旁路流量控制策略。例如,如果设置内网流量控制策略为内网流量为零,则使受控终端设备不能访问内网;如果设置外网流量控制策略为外网流量为零,则使受控终端设备不能访问外网。
流量统计模块,用于对接收的各网络流量进行统计;
流量控制策略管理模块,用于根据统计的流量生成协议流量控制策略并输出至通信模块。
本发明实施例中,作为可选实施例,流量管理服务器还可以进一步包括:
流量报表模块,用于将流量统计模块统计的网络流量以流量报表的格式进行存储。
本发明实施例中,流量报表模块可以采用标准的流量记录生成格式,对基于每一协议的网络数据包流量在协议流量统计表进行记录,例如,可以采用Net Flow的标准流记录格式生成流量报表。实际应用中,还可以对受控终端设备上报的网络流量按照预先设置的分类策略进行分类,并对每一分类的网络流量进行统计处理后存入数据库,生成协议流量统计表。
作为另一可选实施例,流量管理服务器还可以进一步包括:
非受控终端设备识别模块,用于读取流量统计模块中的旁路流量信息,分析旁路流量信息,获取未受控制的非受控终端设备,通知流量控制策略管理模块向与非受控终端设备相连的受控终端设备下发旁路流量干预策略。
本发明实施例中,旁路流量信息对应的非受控终端设备为旁路终端设备,旁路终端设备是指与受控终端设备在网络拓扑上相邻的非受控终端设备。旁路流量是指流经受控终端设备,但与该受控终端设备无关的流量。
作为可选实施例,非受控终端设备识别模块还可以进一步向与非受控终端设备最近的受控终端设备下发旁路流量干预策略。实际应用中,获取的未受控制的非受控终端设备可以为一个或多个,则向每一与非受控终端设备最近的受控终端设备分别下发旁路流量干预策略。作为一可选实施例,非受控终端设备识别模块还可以将识别出的未受控终端设备置入未受控终端设备列表中。
本发明实施例中,分析旁路流量信息,获取未受控制的非受控终端设备的流程包括:
获取控制流量管理服务器中的受控终端设备列表;
枚举旁路流量信息,查询受控终端设备列表,如果枚举的旁路流量信息对应的终端设备未在受控终端设备列表中,将该枚举的旁路流量信息对应的终端设备置于未受控终端设备列表。
确定与非受控终端设备最近的受控终端设备流程包括:
读取流量管理服务器存储的未受控终端设备列表,枚举一未受控终端设备;
查询流量统计模块,得到与该未受控终端设备关联的关联流量信息;
按关联流量信息大小进行排序,读取排序最前的关联流量信息;
获取排序最前的关联流量信息对应的受控终端设备。
本发明实施例中,排序最前的关联流量信息对应的受控终端设备为与未受控终端设备旁路最近的受控终端设备。
作为可选实施例,流量管理服务器还可以进一步包括:
优先通信模块,用于向受控终端设备的流量控制例外处理单元发送流量管理服务器的IP地址和端口号信息。
作为可选实施例,对应于非受控终端设备识别模块,该系统还可以进一步包括:
路由器,用于接收受控终端设备的路由控制协议,调整路由表,以使非受控终端设备无法访问由流量管理服务器控制的网络。
由上述可见,本发明实施例基于终端设备的网络流量统计系统,可以有效控制内外网访问,例如,如果一个单位有上外网查资料的需求,也有连内部办公网的需求,从安全的角度考虑,外网和内部办公网希望做到实时切换,切到外网则只能访问外网,切到内部办公网则只能访问内部办公网。通过上述技术方案,不仅可以实现内外网流量的高精度区分,而且,切换至内部办公网时,只需将协议流量控制策略设置为外网流量限速为0kb/s,而切换至外网时,只需将协议流量控制策略设置为内网流量限速为0kb/s,可以实时进行切换。这样,对终端设备整机流量管理更加有效,内外网流量区分更加准确,根据应用层协议特性进行流量控制,并对旁路终端的流量进行干预,流量限制更精准;进一步地,在限制流量的同时不影响终端设备与流量管理服务器的通信,从而实现流量管理服务器对网内所有终端设备(受控终端设备)进行更多样化的流量管理功能;而且,可以不依赖硬件设备实现随意切换内外网的网络限制功能,实现非法连接外网监测及告警,禁止非法连接外网,断网执行安全策略,非法连接内网,以及,对未受控终端设备进行流量干预等功能,从而有效满足了用户和企业多样化的网络管理需求,提升了业务体验。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的终端设备以及基于终端设备的网络流量统计系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站服务器上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了A1.一种基于终端设备的网络流量统计方法,包括:
抓取流经网络驱动接口规范中间层的网络数据包;
根据预先设置的协议集对抓取的网络数据包进行协议解析,获取抓取的网络数据包采用的协议;
利用获取的协议解析所述抓取的网络数据包的包头,得到所述抓取的网络数据包的流量;
统计每一抓取的网络数据包的流量之和,得到终端设备的网络流量。
A2.根据A1所述的方法,在所述得到所述抓取的网络数据包的流量之后,统计每一抓取的网络数据包的流量之和之前,所述方法进一步包括:
C11,判断获取的协议是否为网络层协议,如果是,执行步骤C12,否则,将所述抓取的网络数据包的流量统计为内网流量;
C12,获取解析的网络数据包的包头中包含的因特网协议地址;
C13,判断获取的因特网协议地址是否在预先设置的本地因特网协议段范围内,如果是,将所述抓取的网络数据包的流量统计为内网流量,否则,执行步骤C14;
C14,读取终端设备网卡中的媒体访问控制器地址,判断读取的媒体访问控制器地址是否与网关媒体访问控制器地址相同,如果是,将所述抓取的网络数据包的流量统计为外网流量,否则,将所述抓取的网络数据包的流量统计为内网流量;
C15,将统计的每一网络数据包的外网流量作为求和计算的所述每一抓取的网络数据包的流量。
A3.根据A2所述的方法,所述因特网协议地址包括:源因特网协议地址以及目的因特网协议地址,所述判断获取的因特网协议地址是否在预先设置的本地因特网协议段范围内为:所述源因特网协议地址以及目的因特网协议地址是否都在预先设置的本地因特网协议段范围内。
A4.根据A2所述的方法,所述本地因特网协议段范围为请求评论3330和请求评论4193定义的本地因特网协议段范围。
A5.根据A1所述的方法,所述方法进一步包括:
计算终端设备单位时间内的网络流量;
在确定终端设备单位时间内的网络流量超过预先设置的单位时间流量阈值后,获取流经网络驱动接口规范中间层的网络数据包采用的协议;
查询预先设置的协议流量控制策略集,得到所述采用的协议对应的协议流量控制策略,根据得到的协议流量控制策略,对网络数据包进行流量控制。
A6.根据A5所述的方法,在所述获取流经网络驱动接口规范中间层的网络数据包采用的协议之后,查询预先设置的协议流量控制策略集之前,所述方法进一步包括:
利用所述网络数据包采用的协议解析所述网络数据包的包头,得到源因特网协议地址、源端口号、目的因特网协议地址及目的端口号;
判断得到的源因特网协议地址和源端口号,或目的因特网协议地址和目的端口号是否与预先设置的流量管理服务器的因特网协议地址和端口号相同,在确定不相同后,执行所述查询预先设置的协议流量控制策略集的流程。
A7.根据A5所述的方法,所述根据得到的协议流量控制策略,对网络数据包进行流量控制具体包括:
如果获取的网络数据包采用的协议为传输控制协议,所述得到的协议流量控制策略为超速断开连接,发送重置连接包结束传输控制协议连接;
如果获取的网络数据包采用的协议为点对点协议,查找并拦截点对点下载源的网络数据包,不放行拦截的网络数据包;
如果获取的网络数据包采用的协议为流媒体通信协议,发送该流媒体通信协议定义的控制限速命令包进行限速;
如果获取的网络数据包采用的协议为网络电话协议,发送该网络电话协议定义的控制限速命令包进行限速;
如果获取的网络数据包采用的协议为网络文件系统协议,发送修改过的该网络文件系统协议定义的最佳传输尺寸进行限速。
A8.根据A5所述的方法,在所述获取流经网络驱动接口规范中间层的网络数据包采用的协议之后,所述方法进一步包括:
确定抓取的网络数据包采用的协议是广播协议;
确定存在周期性查询的广播数据包;
确定所述周期性查询的广播数据包是查询自动代理协议的广播数据包;
构造代理因特网协议设置为流量管理服务器因特网协议地址的自动代理协议回应数据包;
向对应的旁路终端设备发送自动代理协议回应数据包,以使旁路终端设备接收到自动代理协议回应数据包后,设置流量管理服务器作为代理。
A9.根据A1所述的方法,所述统计每一抓取的网络数据包的流量之和,得到终端设备的网络流量包括:
查询预先设置的协议流量统计表,如果存在所述抓取的网络数据包采用的协议映射的协议流量统计,将所述抓取的网络数据包的流量累加到所述协议流量统计中;如果不存在,则在所述协议流量统计表中,新增所述抓取的网络数据包采用的协议映射的协议流量统计,并将所述抓取的网络数据包的流量写入到所述协议流量统计中;
按照预先设置的流量统计周期,统计协议流量统计表中各协议流量统计之和,得到终端设备的网络流量。
A10.根据A9所述的方法,所述协议流量统计表采用净流量的标准流记录格式。
A11.根据A1所述的方法,所述统计每一抓取的网络数据包的流量之和,得到终端设备的网络流量包括:
将所述抓取的网络数据包流量累加到当前的流量统计中,按照预先设置的流量统计周期读取当前的流量统计。
A12.根据A1所述的方法,所述协议集包括:传输驱动程序接口层协议集以及网卡层协议集。
A13.根据A12所述的方法,所述传输驱动程序接口层协议集包括:因特网协议、传输控制协议、用户数据报协议、点对点协议、流媒体通信协议、网络电话协议以及网络文件系统协议,所述网卡层协议集包括:地址解析协议以及路由协议。
A14.根据A1所述的方法,所述流经网络驱动接口规范中间层的网络数据包包括:
网卡从外部接收并传输至网络驱动接口规范中间层的接收网络数据包以及传输驱动程序接口层传输至网络驱动接口规范中间层并经网卡发送的发送网络数据包。
A15.一种终端设备,该终端设备包括:网络数据包抓取模块、协议解析模块以及流量统计模块,其中,
网络数据包抓取模块,用于抓取流经网络驱动接口规范中间层的网络数据包;
协议解析模块,用于根据预先设置的协议集对抓取的网络数据包进行协议解析,获取抓取的网络数据包采用的协议;
流量统计模块,用于利用获取的协议解析所述抓取的网络数据包的包头,得到所述抓取的网络数据包的流量,统计每一抓取的网络数据包的流量之和,得到终端设备的网络流量。
A16.根据A15所述的终端设备,所述流量统计模块包括:流量获取单元、查询处理单元以及流量统计单元,其中,
流量获取单元,用于利用获取的协议解析所述抓取的网络数据包的包头,得到所述抓取的网络数据包的流量;
查询处理单元,用于查询预先设置的协议流量统计表,如果存在所述抓取的网络数据包采用的协议映射的协议流量统计,将所述抓取的网络数据包的流量累加到所述协议流量统计中;如果不存在,则在所述协议流量统计表中,新增所述抓取的网络数据包采用的协议映射的协议流量统计,并将所述抓取的网络数据包的流量写入到所述协议流量统计中;
流量统计单元,用于按照预先设置的流量统计周期,统计协议流量统计表中各协议流量统计之和,得到终端设备的网络流量。
A17.根据A16所述的终端设备,所述流量统计模块进一步包括:
内外网流量处理单元,用于判断获取的协议是否为网络层协议,如果是,获取解析的网络数据包的包头中包含的因特网协议地址,确定获取的因特网协议地址未在预先设置的本地因特网协议段范围内,且终端设备网卡中的媒体访问控制器地址与网关媒体访问控制器地址相同,将流量获取单元获取的网络数据包的流量统计为外网流量并通知查询处理单元;如果是非网络层协议,或,获取的因特网协议地址在预先设置的本地因特网协议段范围内,或终端设备网卡中的媒体访问控制器地址与网关媒体访问控制器地址不相同,将流量获取单元获取的网络数据包的流量统计为内网流量。
A18.根据A15所述的终端设备,进一步包括:流量上报模块,用于将流量统计模块得到的终端设备的网络流量上报至外部的流量管理服务器。
A19.根据A15所述的终端设备,进一步包括:
流量控制模块,用于基于流量统计模块得到的终端设备的网络流量,计算终端设备单位时间内的网络流量,确定终端设备单位时间内的网络流量超过预先设置的单位时间流量阈值后,获取流经网络驱动接口规范中间层的网络数据包采用的协议,查询预先设置的协议流量控制策略集,得到所述采用的协议对应的协议流量控制策略,根据得到的协议流量控制策略,对网络数据包进行流量控制。
A20.根据A19所述的终端设备,所述流量控制模块包括:单位流量计算单元、单位流量判断单元、查询单元以及流量控制单元,其中,
单位流量计算单元,用于基于流量统计模块得到的终端设备的网络流量,计算终端设备单位时间内的网络流量;
单位流量判断单元,用于确定终端设备单位时间内的网络流量超过预先设置的单位时间流量阈值后,获取流经网络驱动接口规范中间层的网络数据包采用的协议;
查询单元,用于查询预先设置的协议流量控制策略集,得到所述采用的协议对应的协议流量控制策略;
流量控制单元,用于根据得到的协议流量控制策略,对网络数据包进行流量控制。
A21.根据A20所述的终端设备,所述流量控制单元包括:传输控制协议控制子单元、点对点协议控制子单元、流媒体通信协议控制子单元、网络电话协议控制子单元以及网络文件系统控制子单元,其中,
传输控制协议控制子单元,确定获取的网络数据包采用的协议为传输控制协议,在得到的协议流量控制策略为超速断开连接的情况下,发送重置连接包结束传输控制协议连接;
点对点协议控制子单元,确定获取的网络数据包采用的协议为点对点协议,查找并拦截点对点下载源的网络数据包,不放行拦截的网络数据包;
流媒体通信协议控制子单元,确定获取的网络数据包采用的协议为流媒体通信协议,发送该流媒体通信协议定义的控制限速命令包进行限速;
网络电话协议控制子单元,确定获取的网络数据包采用的协议为网络电话协议,发送该网络电话协议定义的控制限速命令包进行限速;
网络文件系统控制子单元,确定获取的网络数据包采用的协议为网络文件系统协议,发送修改过的该网络文件系统协议定义的最佳传输尺寸进行限速。
A22.根据A20所述的终端设备,所述流量控制模块进一步包括:
流量控制例外处理单元,用于利用单位流量判断单元获取的网络数据包采用的协议解析网络数据包,得到源因特网协议地址、源端口号、目的因特网协议地址及目的端口号,在确定得到的源因特网协议地址和源端口号或目的因特网协议地址和目的端口号与预先设置的流量管理服务器的因特网协议地址和端口号不相同后,通知查询单元。
A23.根据A15所述的终端设备,进一步包括:
旁路流量干预模块,用于在判断协议解析模块获取的网络数据包采用的协议为广播协议后,确定存在周期性查询的广播数据包且该周期性查询的广播数据包是查询自动代理协议的广播数据包,根据预先存储的旁路流量干预策略,构造代理因特网协议设置为流量管理服务器因特网协议地址的自动代理协议回应数据包,向对应的旁路终端设备发送自动代理协议回应数据包,以使旁路终端设备接收到自动代理协议回应数据包后,设置流量管理服务器作为代理。
A24.根据A15所述的终端设备,所述协议集包括但不限于以下协议:因特网协议、传输控制协议、用户数据报协议、点对点协议、流媒体通信协议、网络电话协议、网络文件系统协议、地址解析协议以及路由协议。
A25.一种基于终端设备的网络流量统计系统,该系统包括:流量管理服务器以及受控终端设备,其中,
受控终端设备,用于抓取流经网络驱动接口规范中间层的网络数据包,根据预先设置的协议集对抓取的网络数据包进行协议解析,获取抓取的网络数据包采用的协议,利用获取的协议解析所述抓取的网络数据包的包头,得到所述抓取的网络数据包的流量,统计每一抓取的网络数据包的流量之和,得到终端设备的网络流量并上报至流量管理服务器;接收流量管理服务器下发的协议流量控制策略,对网络数据包进行流量控制;
流量管理服务器,用于接收受控终端设备上报的网络流量,并对接收的各网络流量进行统计,根据统计的流量生成协议流量控制策略并下发至受控终端设备。
A26.根据A25所述的系统,所述流量管理服务器包括:通信模块、流量统计模块以及流量控制策略管理模块,其中,
通信模块,用于接收受控终端设备上报的网络流量,输出至流量统计模块;接收流量控制策略管理模块输出的协议流量控制策略并向外发送;
流量统计模块,用于对接收的各网络流量进行统计;
流量控制策略管理模块,用于根据统计的流量生成协议流量控制策略并输出至通信模块。
A27.根据A26所述的系统,所述流量管理服务器进一步包括:
流量报表模块,用于将流量统计模块统计的网络流量以流量报表的格式进行存储。
A28.根据A26所述的系统,所述流量管理服务器进一步包括:
非受控终端设备识别模块,用于读取流量统计模块中的旁路流量信息,分析旁路流量信息,获取未受控制的非受控终端设备,通知流量控制策略管理模块向与非受控终端设备相连的受控终端设备下发旁路流量干预策略。
A29.根据A28所述的系统,所述分析旁路流量信息,获取未受控制的非受控终端设备包括:
获取控制流量管理服务器中的受控终端设备列表;
枚举旁路流量信息,查询受控终端设备列表,如果枚举的旁路流量信息对应的终端设备未在受控终端设备列表中,将该枚举的旁路流量信息对应的终端设备置于未受控终端设备列表。
A30.根据A28所述的系统,所述与非受控终端设备相连的受控终端设备为与非受控终端设备最近的受控终端设备,确定所述与非受控终端设备最近的受控终端设备包括:读取流量管理服务器存储的未受控终端设备列表,枚举一未受控终端设备;
查询流量统计模块,得到与该未受控终端设备关联的关联流量信息;
按关联流量信息大小进行排序,读取排序最前的关联流量信息;
获取排序最前的关联流量信息对应的受控终端设备,作为所述与非受控终端设备最近的受控终端设备。
A31.根据A28所述的系统,进一步包括:
路由器,用于接收受控终端设备的路由控制协议,调整路由表,以使非受控终端设备无法访问由流量管理服务器控制的网络。
A32.根据A26所述的系统,所述流量管理服务器进一步包括:
优先通信模块,用于向受控终端设备的流量控制例外处理单元发送流量管理服务器的因特网协议地址和端口号信息。

Claims (29)

1.一种基于终端设备的网络流量统计方法,包括:
抓取流经网络驱动接口规范中间层的网络数据包;
根据预先设置的协议集对抓取的网络数据包进行协议解析,获取抓取的网络数据包采用的协议;
利用获取的协议解析所述抓取的网络数据包的包头,得到所述抓取的网络数据包的流量;
统计每一抓取的网络数据包的流量之和,得到终端设备的网络流量;
如确定抓取的网络数据包采用的协议是广播协议;
确定存在周期性查询的广播数据包;
确定所述周期性查询的广播数据包是查询自动代理协议的广播数据包;
构造代理因特网协议地址设置为流量管理服务器因特网协议地址的自动代理协议回应数据包;
向对应的旁路终端设备发送自动代理协议回应数据包,以使旁路终端设备接收到自动代理协议回应数据包后,设置流量管理服务器作为代理。
2.如权利要求1所述的方法,在所述得到所述抓取的网络数据包的流量之后,统计每一抓取的网络数据包的流量之和之前,所述方法进一步包括:
C11,判断获取的协议是否为网络层协议,如果是,执行步骤C12,否则,将所述抓取的网络数据包的流量统计为内网流量;
C12,获取解析的网络数据包的包头中包含的因特网协议地址;
C13,判断获取的因特网协议地址是否在预先设置的本地因特网协议段范围内,如果是,将所述抓取的网络数据包的流量统计为内网流量,否则,执行步骤C14;
C14,读取终端设备网卡中的媒体访问控制器地址,判断读取的媒体访问控制器地址是否与网关媒体访问控制器地址相同,如果是,将所述抓取的网络数据包的流量统计为外网流量,否则,将所述抓取的网络数据包的流量统计为内网流量;
C15,将统计的每一网络数据包的外网流量作为求和计算的所述每一抓取的网络数据包的流量。
3.如权利要求2所述的方法,所述因特网协议地址包括:源因特网协议地址以及目的因特网协议地址,所述判断获取的因特网协议地址是否在预先设置的本地因特网协议段范围内为:所述源因特网协议地址以及目的因特网协议地址是否都在预先设置的本地因特网协议段范围内。
4.如权利要求2所述的方法,所述本地因特网协议段范围为请求评论3330和请求评论4193定义的本地因特网协议段范围。
5.如权利要求1所述的方法,所述方法进一步包括:
计算终端设备单位时间内的网络流量;
在确定终端设备单位时间内的网络流量超过预先设置的单位时间流量阈值后,获取流经网络驱动接口规范中间层的网络数据包采用的协议;
查询预先设置的协议流量控制策略集,得到所述采用的协议对应的协议流量控制策略,根据得到的协议流量控制策略,对网络数据包进行流量控制。
6.如权利要求5所述的方法,在所述获取流经网络驱动接口规范中间层的网络数据包采用的协议之后,查询预先设置的协议流量控制策略集之前,所述方法进一步包括:
利用所述网络数据包采用的协议解析所述网络数据包的包头,得到源因特网协议地址、源端口号、目的因特网协议地址及目的端口号;
判断得到的源因特网协议地址和源端口号,或目的因特网协议地址和目的端口号是否与预先设置的流量管理服务器的因特网协议地址和端口号相同,在确定不相同后,执行所述查询预先设置的协议流量控制策略集的流程。
7.如权利要求5所述的方法,所述根据得到的协议流量控制策略,对网络数据包进行流量控制具体包括:
如果获取的网络数据包采用的协议为传输控制协议,所述得到的协议流量控制策略为超速断开连接,发送重置连接包结束传输控制协议连接;
如果获取的网络数据包采用的协议为点对点协议,查找并拦截点对点下载源的网络数据包,不放行拦截的网络数据包;
如果获取的网络数据包采用的协议为流媒体通信协议,发送该流媒体通信协议定义的控制限速命令包进行限速;
如果获取的网络数据包采用的协议为网络电话协议,发送该网络电话协议定义的控制限速命令包进行限速;
如果获取的网络数据包采用的协议为网络文件系统协议,发送修改过的该网络文件系统协议定义的最佳传输尺寸进行限速。
8.如权利要求1所述的方法,所述统计每一抓取的网络数据包的流量之和,得到终端设备的网络流量包括:
查询预先设置的协议流量统计表,如果存在所述抓取的网络数据包采用的协议映射的协议流量统计,将所述抓取的网络数据包的流量累加到所述协议流量统计中;如果不存在,则在所述协议流量统计表中,新增所述抓取的网络数据包采用的协议映射的协议流量统计,并将所述抓取的网络数据包的流量写入到所述协议流量统计中;
按照预先设置的流量统计周期,统计协议流量统计表中各协议流量统计之和,得到终端设备的网络流量。
9.如权利要求8所述的方法,所述协议流量统计表采用净流量的标准流记录格式。
10.如权利要求1所述的方法,所述统计每一抓取的网络数据包的流量之和,得到终端设备的网络流量包括:
将所述抓取的网络数据包流量累加到当前的流量统计中,按照预先设置的流量统计周期读取当前的流量统计。
11.如权利要求1所述的方法,所述协议集包括:传输驱动程序接口层协议集以及网卡层协议集。
12.如权利要求11所述的方法,所述传输驱动程序接口层协议集包括:因特网协议、传输控制协议、用户数据报协议、点对点协议、流媒体通信协议、网络电话协议以及网络文件系统协议,所述网卡层协议集包括:地址解析协议以及路由协议。
13.如权利要求1所述的方法,所述流经网络驱动接口规范中间层的网络数据包包括:
网卡从外部接收并传输至网络驱动接口规范中间层的接收网络数据包以及传输驱动程序接口层传输至网络驱动接口规范中间层并经网卡发送的发送网络数据包。
14.一种终端设备,该终端设备包括:网络数据包抓取模块、协议解析模块、旁路流量干预模块以及流量统计模块,其中,
网络数据包抓取模块,用于抓取流经网络驱动接口规范中间层的网络数据包;
协议解析模块,用于根据预先设置的协议集对抓取的网络数据包进行协议解析,获取抓取的网络数据包采用的协议;
流量统计模块,用于利用获取的协议解析所述抓取的网络数据包的包头,得到所述抓取的网络数据包的流量,统计每一抓取的网络数据包的流量之和,得到终端设备的网络流量;
旁路流量干预模块,用于在判断协议解析模块获取的网络数据包采用的协议为广播协议后,确定存在周期性查询的广播数据包且该周期性查询的广播数据包是查询自动代理协议的广播数据包,根据预先存储的旁路流量干预策略,构造代理因特网协议地址设置为流量管理服器因特网协议地址的自动代理协议回应数据包,向对应的旁路终端设备发送自动代理协议回应数据包,以使旁路终端设备接收到自动代理协议回应数据包后,设置流量管理服务器作为代理。
15.如权利要求14所述的终端设备,所述流量统计模块包括:流量获取单元、查询处理单元以及流量统计单元,其中,
流量获取单元,用于利用获取的协议解析所述抓取的网络数据包的包头,得到所述抓取的网络数据包的流量;
查询处理单元,用于查询预先设置的协议流量统计表,如果存在所述抓取的网络数据包采用的协议映射的协议流量统计,将所述抓取的网络数据包的流量累加到所述协议流量统计中;如果不存在,则在所述协议流量统计表中,新增所述抓取的网络数据包采用的协议映射的协议流量统计,并将所述抓取的网络数据包的流量写入到所述协议流量统计中;
流量统计单元,用于按照预先设置的流量统计周期,统计协议流量统计表中各协议流量统计之和,得到终端设备的网络流量。
16.如权利要求15所述的终端设备,所述流量统计模块进一步包括:
内外网流量处理单元,用于判断获取的协议是否为网络层协议,如果是,获取解析的网络数据包的包头中包含的因特网协议地址,确定获取的因特网协议地址未在预先设置的本地因特网协议段范围内,且终端设备网卡中的媒体访问控制器地址与网关媒体访问控制器地址相同,将流量获取单元获取的网络数据包的流量统计为外网流量并通知查询处理单元;如果是非网络层协议,或,获取的因特网协议地址在预先设置的本地因特网协议段范围内,或终端设备网卡中的媒体访问控制器地址与网关媒体访问控制器地址不相同,将流量获取单元获取的网络数据包的流量统计为内网流量。
17.如权利要求14所述的终端设备,进一步包括:
流量上报模块,用于将流量统计模块得到的终端设备的网络流量上报至外部的流量管理服务器。
18.如权利要求14所述的终端设备,进一步包括:
流量控制模块,用于基于流量统计模块得到的终端设备的网络流量,计算终端设备单位时间内的网络流量,确定终端设备单位时间内的网络流量超过预先设置的单位时间流量阈值后,获取流经网络驱动接口规范中间层的网络数据包采用的协议,查询预先设置的协议流量控制策略集,得到所述采用的协议对应的协议流量控制策略,根据得到的协议流量控制策略,对网络数据包进行流量控制。
19.如权利要求18所述的终端设备,所述流量控制模块包括:单位流量计算单元、单位流量判断单元、查询单元以及流量控制单元,其中,
单位流量计算单元,用于基于流量统计模块得到的终端设备的网络流量,计算终端设备单位时间内的网络流量;
单位流量判断单元,用于确定终端设备单位时间内的网络流量超过预先设置的单位时间流量阈值后,获取流经网络驱动接口规范中间层的网络数据包采用的协议;
查询单元,用于查询预先设置的协议流量控制策略集,得到所述采用的协议对应的协议流量控制策略;
流量控制单元,用于根据得到的协议流量控制策略,对网络数据包进行流量控制。
20.如权利要求19所述的终端设备,所述流量控制单元包括:传输控制协议控制子单元、点对点协议控制子单元、流媒体通信协议控制子单元、网络电话协议控制子单元以及网络文件系统控制子单元,其中,
传输控制协议控制子单元,确定获取的网络数据包采用的协议为传输控制协议,在得到的协议流量控制策略为超速断开连接的情况下,发送重置连接包结束传输控制协议连接;
点对点协议控制子单元,确定获取的网络数据包采用的协议为点对点协议,查找并拦截点对点下载源的网络数据包,不放行拦截的网络数据包;
流媒体通信协议控制子单元,确定获取的网络数据包采用的协议为流媒体通信协议,发送该流媒体通信协议定义的控制限速命令包进行限速;
网络电话协议控制子单元,确定获取的网络数据包采用的协议为网络电话协议,发送该网络电话协议定义的控制限速命令包进行限速;
网络文件系统控制子单元,确定获取的网络数据包采用的协议为网络文件系统协议,发送修改过的该网络文件系统协议定义的最佳传输尺寸进行限速。
21.如权利要求19所述的终端设备,所述流量控制模块进一步包括:
流量控制例外处理单元,用于利用单位流量判断单元获取的网络数据包采用的协议解析网络数据包,得到源因特网协议地址、源端口号、目的因特网协议地址及目的端口号,在确定得到的源因特网协议地址和源端口号或目的因特网协议地址和目的端口号与预先设置的流量管理服务器的因特网协议地址和端口号不相同后,通知查询单元。
22.如权利要求14所述的终端设备,所述协议集包括但不限于以下协议:因特网协议、传输控制协议、用户数据报协议、点对点协议、流媒体通信协议、网络电话协议、网络文件系统协议、地址解析协议以及路由协议。
23.一种基于终端设备的网络流量统计系统,该系统包括:流量管理服务器以及受控终端设备,其中,
受控终端设备,用于抓取流经网络驱动接口规范中间层的网络数据包,根据预先设置的协议集对抓取的网络数据包进行协议解析,获取抓取的网络数据包采用的协议,利用获取的协议解析所述抓取的网络数据包的包头,得到所述抓取的网络数据包的流量,统计每一抓取的网络数据包的流量之和,得到终端设备的网络流量并上报至流量管理服务器;接收流量管理服务器下发的协议流量控制策略,对网络数据包进行流量控制;
流量管理服务器,用于接收受控终端设备上报的网络流量,并对接收的各网络流量进行统计,根据统计的流量生成协议流量控制策略并下发至受控终端设备;所述流量管理服务器包括非受控终端设备识别模块,所述非受控终端设备识别模块用于读取流量统计模块中的旁路流量信息,分析旁路流量信息,获取未受控制的非受控终端设备,通知流量控制策略管理模块向与非受控终端设备相连的受控终端设备下发旁路流量干预策略。
24.如权利要求23所述的系统,所述流量管理服务器包括:通信模块、流量统计模块以及流量控制策略管理模块,其中,
通信模块,用于接收受控终端设备上报的网络流量,输出至流量统计模块;接收流量控制策略管理模块输出的协议流量控制策略并向外发送;
流量统计模块,用于对接收的各网络流量进行统计;
流量控制策略管理模块,用于根据统计的流量生成协议流量控制策略并输出至通信模块。
25.如权利要求24所述的系统,所述流量管理服务器进一步包括:
流量报表模块,用于将流量统计模块统计的网络流量以流量报表的格式进行存储。
26.如权利要求23所述的系统,所述分析旁路流量信息,获取未受控制的非受控终端设备包括:
获取流量管理服务器中的受控终端设备列表;
枚举旁路流量信息,查询受控终端设备列表,如果枚举的旁路流量信息对应的终端设备未在受控终端设备列表中,将该枚举的旁路流量信息对应的终端设备置于未受控终端设备列表。
27.如权利要求23所述的系统,所述与非受控终端设备相连的受控终端设备为与非受控终端设备最近的受控终端设备,确定所述与非受控终端设备最近的受控终端设备包括:
读取流量管理服务器存储的未受控终端设备列表,枚举一未受控终端设备;
查询流量统计模块,得到与该未受控终端设备关联的关联流量信息;
按关联流量信息大小进行排序,读取排序最前的关联流量信息;
获取排序最前的关联流量信息对应的受控终端设备,作为所述与非受控终端设备最近的受控终端设备。
28.如权利要求23所述的系统,进一步包括:
路由器,用于接收受控终端设备的路由控制协议,调整路由表,以使非受控终端设备无法访问由流量管理服务器控制的网络。
29.如权利要求24所述的系统,所述流量管理服务器进一步包括:
优先通信模块,用于向受控终端设备的流量控制例外处理单元发送流量管理服务器的因特网协议地址和端口号信息。
CN201410165750.4A 2014-04-23 2014-04-23 终端设备、基于终端设备的网络流量统计方法及系统 Active CN105099730B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410165750.4A CN105099730B (zh) 2014-04-23 2014-04-23 终端设备、基于终端设备的网络流量统计方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410165750.4A CN105099730B (zh) 2014-04-23 2014-04-23 终端设备、基于终端设备的网络流量统计方法及系统

Publications (2)

Publication Number Publication Date
CN105099730A CN105099730A (zh) 2015-11-25
CN105099730B true CN105099730B (zh) 2018-08-10

Family

ID=54579358

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410165750.4A Active CN105099730B (zh) 2014-04-23 2014-04-23 终端设备、基于终端设备的网络流量统计方法及系统

Country Status (1)

Country Link
CN (1) CN105099730B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105530655A (zh) * 2015-12-29 2016-04-27 北京金山安全软件有限公司 一种流量监控方法和装置
CN106161251B (zh) * 2016-06-14 2019-06-07 国家计算机网络与信息安全管理中心 报文安全分析方法和装置
CN106656838A (zh) * 2016-10-19 2017-05-10 赛尔网络有限公司 一种流量分析方法及系统
CN107026767B (zh) * 2017-03-30 2019-10-18 上海七牛信息技术有限公司 业务协议指标数据收集方法及系统
CN109391522B (zh) * 2017-08-14 2021-04-20 华为技术有限公司 基于rdma的网络流量确定方法、转发设备、分析服务器和存储介质
CN108616399B (zh) * 2018-05-09 2021-02-12 北京神州绿盟信息安全科技股份有限公司 一种报文统计方法及装置
CN109981400A (zh) * 2019-02-28 2019-07-05 深圳市伟文无线通讯技术有限公司 一种移动路由器轻量级的WiFi用户流量统计和限制方法
CN110519257B (zh) * 2019-08-22 2022-04-01 北京天融信网络安全技术有限公司 一种网络信息的处理方法及装置
CN111245975A (zh) * 2020-03-15 2020-06-05 上海商米科技集团股份有限公司 确定流量信息归属的方法和装置
CN114465743B (zh) * 2020-12-01 2023-08-01 杭州盈高科技有限公司 一种数据流量监测分析方法
CN112738114B (zh) * 2020-12-31 2023-04-07 四川新网银行股份有限公司 一种网络安全策略的配置方法
CN114422404A (zh) * 2022-01-18 2022-04-29 北京百度网讯科技有限公司 流量统计方法、装置、设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1246397A2 (de) * 2001-03-26 2002-10-02 Siemens Aktiengesellschaft Verfahren zur Unterscheidung zwischen Intranet - und Internetverkehr bei Nutzung eines Kommunikationsnetzes und entsprechende Funktionseinheit
CN1725708A (zh) * 2005-06-24 2006-01-25 杭州华为三康技术有限公司 数据流量的统计方法
CN101459523A (zh) * 2007-12-12 2009-06-17 浪潮乐金数字移动通信有限公司 基于移动通信终端的上网流量统计方法及装置
CN101702121A (zh) * 2009-10-29 2010-05-05 珠海金山软件股份有限公司 Windows系统中程序网络流速控制装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1246397A2 (de) * 2001-03-26 2002-10-02 Siemens Aktiengesellschaft Verfahren zur Unterscheidung zwischen Intranet - und Internetverkehr bei Nutzung eines Kommunikationsnetzes und entsprechende Funktionseinheit
CN1725708A (zh) * 2005-06-24 2006-01-25 杭州华为三康技术有限公司 数据流量的统计方法
CN101459523A (zh) * 2007-12-12 2009-06-17 浪潮乐金数字移动通信有限公司 基于移动通信终端的上网流量统计方法及装置
CN101702121A (zh) * 2009-10-29 2010-05-05 珠海金山软件股份有限公司 Windows系统中程序网络流速控制装置

Also Published As

Publication number Publication date
CN105099730A (zh) 2015-11-25

Similar Documents

Publication Publication Date Title
CN105099730B (zh) 终端设备、基于终端设备的网络流量统计方法及系统
US9762538B2 (en) Flow ownership assignment in a distributed processor system
US10050936B2 (en) Security device implementing network flow prediction
US8812725B2 (en) System and method for latency reduction in a network environment
EP1722508B1 (en) Distributed traffic analysis
CN103348335B (zh) 将多个功能聚集到单一平台
EP3148118A1 (en) Providing application metadata using export protocols in computer networks
US8036127B2 (en) Notifying network applications of receive overflow conditions
EP2854347A2 (en) Session-aware service chaining within computer networks
US9467422B2 (en) Event aggregation in a distributed processor system
CN113676361A (zh) 针对体验质量度量的按需探测
CN1518281A (zh) Ip路由器、通信系统和其中使用的频带设置方法及程序
US9246775B2 (en) System, method and apparatus for filtering subscriber network traffic
US10979349B2 (en) Methods and apparatuses for flexible mobile steering in cellular networks
CN114006937A (zh) 应用服务级别协议的动态预测和管理
US8630296B2 (en) Shared and separate network stack instances
CN114006829B (zh) 基于历史数据合成探测参数的方法、网络设备和介质
US20170063660A1 (en) Application-specific integrated circuit data flow entity counting
EP3282672A1 (en) Security device implementing flow ownership assignment in a distributed processor system
CN115348043A (zh) 一种确定报文地址的方法、防火墙及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20161221

Address after: 100016 Jiuxianqiao Chaoyang District Beijing Road No. 10, building 15, floor 17, layer 1701-26, 3

Applicant after: BEIJING QIANXIN TECHNOLOGY Co.,Ltd.

Address before: 100088 Beijing city Xicheng District xinjiekouwai Street 28, block D room 112 (Desheng Park)

Applicant before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Applicant before: Qizhi software (Beijing) Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 100032 Building 3 332, 102, 28 Xinjiekouwai Street, Xicheng District, Beijing

Patentee after: QAX Technology Group Inc.

Address before: 100016 15, 17 floor 1701-26, 3 building, 10 Jiuxianqiao Road, Chaoyang District, Beijing.

Patentee before: BEIJING QIANXIN TECHNOLOGY Co.,Ltd.

CP03 Change of name, title or address