CN110022248A - 链路流量统计方法及系统、流量统计主机以及统计请求端 - Google Patents
链路流量统计方法及系统、流量统计主机以及统计请求端 Download PDFInfo
- Publication number
- CN110022248A CN110022248A CN201910317093.3A CN201910317093A CN110022248A CN 110022248 A CN110022248 A CN 110022248A CN 201910317093 A CN201910317093 A CN 201910317093A CN 110022248 A CN110022248 A CN 110022248A
- Authority
- CN
- China
- Prior art keywords
- link
- information
- statistics
- data
- chained list
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/04—Processing captured monitoring data, e.g. for logfile generation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种链路流量统计方法及系统、流量统计主机以及统计请求端,该链路流量统计方法应用于流量统计主机时,包括:获取外部网络设备发送的至少一个流量数据包;接收统计请求端发送的链路统计请求;根据所述链路统计请求中携带的周期信息,生成与所述至少一个流量数据包相对应的链路统计信息链表;将所述链路统计信息链表发送给所述统计请求端。本方案能提高流量统计的准确性,并且系统部署更为灵活,同时降低了对流量统计主机的性能要求。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种链路流量统计方法及系统、流量统计主机以及统计请求端。
背景技术
一个网络系统通常由许多主机组成,各个主机之间的通信往往影响整个网络系统的性能。而网络链路的流量统计有利于及时发现流量异常,定位原因,因此网络链路的流量统计对维持网络系统的稳定性十分重要。
现有技术中,通常采用sFlow技术来监控网络系统中交换机或路由器的转发状况,以实现网络链路的流量统计。采用sFlow技术进行流量统计时,通常先采集固定时间区间的大量报文,再从这大量报文中随机选取一定数量的报文,然后根据选取出的报文进行流量统计。
在上述过程中,由于流量统计结果是根据从大量报文中随机选出的部分报文统计得出,因此流量统计结果具有一定的随机性,从而导致流量统计结果不够准确。
发明内容
本发明实施例提供了一种链路流量统计方法及系统、流量统计主机以及统计请求端,能提高流量统计的准确性。
第一方面,本发明实施例提供了一种链路流量统计方法,应用于流量统计主机,包括:
获取外部网络设备发送的至少一个流量数据包;
接收统计请求端发送的链路统计请求;
根据所述链路统计请求中携带的周期信息,生成与所述至少一个流量数据包相对应的链路统计信息链表;
将所述链路统计信息链表发送给所述统计请求端。
优选地,
在所述获取外部网络设备发送的至少一个流量数据包之后,进一步包括:
对所述至少一个流量数据包进行解析,确定每一个所述流量数据包的属性信息;其中,所述属性信息指示了所述流量数据包的时间戳和以下任意一项或多项:第一源IP、第一源端口、第一目的IP、第一目的端口、所述流量数据包的大小、所述流量数据包的类型、发送所述流量数据包的所述网络设备的标识信息以及发送所述流量数据包的所述网络设备的端口;
根据所述属性信息,生成所述至少一个流量数据包对应的报文链表;其中,所述报文链表中的第一链路信息与所述流量数据包一一对应,且所述第一链路信息包括所对应的所述流量数据包的属性信息;
则,所述根据所述链路统计请求中携带的周期信息,生成与所述至少一个流量数据包相对应的链路统计信息链表,包括:
根据所述周期信息以及所述报文链表,生成所述链路统计信息链表。
优选地,
所述根据所述周期信息以及所述报文链表,生成所述链路统计信息链表,包括:
从所述报文链表中选择一个所述第一链路信息作为当前链路信息,并执行A1;
A1:根据所述当前链路信息包括的当前属性信息所指示的所述时间戳,确定所述时间戳是否与所述周期信息相匹配,如果是,执行A2;
A2:确定所述链路统计信息链表中是否存在与所述当前链路信息相对应的第二链路信息;如果是,执行A3或A4,否则执行A5;其中,所述第二链路信息指示的流量方向与所述当前链路信息指示的流量方向相同或相反;
A3:当所述第二链路信息指示的流量方向与所述当前链路信息指示的流量方向相同时,将所述当前属性信息指示的所述流量数据包的大小叠加到所述第二链路信息指示的流出流量中,并递增所述第二链路信息指示的流出包数;
A4:当所述第二链路信息指示的流量方向与所述当前链路信息指示的流量方向相反时,将所述当前属性信息指示的所述流量数据包的大小叠加到所述第二链路信息指示的流入流量中,并递增所述第二链路信息指示的流入包数;
A5:在所述链路统计信息链表中构建与所述当前属性信息相对应的第三链路信息,并将所述第三链路信息的流出包数设置为1,且所述第三链路信息指示的流出流量为所述当前属性信息指示的所述流量数据包的大小;其中,所述第三链路信息指示的流量方向与所述当前链路信息指示的流量方向相同;
A6:从所述报文链表中选择一个未被选择过的所述第一链路信息作为所述当前链路信息,执行A1。
优选地,
该方法进一步包括:
将所述报文链表中被选择过的所述第一链路信息进行删除。
第二方面,本发明实施例提供了一种链路流量统计方法,应用于统计请求端,包括:
根据预设的周期信息,向流量统计主机发送链路统计请求;
接收所述流量统计主机根据所述链路统计请求返回的链路统计信息链表;
对所述链路统计信息链表进行存储。
第三方面,本发明实施例提供了一种流量统计主机,包括:数据包获取模块、请求接收模块、链路统计模块;其中,
所述数据包获取模块,用于获取外部网络设备发送的至少一个流量数据包;
所述请求接收模块,用于接收统计请求端发送的链路统计请求;
所述链路统计模块,用于根据所述链路统计请求中携带的周期信息,生成与所述至少一个流量数据包相对应的链路统计信息链表,并将所述链路统计信息链表发送给所述统计请求端。
优选地,
进一步包括:链表生成模块;其中,
所述链表生成模块,用于对所述至少一个流量数据包进行解析,确定每一个所述流量数据包的属性信息;根据所述属性信息,生成所述至少一个流量数据包对应的报文链表;其中,所述报文链表中的第一链路信息与所述流量数据包一一对应,且所述第一链路信息包括所对应的所述流量数据包的属性信息;所述属性信息指示了所述流量数据包的时间戳和以下任意一项或多项:第一源IP、第一源端口、第一目的IP、第一目的端口、所述流量数据包的大小、所述流量数据包的类型、发送所述流量数据包的所述网络设备的标识信息以及发送所述流量数据包的所述网络设备的端口;
所述链路统计模块,用于根据所述周期信息以及所述报文链表,生成所述链路统计信息链表。
优选地,
所述链路统计模块,用于从所述报文链表中选择一个所述第一链路信息作为当前链路信息,并执行A1;
A1:根据所述当前链路信息包括的当前属性信息所指示的所述时间戳,确定所述时间戳是否与所述周期信息相匹配,如果是,执行A2;
A2:确定所述链路统计信息链表中是否存在与所述当前链路信息相对应的第二链路信息;如果是,执行A3或A4,否则执行A5;其中,所述第二链路信息指示的流量方向与所述当前链路信息指示的流量方向相同或相反;
A3:当所述第二链路信息指示的流量方向与所述当前链路信息指示的流量方向相同时,将所述当前属性信息指示的所述流量数据包的大小叠加到所述第二链路信息指示的流出流量中,并递增所述第二链路信息指示的流出包数;
A4:当所述第二链路信息指示的流量方向与所述当前链路信息指示的流量方向相反时,将所述当前属性信息指示的所述流量数据包的大小叠加到所述第二链路信息指示的流入流量中,并递增所述第二链路信息指示的流入包数;
A5:在所述链路统计信息链表中构建与所述当前属性信息相对应的第三链路信息,并将所述第三链路信息的流出包数设置为1,且所述第三链路信息指示的流出流量为所述当前属性信息指示的所述流量数据包的大小;其中,所述第三链路信息指示的流量方向与所述当前链路信息指示的流量方向相同;
A6:从所述报文链表中选择一个未被选择过的所述第一链路信息作为所述当前链路信息,执行A1。
第四方面,本发明实施例提供了一种统计请求端,包括:请求发送模块、接收模块和存储模块;其中,
所述请求发送模块,用于根据预设的周期信息,向流量统计主机发送链路统计请求;
所述接收模块,用于接收所述流量统计主机根据所述链路统计请求返回的链路统计信息链表;
所述存储模块,用于对所述链路统计信息链表进行存储。
第五方面,本发明实施例提供了一种链路流量统计系统,包括:上述任一所述的流量统计主机以及上述任一所述的统计请求端。
本发明实施例提供了一种链路流量统计方法及系统、流量统计主机以及统计请求端,在接收到网络设备发送的多个流量数据包后,根据统计请求端发送的链路统计请求中携带的周期信息,构建与所有流量数据包相对应的链路统计信息链表,并将链路统计信息链表返回给统计请求端。由此,流量统计结果(即链路统计信息链表)为根据所有流量数据包统计得出,相对于现有技术的随机选取流量数据包,有效提高了流量统计的准确性。并且,流量统计的周期信息由统计请求端设定,即将流量统计与周期信息的设定分离开来,相对于现有技术中采集固定时间区间的大量报文,即将流量统计与周期信息设定功能绑定在一起,系统部署更为灵活,且降低了对流量统计主机的性能要求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种链路流量统计方法的流程图;
图2是本发明另一实施例提供的一种链路流量统计方法的流程图;
图3是本发明一实施例提供的一种流量统计主机的结构示意图;
图4是本发明另一实施例提供的一种流量统计主机的结构示意图;
图5是本发明一实施例提供的一种统计请求端的结构示意图;
图6是本发明一实施例提供的一种链路流量统计系统的结构示意图;
图7是本发明一实施例提供的一种利用链路流量统计系统进行链路流量统计的方法的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种链路流量统计方法,应用于流量统计主机,该方法可以包括以下步骤:
步骤101:获取外部网络设备发送的至少一个流量数据包;
步骤102:接收统计请求端发送的链路统计请求;
步骤103:根据所述链路统计请求中携带的周期信息,生成与所述至少一个流量数据包相对应的链路统计信息链表;
步骤104:将所述链路统计信息链表发送给所述统计请求端。
上述实施例中,流量统计主机在接收到网络设备发送的多个流量数据包后,根据统计请求端发送的链路统计请求中携带的周期信息,生成与所有流量数据包相对应的链路统计信息链表,并将链路统计信息链表返回给统计请求端。由此,流量统计结果(即链路统计信息链表)为根据所有流量数据包统计得出,相对于现有技术的随机选取流量数据包,有效提高了流量统计的准确性。并且,流量统计的周期信息由统计请求端设定,即将流量统计与周期信息的设定分离开来,相对于现有技术中采集固定时间区间的大量报文,即将流量统计与周期信息设定功能绑定在一起,系统部署更为灵活,且降低了对流量统计主机的性能要求。
在具体实施该方法前,可对网络设备、流量统计主机和统计请求端进行预先配置和部署。例如,可在collect主机上运行flowmanger进程,其中,flowmanger进程负责对流量数据包(即sflow报文)进行接收解析,并且在接收到统计请求端发送的链路统计请求(flowreq请求)后,进行网络链路流量数据统计。对流量统计主机进行配置,即是在flowmanger运行的主机(流量统计主机)上编辑flowmanger配置文件,配置文件包括接收sflow报文监听的端口、统计请求端(flowreq主机)IP、接收链路统计请求(flowreq请求)的端口,配置完成后启动flowmanger进程即可执行如图1所示的链路流量统计方法。
其中,网络设备可以为交换机或路由器。以交换机为例,可预先对交换机的sFlowcollect主机和报文采样率进行设置,具体地,可设置交换机的报文采样率为100%,当然,也可以设置交换机的报文采样率为其他数值,例如75%或80%。在本发明实施例中,为了提高流量统计的准确性,将交换机的报文采样率设置为100%。另外,将交换机对应的collect主机地址设置为flowmanger运行的主机,以使交换机将采集到的sflow报文发送给流量统计主机。
另外,在统计请求端(flowreq主机)上,可编写一个shell脚本,脚本中调用flowreq进程,其参数为flowmanger主机IP和端口、时间戳,以使flowreq主机(统计请求端)可向flowmanger主机(流量统计主机)发送链路统计请求,并获取链路统计信息链表。
本发明一个实施例中,在步骤101之后,可以进一步包括:
对所述至少一个流量数据包进行解析,确定每一个所述流量数据包的属性信息;其中,所述属性信息指示了所述流量数据包的时间戳和以下任意一项或多项:第一源IP、第一源端口、第一目的IP、第一目的端口、所述流量数据包的大小、所述流量数据包的类型、发送所述流量数据包的所述网络设备的标识信息以及发送所述流量数据包的所述网络设备的端口;
根据所述属性信息,生成所述至少一个流量数据包对应的报文链表;其中,所述报文链表中的第一链路信息与所述流量数据包一一对应,且所述第一链路信息包括所对应的所述流量数据包的属性信息;
则步骤103的具体实施方式,可以包括:
根据所述周期信息以及所述报文链表,生成所述链路统计信息链表。
当流量统计主机接收到交换机发送的流量数据包后,可对每一个流量数据包进行解析,保留其属性信息:时间戳、第一源IP、第一源端口、第一目的IP、第一目的端口、所述流量数据包的大小、所述流量数据包的类型(TCP、UDP)、发送所述流量数据包的所述网络设备的标识信息以及发送所述流量数据包的所述网络设备的端口,然后将每一个流量数据包的属性信息存入报文链表中,并且报文链表中的第一链路信息与流量数据包一一对应,每一个第一链路信息对应有一个objectid,用以对该第一链路信息进行标识,以便于后期根据报文链表生成链路统计信息链表的过程中对第一链路信息进行查找。例如,objectid的格式为流量数据包的类型-第一源IP:第一源端口-第一目的IP:第一目的端口。
另外,为了进一步便于生成链路统计信息链表的过程中对第一链路信息进行查找,将报文链表中的各个第一链路信息根据其时间戳顺序进行排列,例如,报文链表中从尾部到头部的流量数据包是按其时间递增顺序存储的。由此,在生成链路统计信息链表时,可根据报文链表中的每一个第一链路信息,对流入流量、流入包数、流出流量和流出包数等进行统计,从而提高链路统计信息链表的生成效率,从而提高流量统计的准确性。
本发明一个实施例中,所述根据所述周期信息以及所述报文链表,生成所述链路统计信息链表,包括:
从所述报文链表中选择一个所述第一链路信息作为当前链路信息,并执行A1;
A1:根据所述当前链路信息包括的当前属性信息所指示的所述时间戳,确定所述时间戳是否与所述周期信息相匹配,如果是,执行A2;
A2:确定所述链路统计信息链表中是否存在与所述当前链路信息相对应的第二链路信息;如果是,执行A3或A4,否则执行A5;其中,所述第二链路信息指示的流量方向与所述当前链路信息指示的流量方向相同或相反;
A3:当所述第二链路信息指示的流量方向与所述当前链路信息指示的流量方向相同时,将所述当前属性信息指示的所述流量数据包的大小叠加到所述第二链路信息指示的流出流量中,并递增所述第二链路信息指示的流出包数;
A4:当所述第二链路信息指示的流量方向与所述当前链路信息指示的流量方向相反时,将所述当前属性信息指示的所述流量数据包的大小叠加到所述第二链路信息指示的流入流量中,并递增所述第二链路信息指示的流入包数;
A5:在所述链路统计信息链表中构建与所述当前属性信息相对应的第三链路信息,并将所述第三链路信息的流出包数设置为1,且所述第三链路信息指示的流出流量为所述当前属性信息指示的所述流量数据包的大小;其中,所述第三链路信息指示的流量方向与所述当前链路信息指示的流量方向相同;
A6:从所述报文链表中选择一个未被选择过的所述第一链路信息作为所述当前链路信息,执行A1。
例如,根据流量数据包的报文链表如表1所示:
表1
下面以表1为例,对链路统计信息链表的生成过程进行详细说明。在生成链路统计信息链表时,首先从表1中选择第一链路信息1作为当前链路信息,假设链路统计请求中携带的周期信息为00:00-05:00,则可确定第一链路信息1的时间戳落入周期信息所指示的范围,因此确定第一链路信息1的时间戳与周期信息相匹配。可以理解的是,基于同样的判定方法,可确定出表1中的4条第一链路信息均与周期信息相匹配,此后不再针对另外的第一链路信息的匹配情况进行赘述。
此时,链路统计信息链表中不存在任何链路信息,也就不存在与第一链路信息1相对应的第二链路信息。则根据第一链路信息1的属性信息,在链路统计信息链表中构建第三链路信息1,并将第三链路信息1的流出包数设置为1,流出流量即为第一链路信息1的流量数据包的大小100k,并且,构建出的第三链路信息1与第一链路信息1的流量方向相同,也就是说,第三链路信息指示的第三源IP、第三源端口、第三目的IP和第三目的端口分别与第一链路信息1指示的第一源IP、第一源端口、第一目的IP和第一目的端口相同。
在链路统计信息链表中构建出第三链路信息1之后,再将第一链路信息2作为当前链路信息,此时链路统计信息链表中仅有第三链路信息1,第三链路信息1指示的第三源IP、第三源端口、第三目的IP和第三目的端口与第一链路信息2指示的第一源IP、第一源端口、第一目的IP和第一目的端口各不相同,并且第三链路信息1指示的第三源IP、第三源端口与第一链路信息2指示的第一目的IP和第一目的端口,以及第三链路信息1指示的第三目的IP和第三目的端口与第一链路信息2指示的第一源IP、第一源端口也各不相同,也就是说,链路统计信息链表中已存在的第三链路信息1与第一链路信息2指示的流量方向既不相同,也不相反,即第三链路信息1并不是与第一链路信息2所对应的第二链路信息,则根据第一链路信息2的属性信息,在链路统计信息链表中构建第三链路信息2,并将第三链路信息2的流出包数设置为1,流出流量即为第一链路信息2的流量数据包的大小50k,并且,构建出的第三链路信息2与第一链路信息2的流量方向相同,也就是说,第三链路信息指示的第三源IP、第三源端口、第三目的IP和第三目的端口分别与第一链路信息1指示的第一源IP、第一源端口、第一目的IP和第一目的端口相同。此时的链路统计信息链表可如表2所示:
表2
接着,再将第一链路信息3作为当前链路信息,此时,链路统计信息链表中的第三链路信息1指示的第三源IP、第三源端口、第三目的IP和第三目的端口与第一链路信息3指示的第一源IP、第一源端口、第一目的IP和第一目的端口相同,即说明第三链路信息1与第一链路信息3的流量方向相同,即第三链路信息1为与第一链路信息3相对应的第二链路信息,此时将第一链路信息3的流量数据包大小叠加到第三链路信息1指示的流出流量中,并递增第三链路信息1的流出包数,即将第三链路信息1的流出包数递增为2。此时的链路统计信息链表更新如表3所示:
表3
最后将第一链路信息4作为当前链路信息,此时,链路统计信息链表中的第三链路信息1指示的第三源IP和第三源端口分别与第一链路信息4的第一目的IP和第一目的端口相同,且第三链路信息1指示的第三目的IP和第三目的端口分别与第一链路信息4的第一源IP和第一源端口相同,即说明第三链路信息1与第一链路信息4的流量方向相反,即第三链路信息1为与第一链路信息3相对应的第二链路信息,此时将第一链路信息3的流量数据包大小叠加到第三链路信息1指示的流入流量中,并递增第三链路信息1的流入包数,即将第三链路信息1的流入包数递增为1。此时的链路统计信息链表如表4所示。由于第一链路信息4为报文链表中最后一个第一链路信息,则根据周期信息以及报文链表生成的链路统计信息链表即如表4所示。然后可将链路统计信息链表按照和flowreq约定的格式(如json格式)发送给flowreq。flowmanger继续等待flowreq发送下次请求,即等待接收携带有下个周期信息的链路统计请求。
表4
本发明一个实施例中,为了进一步提高链路统计信息链表的生成效率,该链路流量统计方法可以进一步包括:将所述报文链表中被选择过的所述第一链路信息进行删除。由此可避免在遍历报文链表的过程中,即根据报文链表生成链路统计信息链表的过程中,再次对比已选择过的第一链路信息,由此可提高链路统计信息链表的生成效率。并且,删除报文链表中被选择过的第一链路信息,还可使得在每一周期对应的第一链路信息在被选择后即被删除,从而使得根据周期信息生成链路统计信息链表时,报文链表中仅存在本周期对应的第一链路信息。例如,与周期信息为00:00-05:00相匹配的第一链路信息(如表1所示的第一链路信息1至第一链路信息4)被选择后,即被删除,则在根据周期信息05:00-10:00生成链路统计信息链表时,第一链路信息1至第一链路信息4已不存在于报文链表中,由此可直接选择与周期信息05:00-10:00相匹配的第一链路信息,而无需重复选择第一链路信息1至第一链路信息4,这不仅有利于进一步提高链路统计信息链表的生成效率,还可有效降低内存压力。
另外,本发明实施例将流量统计与周期信息的设定分离开来,基于此,本发明实施例还提供了一种链路流量统计方法,应用于统计请求端,如图2所示,该方法可以包括:
步骤201:根据预设的周期信息,向流量统计主机发送链路统计请求;
步骤202:接收所述流量统计主机根据所述链路统计请求返回的链路统计信息链表;
步骤203:对所述链路统计信息链表进行存储。
上述实施例中,统计请求端主要负责周期信息的确定,然后发送链路统计请求,也就是flowreq向flowmanger发送请求,链路统计请求中包含请求时间戳(即周期信息),然后等待flowmanger应答。flowreq收到flowmanger应答后,即接收到链路统计信息链表后,按照约定的格式解析flowmanger的应答信息,然后将链路流量数据入表或者入文件,也就是将链路统计信息链表存储起来。由此,流量统计的周期信息由统计请求端设定,即将流量统计与周期信息的设定分离开来,相对于现有技术中采集固定时间区间的大量报文,即将流量统计与周期信息设定功能绑定在一起,系统部署更为灵活,且降低了对流量统计主机的性能要求。
如图3、图4所示,本发明实施例提供了一种流量统计主机。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图3所示,为本发明实施例提供的一种流量统计主机所在设备的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图4所示,作为一个逻辑意义上的装置,是通过其所在设备的CPU将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。本实施例提供的一种流量统计主机,包括:数据包获取模块401、请求接收模块402和链路统计模块403;其中,
所述数据包获取模块401,用于获取外部网络设备发送的至少一个流量数据包;
所述请求接收模块402,用于接收统计请求端发送的链路统计请求;
所述链路统计模块403,用于根据所述链路统计请求中携带的周期信息,生成与所述至少一个流量数据包相对应的链路统计信息链表,并将所述链路统计信息链表发送给所述统计请求端。
本发明一个实施例中,该流量统计主机可进一步包括:链表生成模块;其中,
所述链表生成模块,用于对所述至少一个流量数据包进行解析,确定每一个所述流量数据包的属性信息;根据所述属性信息,生成所述至少一个流量数据包对应的报文链表;其中,所述报文链表中的第一链路信息与所述流量数据包一一对应,且所述第一链路信息包括所对应的所述流量数据包的属性信息;所述属性信息指示了所述流量数据包的时间戳和以下任意一项或多项:第一源IP、第一源端口、第一目的IP、第一目的端口、所述流量数据包的大小、所述流量数据包的类型、发送所述流量数据包的所述网络设备的标识信息以及发送所述流量数据包的所述网络设备的端口;
所述链路统计模块403,用于根据所述周期信息以及所述报文链表,生成所述链路统计信息链表。
本发明一个实施例中,所述链路统计模块403,用于从所述报文链表中选择一个所述第一链路信息作为当前链路信息,并执行A1;
A1:根据所述当前链路信息包括的当前属性信息所指示的所述时间戳,确定所述时间戳是否与所述周期信息相匹配,如果是,执行A2;
A2:确定所述链路统计信息链表中是否存在与所述当前链路信息相对应的第二链路信息;如果是,执行A3或A4,否则执行A5;其中,所述第二链路信息指示的流量方向与所述当前链路信息指示的流量方向相同或相反;
A3:当所述第二链路信息指示的流量方向与所述当前链路信息指示的流量方向相同时,将所述当前属性信息指示的所述流量数据包的大小叠加到所述第二链路信息指示的流出流量中,并递增所述第二链路信息指示的流出包数;
A4:当所述第二链路信息指示的流量方向与所述当前链路信息指示的流量方向相反时,将所述当前属性信息指示的所述流量数据包的大小叠加到所述第二链路信息指示的流入流量中,并递增所述第二链路信息指示的流入包数;
A5:在所述链路统计信息链表中构建与所述当前属性信息相对应的第三链路信息,并将所述第三链路信息的流出包数设置为1,且所述第三链路信息指示的流出流量为所述当前属性信息指示的所述流量数据包的大小;其中,所述第三链路信息指示的流量方向与所述当前链路信息指示的流量方向相同;
A6:从所述报文链表中选择一个未被选择过的所述第一链路信息作为所述当前链路信息,执行A1。
如图5所示,本发明实施例提供了还一种统计请求端,包括:请求发送模块501、接收模块502和存储模块503;其中,
所述请求发送模块501,用于根据预设的周期信息,向流量统计主机发送链路统计请求;
所述接收模块502,用于接收所述流量统计主机根据所述链路统计请求返回的链路统计信息链表;
所述存储模块503,用于对所述链路统计信息链表进行存储。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
如图6所示,本发明实施例还提供了一种链路流量统计系统,包括:上述任一所述的流量统计主机601以及上述任一所述的统计请求端602。
以网络设备为交换机为例,预先将交换机的sflow采样率设置为100%,以使交换机将采集到的流量数据包均发送给流量统计主机。然后,将collect主机地址设置为flowmanger运行的主机,并在flowmanger运行的主机上编辑flowmanger配置文件,包括接收sflow报文监听的端口、flowreq主机IP、接收flowreq请求端口。配置完成后启动flowmanger进程。其中,flowreq主机可以选择和flowmanger运行在相同的主机上,也可以运行在不同的主机上,启动调用flowreq进程的shell,统计的时间区间(即周期信息)若要修改,只需修改shell脚本即可。基于此,利用上述链路统计系统进行链路流量统计时,链路流量统计方法可以包括如图7所示的步骤:
步骤701:交换机将采集到的各个流量数据包发送给流量统计主机。
步骤702:流量统计主机对各个流量数据包进行解析,确定每一个流量数据包的属性信息,并根据确定的属性信息,生成各个流量数据包的报文链表。
其中,流量统计主机即为运行flowmanger的主机。
步骤:703:统计请求端向流量统计主机发送链路统计请求。
其中,统计请求端即为运行flowreq的主机。
步骤704:流量统计主机根据链路统计请求中携带的周期信息以及报文链表,生成链路统计信息链表。
步骤705:流量统计主机将链路统计信息链表发送给统计请求端。
步骤706:统计请求端将链路统计信息链表进行存储。
本发明实施例提供了一种可读介质,包括执行指令,当存储控制器的处理器执行所述执行指令时,所述存储控制器执行本发明实施例提供的任意一种链路流量统计方法。
本发明实施例提供了一种存储控制器,包括:处理器、存储器和总线;
所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述存储控制器执行本发明实施例提供的任意一种链路流量统计方法。
本发明各个实施例至少具有如下有益效果:
1、在本发明实施例中,流量统计主机在接收到网络设备发送的多个流量数据包后,根据统计请求端发送的链路统计请求中携带的周期信息,生成与所有流量数据包相对应的链路统计信息链表,并将链路统计信息链表返回给统计请求端。由此,流量统计结果(即链路统计信息链表)为根据所有流量数据包统计得出,相对于现有技术的随机选取流量数据包,有效提高了流量统计的准确性。
2、在本发明实施例中,统计请求端主要负责周期信息的确定,然后发送链路统计请求,链路统计请求中包含周期信息,然后将流量统计主机返回的链路统计信息链表存储起来。由此,流量统计的周期信息由统计请求端设定,即将流量统计与周期信息的设定分离开来,相对于现有技术中采集固定时间区间的大量报文,即将流量统计与周期信息设定功能绑定在一起,系统部署更为灵活,且降低了对流量统计主机的性能要求。
3、在本发明实施例中,将报文链表中的各个第一链路信息根据其时间戳顺序进行排列,则在生成链路统计信息链表时,可根据报文链表中的每一个第一链路信息,对流入流量、流入包数、流出流量和流出包数等进行统计,从而提高链路统计信息链表的生成效率,从而提高流量统计的准确性。
4、在本发明实施例中,将所述报文链表中被选择过的所述第一链路信息进行删除。由此可避免在遍历报文链表的过程中,再次对比已选择过的第一链路信息,由此可提高链路统计信息链表的生成效率。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种链路流量统计方法,其特征在于,应用于流量统计主机,包括:
获取外部网络设备发送的至少一个流量数据包;
接收统计请求端发送的链路统计请求;
根据所述链路统计请求中携带的周期信息,生成与所述至少一个流量数据包相对应的链路统计信息链表;
将所述链路统计信息链表发送给所述统计请求端。
2.根据权利要求1所述的方法,其特征在于,
在所述获取外部网络设备发送的至少一个流量数据包之后,进一步包括:
对所述至少一个流量数据包进行解析,确定每一个所述流量数据包的属性信息;其中,所述属性信息指示了所述流量数据包的时间戳和以下任意一项或多项:第一源IP、第一源端口、第一目的IP、第一目的端口、所述流量数据包的大小、所述流量数据包的类型、发送所述流量数据包的所述网络设备的标识信息以及发送所述流量数据包的所述网络设备的端口;
根据所述属性信息,生成所述至少一个流量数据包对应的报文链表;其中,所述报文链表中的第一链路信息与所述流量数据包一一对应,且所述第一链路信息包括所对应的所述流量数据包的属性信息;
则,所述根据所述链路统计请求中携带的周期信息,生成与所述至少一个流量数据包相对应的链路统计信息链表,包括:
根据所述周期信息以及所述报文链表,生成所述链路统计信息链表。
3.根据权利要求2所述的方法,其特征在于,
所述根据所述周期信息以及所述报文链表,生成所述链路统计信息链表,包括:
从所述报文链表中选择一个所述第一链路信息作为当前链路信息,并执行A1;
A1:根据所述当前链路信息包括的当前属性信息所指示的所述时间戳,确定所述时间戳是否与所述周期信息相匹配,如果是,执行A2;
A2:确定所述链路统计信息链表中是否存在与所述当前链路信息相对应的第二链路信息;如果是,执行A3或A4,否则执行A5;其中,所述第二链路信息指示的流量方向与所述当前链路信息指示的流量方向相同或相反;
A3:当所述第二链路信息指示的流量方向与所述当前链路信息指示的流量方向相同时,将所述当前属性信息指示的所述流量数据包的大小叠加到所述第二链路信息指示的流出流量中,并递增所述第二链路信息指示的流出包数;
A4:当所述第二链路信息指示的流量方向与所述当前链路信息指示的流量方向相反时,将所述当前属性信息指示的所述流量数据包的大小叠加到所述第二链路信息指示的流入流量中,并递增所述第二链路信息指示的流入包数;
A5:在所述链路统计信息链表中构建与所述当前属性信息相对应的第三链路信息,并将所述第三链路信息的流出包数设置为1,且所述第三链路信息指示的流出流量为所述当前属性信息指示的所述流量数据包的大小;其中,所述第三链路信息指示的流量方向与所述当前链路信息指示的流量方向相同;
A6:从所述报文链表中选择一个未被选择过的所述第一链路信息作为所述当前链路信息,执行A1。
4.根据权利要求3所述的方法,其特征在于,
进一步包括:
将所述报文链表中被选择过的所述第一链路信息进行删除。
5.一种链路流量统计方法,其特征在于,应用于统计请求端,包括:
根据预设的周期信息,向流量统计主机发送链路统计请求;
接收所述流量统计主机根据所述链路统计请求返回的链路统计信息链表;
对所述链路统计信息链表进行存储。
6.一种流量统计主机,其特征在于,包括:数据包获取模块、请求接收模块、链路统计模块;其中,
所述数据包获取模块,用于获取外部网络设备发送的至少一个流量数据包;
所述请求接收模块,用于接收统计请求端发送的链路统计请求;
所述链路统计模块,用于根据所述链路统计请求中携带的周期信息,生成与所述至少一个流量数据包相对应的链路统计信息链表,并将所述链路统计信息链表发送给所述统计请求端。
7.根据权利要求6所述的流量统计主机,其特征在于,
进一步包括:链表生成模块;其中,
所述链表生成模块,用于对所述至少一个流量数据包进行解析,确定每一个所述流量数据包的属性信息;根据所述属性信息,生成所述至少一个流量数据包对应的报文链表;其中,所述报文链表中的第一链路信息与所述流量数据包一一对应,且所述第一链路信息包括所对应的所述流量数据包的属性信息;所述属性信息指示了所述流量数据包的时间戳和以下任意一项或多项:第一源IP、第一源端口、第一目的IP、第一目的端口、所述流量数据包的大小、所述流量数据包的类型、发送所述流量数据包的所述网络设备的标识信息以及发送所述流量数据包的所述网络设备的端口;
所述链路统计模块,用于根据所述周期信息以及所述报文链表,生成所述链路统计信息链表。
8.根据权利要求7所述的流量统计主机,其特征在于,
所述链路统计模块,用于从所述报文链表中选择一个所述第一链路信息作为当前链路信息,并执行A1;
A1:根据所述当前链路信息包括的当前属性信息所指示的所述时间戳,确定所述时间戳是否与所述周期信息相匹配,如果是,执行A2;
A2:确定所述链路统计信息链表中是否存在与所述当前链路信息相对应的第二链路信息;如果是,执行A3或A4,否则执行A5;其中,所述第二链路信息指示的流量方向与所述当前链路信息指示的流量方向相同或相反;
A3:当所述第二链路信息指示的流量方向与所述当前链路信息指示的流量方向相同时,将所述当前属性信息指示的所述流量数据包的大小叠加到所述第二链路信息指示的流出流量中,并递增所述第二链路信息指示的流出包数;
A4:当所述第二链路信息指示的流量方向与所述当前链路信息指示的流量方向相反时,将所述当前属性信息指示的所述流量数据包的大小叠加到所述第二链路信息指示的流入流量中,并递增所述第二链路信息指示的流入包数;
A5:在所述链路统计信息链表中构建与所述当前属性信息相对应的第三链路信息,并将所述第三链路信息的流出包数设置为1,且所述第三链路信息指示的流出流量为所述当前属性信息指示的所述流量数据包的大小;其中,所述第三链路信息指示的流量方向与所述当前链路信息指示的流量方向相同;
A6:从所述报文链表中选择一个未被选择过的所述第一链路信息作为所述当前链路信息,执行A1。
9.一种统计请求端,其特征在于,包括:请求发送模块、接收模块和存储模块;其中,
所述请求发送模块,用于根据预设的周期信息,向流量统计主机发送链路统计请求;
所述接收模块,用于接收所述流量统计主机根据所述链路统计请求返回的链路统计信息链表;
所述存储模块,用于对所述链路统计信息链表进行存储。
10.一种链路流量统计系统,其特征在于,包括:权利要求6至8任一所述的流量统计主机以及权利要求9所述的统计请求端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910317093.3A CN110022248A (zh) | 2019-04-19 | 2019-04-19 | 链路流量统计方法及系统、流量统计主机以及统计请求端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910317093.3A CN110022248A (zh) | 2019-04-19 | 2019-04-19 | 链路流量统计方法及系统、流量统计主机以及统计请求端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110022248A true CN110022248A (zh) | 2019-07-16 |
Family
ID=67191885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910317093.3A Pending CN110022248A (zh) | 2019-04-19 | 2019-04-19 | 链路流量统计方法及系统、流量统计主机以及统计请求端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110022248A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113542268A (zh) * | 2021-07-14 | 2021-10-22 | 中能融合智慧科技有限公司 | 基于网络链路获取单个工控协议流量的方法 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101534305A (zh) * | 2009-04-24 | 2009-09-16 | 中国科学院计算技术研究所 | 网络流量异常检测方法和系统 |
CN101562534A (zh) * | 2009-05-26 | 2009-10-21 | 中山大学 | 一种网络行为分析系统 |
CN102611626A (zh) * | 2012-03-30 | 2012-07-25 | 北京英诺威尔科技股份有限公司 | 网络流量解析系统及方法 |
CN103001814A (zh) * | 2011-09-09 | 2013-03-27 | 湖南神州祥网科技有限公司 | 一种网络流量特征统计描述方法 |
CN103414611A (zh) * | 2013-08-21 | 2013-11-27 | 宁波成电泰克电子信息技术发展有限公司 | 一种高速负载网络均衡系统的流量统计方法 |
CN104486116A (zh) * | 2014-12-12 | 2015-04-01 | 北京百度网讯科技有限公司 | 多维度查询流量数据的方法及系统 |
CN106330746A (zh) * | 2016-08-30 | 2017-01-11 | 成都科来软件有限公司 | 一种统计网络中国家流量的方法及装置 |
CN106375235A (zh) * | 2016-08-30 | 2017-02-01 | 成都科来软件有限公司 | 一种统计指定ip流量信息的方法及装置 |
CN106452868A (zh) * | 2016-10-12 | 2017-02-22 | 中国电子科技集团公司第三十研究所 | 一种支持多维度聚合分类的网络流量统计实现方法 |
CN107634848A (zh) * | 2017-08-07 | 2018-01-26 | 上海天旦网络科技发展有限公司 | 一种采集分析网络设备信息的系统和方法 |
CN107809331A (zh) * | 2017-10-25 | 2018-03-16 | 北京京东尚科信息技术有限公司 | 识别异常流量的方法和装置 |
US10225169B2 (en) * | 2015-11-23 | 2019-03-05 | Telefonaktiebolaget L M Ericsson (Publ) | Method and apparatus for autonomously relaying statistics to a network controller in a software-defined networking network |
US10263864B2 (en) * | 2015-08-13 | 2019-04-16 | Electronics And Telecommunications Research Institute | Apparatus and method for collecting adaptive flow statistics data in carrier network |
-
2019
- 2019-04-19 CN CN201910317093.3A patent/CN110022248A/zh active Pending
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101534305A (zh) * | 2009-04-24 | 2009-09-16 | 中国科学院计算技术研究所 | 网络流量异常检测方法和系统 |
CN101562534A (zh) * | 2009-05-26 | 2009-10-21 | 中山大学 | 一种网络行为分析系统 |
CN103001814A (zh) * | 2011-09-09 | 2013-03-27 | 湖南神州祥网科技有限公司 | 一种网络流量特征统计描述方法 |
CN102611626A (zh) * | 2012-03-30 | 2012-07-25 | 北京英诺威尔科技股份有限公司 | 网络流量解析系统及方法 |
CN103414611A (zh) * | 2013-08-21 | 2013-11-27 | 宁波成电泰克电子信息技术发展有限公司 | 一种高速负载网络均衡系统的流量统计方法 |
CN104486116A (zh) * | 2014-12-12 | 2015-04-01 | 北京百度网讯科技有限公司 | 多维度查询流量数据的方法及系统 |
US10263864B2 (en) * | 2015-08-13 | 2019-04-16 | Electronics And Telecommunications Research Institute | Apparatus and method for collecting adaptive flow statistics data in carrier network |
US10225169B2 (en) * | 2015-11-23 | 2019-03-05 | Telefonaktiebolaget L M Ericsson (Publ) | Method and apparatus for autonomously relaying statistics to a network controller in a software-defined networking network |
CN106330746A (zh) * | 2016-08-30 | 2017-01-11 | 成都科来软件有限公司 | 一种统计网络中国家流量的方法及装置 |
CN106375235A (zh) * | 2016-08-30 | 2017-02-01 | 成都科来软件有限公司 | 一种统计指定ip流量信息的方法及装置 |
CN106452868A (zh) * | 2016-10-12 | 2017-02-22 | 中国电子科技集团公司第三十研究所 | 一种支持多维度聚合分类的网络流量统计实现方法 |
CN107634848A (zh) * | 2017-08-07 | 2018-01-26 | 上海天旦网络科技发展有限公司 | 一种采集分析网络设备信息的系统和方法 |
CN107809331A (zh) * | 2017-10-25 | 2018-03-16 | 北京京东尚科信息技术有限公司 | 识别异常流量的方法和装置 |
Non-Patent Citations (1)
Title |
---|
彭令鹏: "安全网关中流量采集和监控代理的设计与实现", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113542268A (zh) * | 2021-07-14 | 2021-10-22 | 中能融合智慧科技有限公司 | 基于网络链路获取单个工控协议流量的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105871602B (zh) | 一种统计流量的控制方法、装置和系统 | |
RU2651143C1 (ru) | Способ, устройство и система для конфигурирования записей потоков | |
US7787442B2 (en) | Communication statistic information collection apparatus | |
JP5623585B2 (ja) | フロー統計に用いる方法、装置及びシステム | |
US8391157B2 (en) | Distributed flow analysis | |
US10182011B2 (en) | System and method to analyze congestion in low latency network | |
CN109547288B (zh) | 一种协议无关转发网络可编程流测量方法 | |
US20200296624A1 (en) | Frame aggregation method, network setting frame sending method, and device | |
US20090141638A1 (en) | Method for partitioning network flows based on their time information | |
CN113328902B (zh) | 网络性能检测方法、装置及网络设备 | |
CN108521371B (zh) | 报文转发方法及装置 | |
CN112491652A (zh) | 一种用于测试的网络流量样本处理方法及装置 | |
JP2020535739A (ja) | データ伝送 | |
CN108173763B (zh) | 报文处理方法、设备及系统 | |
CN106664253A (zh) | 流表老化方法、交换机及控制器 | |
CN111385163A (zh) | 流量的分析、检测方法及装置 | |
CN109614518A (zh) | 一种网络流量数据存储、还原方法及系统 | |
EP2517410B1 (en) | Tracing support in a router | |
CN113973063A (zh) | 带内测量方法、装置及节点 | |
CN114050994B (zh) | 一种基于SRv6的网络遥测方法 | |
CN110022248A (zh) | 链路流量统计方法及系统、流量统计主机以及统计请求端 | |
JP2002374251A (ja) | ネットワーク監視システム及びそれに用いるデータ量カウント方法並びにそのプログラム | |
CN102404152B (zh) | 识别应答报文的方法及设备 | |
KR20050052636A (ko) | 인터넷 트래픽 측정을 위한 플로우 생성 방법 | |
WO2020259113A1 (zh) | 一种网络性能测量装置及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190716 |
|
RJ01 | Rejection of invention patent application after publication |