具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
系统时间是指从1970年1月1日起,到现在所经历的毫秒数。其中,终端的系统时间为用户手动设置且还会进行修改,即不同终端的系统时间是不同的,均会存在毫秒级甚至秒级的偏差;另外,公网IP下的终端发出的数据包不会总在同一时间穿越NAT,即会出现在不同时间点获得不同终端的当前系统时间,据此,本发明实施例中,通过主动触发以获得终端的当前系统时间,并将系统时间与本地标准时间作差值,将差值不同的终端进行分离,从而获得终端的数目,能够准确地检测出公网IP下的终端数量。
请参阅图2,为本发明实施例一种检测共享接入终端数量的方法,该方法包括:
步骤S201,接收公网IP下终端发送的网络数据包,所述网络数据包中包含所述终端的第一系统时间;
步骤S202,根据所述公网IP下、不同的所述第一系统时间与本地的第二系统时间差值的数量,确定所述公网IP下终端的数量。
步骤S202,在一种实现下,即确定共享接入NAT的终端的数量(位于NAT后的终端的数量,这里的公网IP标识该NAT)。
需要说明的是,这里的第一系统时间指的是终端上报的当前系统时间,这里的第二系统时间指的是该方法执行主体的本地标准时间,该方法执行主体,如检测共享接入终端数量的装置。
可见,本发明实施例中,通过公网IP下每一终端对应的第一系统时间与本地的第二系统时间差值各不同,换言之,即公网IP下每一终端的第一系统时间与第二系统时间差值可以唯一标识公网IP下每一终端;根据不同的第一系统时间与第二系统时间差值的数量确定公网IP下终端的数量,从而实现对公网IP下共享接入终端数目的统计,提高了统计共享接入终端数目的准确性。
请参阅图3,为本发明实施例二的一种检测共享接入终端数量的方法,本实施例中,该检测共享接入终端数量的方法应用的场景包括但不限于网络监控系统,在该网络监控系统中,检测系统可以为该网络监控系统中的一个模块,应当理解的是,该检测共享接入终端数量的方法也可以单独应用于检测系统。如图4所示,多个终端通过城市局域网与国家骨干网相连接并交互数据,在城市局域网与国家骨干网之间增加数据转发装置,使该数据转发装置从多个终端的出口处(或网络的出口处)引入所有网络数据,并将该网络数据通过独立的宽带传送给检测系统,该数据转发装置可以为分光器,设置在城市局域网接口与国家骨干网的接口处,该分光器是可以把一个网络上的数据引出到另一个分支网络中的网络设备。此外,该数据转发装置还可以是支持端口数据镜像的交换机中用于数据镜像的镜像模块,利用该镜像模块得到通过出口接入网络的网络数据的备份。
请参阅图3,本发明实施例二的一种检测共享接入终端数量的方法包括:
步骤S301,在检测到终端的网络行为(例如GET sina.com)时,向该终端发送采集功能脚本的页面。
具体的,该采集功能脚本的页面可以为用JavaScript脚本编写的页面,也可以为通过其它方式编写的页面,本实施例中,以用JavaScript脚本编写页面为例进行说明。根据该采集功能脚本的页面可以获取该终端的系统时间,同时该页面使得该终端主动上报该终端的当前系统时间(即第一系统时间),并重定向到该终端的网络行为。
步骤S302,接收来自终端的第一系统时间,获取该检测系统的本地标准时间(即第二系统时间),并计算该终端的第一系统时间与该第二系统时间之间的差值。
需要说明的是,接收该终端的第一系统时间时,可以获知该终端的公网IP信息;即第一系统时间和该终端的公网IP地址信息可以包含在网络数据包中,即接收公网IP下终端发来的网络数据包,网络数据包中的源地址即该终端的公网IP地址。
步骤S303,当达到预设的时间后,根据该预设时间段内所述公网IP下的对不同的第一系统时间与第二系统时间之间的差值的统计结果确定该公网IP下终端的数量。
应当理解的是,通过主动触发去获取终端的第一系统时间,根据不同终端的第一系统时间与第二系统时间的差值不同的原理,确定公网IP下的终端的数量,如步骤S303所述,从而得到公网IP下该预设时间段内、当前活动的终端数量,一种实现下即得到位于NAT后的当前活动的终端数目。
在上述的当达到预设的时间后,根据该预设时间段内、所述公网IP下的对不同的第一系统时间与第二系统时间之间的差值的统计结果确定该公网IP下终端的数量之前,进一步包括:获得本地的第二系统时间和计算所述第一系统时间与所述第二系统时间的差值。
在上述的计算第一系统时间与所述第二系统时间的差值之后,还包括:将所述第一系统时间与所述第二系统时间的差值信息记录到时间记录表中。上述将第一系统时间与所述第二系统时间的差值信息记录到时间记录表中包括:当所述时间记录表包含所述差值所对应的公网IP信息时,将包含所述差值的、与所述公网IP信息对应的终端记录信息记录到所述时间记录表中;
当所述时间记录表不包含所述差值所对应的公网IP信息时,将所述公网IP信息记录到时间记录表,并将包含所述差值的、与所述公网IP信息对应的终端记录信息记录到所述时间记录表中。
上述当时间记录表包含所述差值所对应的公网IP信息时,将包含所述差值的与所述公网IP信息对应的终端记录信息记录到所述时间记录表中包括:计算所述差值与所述公网IP信息对应的终端记录信息中包含的平均绝对差值之间的误差;
当所述误差均大于预设的阀值时,在所述时间记录表中记录与所述公网IP对应的、包含所述差值的终端记录信息;
当所述误差非均大于预设的阀值时,将所述差值记录到所述误差小于所述预设阀值且最小的终端记录信息中,并更新所述终端记录信息包含的平均绝对差值。
可见,本发明实施例中,通过公网IP下每一终端对应的第一系统时间与本地的第二系统时间差值各不同,换言之,即公网IP下每一终端的第一系统时间与第二系统时间差值可以唯一标识公网IP下每一终端;根据该预设时间段内所述公网IP下的对不同的第一系统时间与第二系统时间之间的差值的统计结果确定该公网IP下终端的数量,从而实现对公网IP下该预设时间段内、共享接入终端数目的统计,提高了统计共享接入终端数目的准确性。
请参阅图5,为本发明实施例三的一种检测共享接入终端数量的方法,具体流程如图5所示,包括:
步骤S501,采集装置监控终端的网络行为。
步骤S502,采集装置判断是否达到预先设置的采集周期,当达到预先设置的采集周期时,转到步骤S503,当没有达到预先设置的采集周期时,转到步骤S501。
步骤S503,采集装置检测终端是否有网络行为(例如GET sina.com),当有网络行为时,转到步骤S504,否则,转到步骤S501。
步骤S504,采集装置向该终端发送采集功能脚本的页面,以获取该终端的第一系统时间。
具体的,采集装置向该终端发送一个200OK的数据包,从而将一个事先编写好的JavaScript脚本发送给终端。该JavaScript脚本的功能包括但不限于:获取终端的毫秒级的系统时间;使终端将毫秒级系统时间上报给检测装置;将终端定向到该终端的网络行为,从而不影响用户的正常网络行为。在该JavaScript脚本中,通过以下程序完成上述的功能,即通过程序
var now=new Date();
var time=now.getTime();
完成获取终端的毫秒级系统时间的功能;
通过程序
<form action=”接收系统时间的页面的地址”method=post name=”
myform”>
<input type=”hidden”name=”gettime”>
document.myform.gettime.value=time;
document.myform.submit();
使得终端将终端的系统时间上报给检测装置;
通过程序
window.location.href=”用户的目的网址”;
完成将终端定向到该终端的网络行为,从而不影响用户的正常网络行为的功能。
步骤S505,终端在接收到上述的采集功能脚本的页面之后,将该终端的第一系统时间上报给检测装置,并重定向到该终端的网络行为,转到步骤S501。
步骤S506,检测装置接收公网IP下终端发送的网络数据包,并从该网络数据包中获取该终端的第一系统时间。
具体的,检测装置获取该终端的第一系统时间的方式包括但不限于通过统计脚本接收公网IP下终端发送的网络数据包,并获取该终端的第一系统时间,其中该通过统计脚本获取终端的第一系统时间的代码(以php页面为例)为:$khdtime=$_REQUEST[‘gettime’];。
步骤S507,检测装置获取本地的第二系统时间,并计算出终端的第一系统时间与本地的第二系统时间之间的差值,该差值记为n。
具体的,本地毫秒级的第二系统时间可以用microtime()来获取。
步骤S508,检测装置判断是否保存有该终端对应的IP的时间记录,当存在有该IP的时间记录时,转到步骤S509,当没有该IP的时间记录时,转到步骤S513。
具体的,在本实施例中,该检测装置可以为检测服务器,通过在检测装置中存储一张表格,该表格为时间记录表,使用该表格记录统计的信息,该表格的基本格式如图6所示,其中的IP即公网IP,本实施例中,以公网IP标识NAT为例进行说明,每个公网IP对应一个被监控的终端,也可以对应多个被监控的终端(这里的终端可以理解为NAT后的终端),检测装置可以从终端发送的数据包中提取该终端的源IP地址,该源IP地址为NAT的公网IP地址,即检测装置从数据包获取的IP地址为公网IP。当多个终端共享接入NAT时,即多个终端共享接入公网时,检测装置从上述的多个终端发出的网络数据包中获取到的IP地址是相同的,均为该NAT的IP地址,在该时间记录表中存储该NAT的IP地址,形成一条IP信息,在该IP信息下,终端记录数会不小于1,其中,每个终端记录对应共享接入NAT的一台终端,该IP信息是根据终端的系统时间进行记录的,而不同终端的系统时间各不相同,即每个终端对应该IP信息下的一条终端记录,该终端记录包括但不限于:终端编号、差值绝对值的平均值、时间差值、辅助信息中的一种或多种,该辅助信息可以为收包数,更新时间。
检测装置在接收到来自终端的数据包后,从中提取出该终端的源IP地址,该检测装置可以获取的IP地址为NAT的IP地址,当检测装置中有该IP地址时,则该检测系统中有该NAT的时间记录信息,即有该NAT的时间记录表;当检测系统中没有该IP地址时,则该检测系统中没有该NAT的时间记录信息,需在时间记录表中写入该IP地址信息。在该时间记录表中可以包含多个IP地址信息,多个IP地址对应着多个NAT设备。
步骤S509,计算出终端的第一系统时间与本地的第二系统时间之间的差值n与该IP所对应的所有终端记录的平均绝对差值N之间的误差。
具体的,该平均绝对差值为所对应的终端记录下的一组时间差值的绝对值的平均值。该终端可能会多次发生网络行为,检测装置获取的时间差值也有多次,在该终端下可以有一组时间差值,该平均绝对差值为这一组时间差值的绝对值的平均值,该平均绝对差值记为N。
该误差可以为n与至少一个N之间的差值的绝对值,在检测装置中有该IP的时间记录时,则该检测装置中已经有了该IP对应的NAT的时间记录表,在该时间记录表中,包含了共享接入NAT的终端的记录信息。本实施例中,以该时间记录表中已经有了3个终端的记录信息为例,3个终端的差值绝对值的平均值分别为N1、N2、N3,上述的误差用M表示,则M1为n与N1之间差值的绝对值,M2为n与N2之间差值的绝对值,M3为n与N3之间差值的绝对值。
步骤S510,判断误差是否均大于预先设置的阀值,当均大于该预先设置的阀值时,转到步骤S511,否则,转到步骤S512。
具体的,上述预先设置的阀值是根据经验或历史等条件设置的数值。
步骤S511,在该IP下新建一个终端记录,并将包含该差值的、与公网IP信息对应的终端记录信息记录到时间记录表中的该终端记录中。
具体的,该终端记录信息包括但不限于终端编号、差值绝对值的平均值、时间差值、辅助信息,该辅助信息可以为收包数,更新时间。在步骤S511结束之后,转到步骤S506。
步骤S512,将该差值n写入误差小于预先设置的阀值且误差最小的终端记录中,并更新该终端记录的平均绝对差值。
本实施例中,从上述的M1、M2、M3中获取最小的数值,该最小的数值所对应终端记录信息所对应的终端与上报第一系统时间的终端是相同的,例如,当M1的值最小时,则该M1所对应终端记录信息所对应的终端与上报第一系统时间的终端相同,更新该M1所对应终端记录信息下的平均绝对差值。在步骤S512结束之后,转到步骤S506。
步骤S513,在检测装置的时间记录表记录该新的IP地址信息,并将与该IP地址信息对应的终端记录信息记录到时间记录表中。
具体的,在检测装置的时间记录表中记录该新的IP地址信息,新建该IP下的一终端记录,将包含差值n的终端记录信息记录到该终端记录中,该终端记录信息包括但不限于该终端的终端编号、差值绝对值的平均值、时间差值、辅助信息,该辅助信息可以为收包数,更新时间。在步骤S513结束之后,转到步骤S506。
步骤S514,根据所述时间记录表中的所述公网IP对应的所有终端记录(信息)的数目,确定所述公网IP下终端的数量,其中,所述公网IP对应的每条终端记录(信息)唯一标识所述公网IP下每一个终端。
具体的,检测装置根据时间记录表中的终端记录确定共享接入NAT的终端数量。检测装置根据时间记录表的每个公网IP对应的终端记录的数量,确定公网IP共享接入的终端数量,其中每个终端记录用于唯一标识共享接入的每个终端。当时间达到预先设置的时间时,检测装置将根据时间记录表获取共享接入的终端数,例如,当此时在时间记录表中有2个IP地址信息,分别为IP1和IP2,该IP1下共有3个终端记录的信息,IP2下共有4个终端记录的信息,上述的终端记录包括但不限于:终端编号、差值绝对值的平均值、时间差值、辅助信息,该辅助信息可以为收包数,更新时间。本实施例中,该IP1和IP2分别为NAT 1和NAT 2的IP地址,则通过NAT 1共享接入该NAT 1的终端数为3,通过NAT 2共享接入该NAT 2的终端数为4。
本实施例中,还可以将确定的终端数量进行上报,即在步骤S501之前还可以在检测装置内设置定时器开始计时,并进行上述的步骤S501至步骤S513的过程,在步骤S513结束之后,判断是否达到预先设置的上报时间,当达到预先设置的时间时,根据所述时间记录表中的所述公网IP对应的所有终端记录(信息)的数目,确定所述公网IP下终端的数量,并上报所述终端数量的统计结果,当没有达到预先设置的时间时,继续计时。
可见,本实施例中,通过公网IP下每一终端对应的第一系统时间与第二系统时间差值各不同,换言之,即公网IP下每一终端的第一系统时间与第二系统时间差值可以唯一标识公网IP下每一终端。通过在检测装置中存储时间记录表,当终端的第一系统时间与该检测装置的第二系统时间差值的绝对值不同时,将不同的绝对值所对应的终端信息记录到该时间记录表中,从而根据时间记录表中不同终端记录的数目确定公网IP下终端的数量。从而实现对公网IP下共享接入终端数目的统计,提高了统计共享接入主机数目的准确性。
本发明实施例三提出了一种检测系统,包括采集装置71和检测装置72。其中,该采集装置71用于当终端有网络行为时,触发该终端发送当前第一系统时间;
该检测装置72用于接收公网IP下终端发送的该终端的第一系统时间;并根据该公网IP下、不同的第一系统时间与本地的第二系统时间差值的数量,确定所述公网IP下终端的数量。
在一种实现下,该采集装置为第一采集装置时,该第一采集装置用于当终端有网络行为时,向该终端发送具有采集功能的脚本,以使该终端根据该具有采集功能的脚本上报该终端的当前第一系统时间。
进一步的,该检测装置72还用于获得本地的第二系统时间并计算该第一系统时间与该第二系统时间的差值,将该第一系统时间与该第二系统时间的差值信息记录到时间记录表中。当该时间记录表包含该差值所对应的公网IP信息时,将与该公网IP信息对应的、包含该差值的终端记录信息记录到该时间记录表中;当该时间记录表不包含该差值所对应的公网IP信息时,将该公网IP信息记录到时间记录表,并将与该公网IP信息对应的、包含该差值的终端记录信息记录到该时间记录表中。
可见,本实施例中,通过公网IP下每一终端对应的第一系统时间与第二系统时间差值各不同,换言之,即公网IP下每一终端的第一系统时间与第二系统时间差值可以唯一标识公网IP下每一终端;根据不同的第一系统时间与第二系统时间差值的数量确定公网IP下终端的数量,从而实现对公网IP下共享接入终端数目的统计,提高了统计共享接入主机数目的准确性。
本发明实施例四提出的一种检测共享接入终端数量的装置,如图8所示,包括:
接收模块81,用于接收公网IP下终端发送的该终端的第一系统时间;
确定模块82,用于根据接公网IP下、不同的该第一系统时间与本地的第二系统时间差值的数量,确定该公网IP下终端的数量。
进一步的,本发明实施例的检测共享接入终端数量的装置还包括:
获得模块83,用于获得本地的第二系统时间;
计算模块84,用于计算该接收模块81接收的第一系统时间与获得模块83获得的本地第二系统时间之间的差值;
进一步的,本发明实施例的检测共享接入终端数量的装置还包括:
维护模块85,用于将该计算模块84计算的第一系统时间与该第二系统时间的差值信息记录到时间记录表中。
在一种实现下,该维护模块85为第一维护模块,用于当该时间记录表包含该差值所对应的公网IP信息时,将与所述公网IP信息对应的、包含该差值的终端记录信息记录到该时间记录表中;其中,该终端记录信息包括但不限于终端编号、差值绝对值的平均值、时间差值、辅助信息的一种或多种,该辅助信息可以为收包数,更新时间。
在另一种实现下,该维护模块85为第二维护模块,用于当该时间记录表不包含该差值所对应的公网IP信息时,将该公网IP信息记录到该时间记录表中,并将与所述公网IP信息对应的、包含该差值的终端记录信息记录到时间记录表中。其中,该终端记录信息包括但不限于终端编号、差值绝对值的平均值、时间差值、辅助信息中的一种或多种,该辅助信息可以为收包数,更新时间。
此外,在一种实现下,该确定模块82可以为第一确定模块,用于根据该时间记录表中的该公网IP对应的所有终端记录信息的数目,确定该公网IP下终端的数量,其中,该公网IP对应的每条终端信息记录唯一标识该公网IP下每一个终端。
可见,本发明实施例中,通过公网IP下每一终端对应的第一系统时间与第二系统时间差值各不同,换言之,即公网IP下每一终端的第一系统时间与第二系统时间差值可以唯一标识公网IP下每一终端;根据不同的第一系统时间与第二系统时间差值的数量确定公网IP下终端的数量,从而实现对公网IP下共享接入终端数目的统计,提高了统计共享接入主机数目的准确性。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以可借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。