一种基于哈希节点的终端设备信息统计的方法及装置的制造方法

文档序号:10615848阅读:289来源:国知局
一种基于哈希节点的终端设备信息统计的方法及装置的制造方法
【专利摘要】本发明提供一种基于哈希节点的终端设备信息统计的方法及装置,应用于连接有多个终端设备的路由器,提供一哈希表,该方法包括步骤:于经过路由器的内核协议栈的数据包为上行数据包时,获取上行数据包的源IP地址;查找哈希表中是否存在源IP地址对应的哈希节点;若不存在,根据源IP地址建立新的哈希节点并插入至哈希表中;若存在,不做处理;根据上行数据包统计源IP地址的流量信息,并将流量信息保存至源IP地址对应的哈希节点中。通过本发明提供的方法,避免了单纯通过应用层获取信息的信息不足和实效性差的问题,同时避免了对冗余信息的收集对用户产生的困扰。
【专利说明】
一种基于哈希节点的终端设备信息统计的方法及装置
技术领域
[0001]本发明涉及通信技术领域,尤其涉及一种基于哈希节点的终端设备信息统计的方法及装置。
【背景技术】
[0002]就目前而言,智能路由器大都具有防增网的功能,而这些防蹭网功能的实现是基于能够正确获取到的路由器连接的终端设备的一些信息,这里信息指的是手机或电脑的IP地址、物理地址、流量信息等。
[0003]在现有技术中,一般厂商路由器采用的办法是读取DHCP(Dynamic HostConfigurat1n Protocol,动态主机配置协议)服务器的客户端列表,获取对应的IP地址和物理地址信息,这是基于应用层的DHCP协议获取的设备信息。但是,这种方法存在着以下缺点:1、基于DHCP服务器的设备信息获取办法,依赖于DHCP协议,如果租约时期较长(如24小时),那么即使某个设备早就已经下线了,还是能够从DHCP客户端列表中读取到该设备信息;2、对于设置了静态IP地址的终端,DHCP客户端列表则无法找到该设备的信息。有的厂商为了弥补DHCP服务器的这种不足,采取了读路由器ARP(Address Resolut1n ProtocoUik址解析协议)表的方法,该方法的缺点也很明显:1、ARP表项的老化时间可能会很长,该缺点同DHCP的租约时间类似;2、一个终端的同一个网卡设备能够同时设置多个不同网段的IP地址,内核的ARP模块会不加区分的进行统计,这样读取ARP表时,就会出现多条记录的MAC地址相同,而IP却是不同网段的情况。

【发明内容】

[0004]鉴于上述问题,本申请记载了一种基于哈希节点的终端设备信息统计的方法,应用于连接有多个所述终端设备的路由器,提供一哈希表,所述方法包括还步骤:
[0005]于经过所述路由器的内核协议栈的数据包为上行数据包时,获取所述上行数据包的源IP地址;
[0006]查找所述哈希表中是否存在所述源IP地址对应的哈希节点;
[0007]若不存在,根据所述源IP地址建立新的哈希节点并插入至所述哈希表中;若存在,不做处理;
[0008]根据所述上行数据包统计所述源IP地址的流量信息,并将所述流量信息保存至所述源IP地址对应的所述哈希节点中。
[0009]较佳的,在将新建的所述哈希节点并插入至所述哈希表中时,所述方法还包括步骤:
[0010]解析所述上行数据包的物理地址,将所述物理地址添加到所述上行数据包的源IP地址对应的所述哈希节点中。
[0011 ]较佳的,所述方法还包括步骤:
[0012]于所述数据包为下行数据包时,获取所述下行数据包的目标IP地址;
[0013]根据所述目标IP地址查找所述哈希表中是否存在对应的哈希节点;
[0014]若存在,根据所述下行数据包统计所述源IP地址的流量信息,并将所述流量信息保存至所述源IP地址对应的所述哈希节点中;若不存在,不做处理。
[0015]较佳的,所述方法还包括步骤:
[0016]提供一时间周期;
[0017]从所述哈希表中删除在所述时间周期内没有流量经过所述协议栈的IP地址对应的哈希节点;
[0018]其中,所述IP地址包括所述上行数据包的所述源IP地址和所述下行数据包的所述目标IP地址。
[0019]较佳的,所述方法还包括步骤:
[0020]提供一文件系统,将所述哈希表中的数据逐条写入所述文件系统中;
[0021 ]读取所述文件系统,以获取所述流量信息。
[0022]较佳的,所述文件系统为proc文件系统。
[0023]较佳的,所述流量信息包括实时流量信息和累计流量信息。
[0024]本发明还提供了一种基于哈希节点的终端设备信息统计的装置,应用于连接有多个所述终端设备的路由器,所述装置包括:
[0025]源IP地址获取单元,用以于经过所述路由器的内核协议栈的数据包为上行数据包时,获取所述上行数据包的源IP地址;
[0026]第一查找单元,与所述源IP地址获取单元相连,用以查找哈希表中是否存在所述源IP地址对应的哈希节点;
[0027]插入单元,与所述第一查找单元相连,根据所述源IP地址建立新的哈希节点并插入至所述哈希表中;
[0028]解析单元,与所述插入单元相连,用以于所述哈希表中不存在所述源IP地址对应的哈希节点时,解析所述源IP地址对应的所述上行数据包的物理地址,并将所述物理地址添加到所述上行数据包的源IP地址对应的所述哈希节点中;
[0029]第一统计单元,分别与所述第一查找单元以及所述插入单元相连,用以根据所述上行数据包统计所述源IP地址的流量信息,并将所述流量信息保存至所述源IP地址对应的所述哈希节点中。
[0030]较佳的,,所述装置还包括:
[0031 ]目标IP地址获取单元,用以于所述数据包为下行数据包时,获取所述下行数据包的目标IP地址;
[0032]第二查找单元,与所述目标IP地址获取单元相连,用以根据所述目标IP地址查找所述哈希表中是否存在对应的哈希节点;
[0033]第二统计单元,与所述第二查找单元相连,用以于所述目标IP地址在所述哈希表中存在对应的所述哈希节点时,根据所述下行数据包统计所述源IP地址的流量信息,并将所述流量信息保存至所述源IP地址对应的所述哈希节点中。
[0034]较佳的,所述装置还包括:
[0035]定时单元,用以提供一时间周期;
[0036]删除单元,与定时单元相连,用以从所述哈希表中删除在所述时间周期内没有流量经过所述协议桟的IP地址对应的所述哈希节点;
[0037]其中,所述IP地址包括所述上行数据的所述源IP地址和所述习性数据包的所述目标IP地址。
[0038]较佳的,所述装置还包括:
[0039]写入单元,用以将所述哈希表中的数据逐条写入文件系统中;
[0040]读取单元,与所述写入单元相连,用以读取所述文件系统,以获取所述流量信息。
[0041]上述技术方案具有如下优点或有益效果:通过本发明提供的方法,避免了单纯通过应用层获取信息的信息不足和实效性差的问题,同时避免了对冗余信息的收集对用户产生的困扰。此外,能够比较全面的统计各种连接方式的终端设备信息,同时不会带来冗余信息。最后,该方法还实现了能够较为实时的对设备的流量信息进行统计。
【附图说明】
[0042]参考所附附图,以更加充分的描述本发明的实施例。然而,所附附图仅用于说明和阐述,并不构成对本发明范围的限制。
[0043]图1为本发明一种基于哈希节点的终端设备信息统计的方法中对上行数据包统计流程示意图;
[0044]图2为本发明一种基于哈希节点的终端设备信息统计的方法中对下行数据包统计流程示意图;
[0045]图3为本发明一种基于哈希节点的终端设备信息统计的方法中对哈希表老化处理的流程示意图;
[0046]图4为本发明一种基于哈希节点的终端设备信息统计的方法中提取流量信息的流程不意图;
[0047]图5为本发明一种基于哈希节点的终端设备信息统计的装置中的结构示意图一;
[0048]图6为本发明一种基于哈希节点的终端设备信息统计的装置中的结构示意图二;
[0049]图7为本发明一种基于哈希节点的终端设备信息统计的装置中的结构示意图三;
[0050]图8为本发明一种基于哈希节点的终端设备信息统计的装置中的结构示意图四。
【具体实施方式】
[0051]下面结合附图和具体实施例对本发明一种基于哈希节点的终端设备信息统计的方法及装置进行详细说明。
[0052]实施例一
[0053]—种基于哈希节点的终端设备信息统计的方法,应用于连接有多个终端设备的路由器,如图1所述,包括步骤:
[0054]S11、于经过内核协议栈的数据包为上行数据包时,获取源IP地址;
[0055]S12、查找哈希表中是否存在该源IP地址对应的哈希节点;
[0056]S13、若不存在,根据该源IP地址建立新的哈希节点,解析该上行数据包的物理地址,并将该物理地址添加到该上行数据包的源IP地址对应的哈希节点的统计信息中,将该哈希节点插入哈希表,执行S14;若存在,直接执行S14;
[0057]S14、根据上行数据包统计源IP地址的流量信息,并将流量信息保存至源IP地址对应的哈希节点中。
[0058]此外,如图2所示,该方法还包括步骤:
[0059]S21、于经过内核协议栈的数据包为下行数据包时,获取目标IP地址;
[0060]S22、根据目标IP地址查找是否存在对应的哈希节点;
[0061]S23、若存在,根据下行数据包统计源IP地址的流量信息,并将流量信息保存至源IP地址对应的哈希节点中;若不存在,不处理。
[0062]具体来说,在本实施例提供的基于哈希节点的终端设备信息统计的方法中,分别对上行数据包以及下行数据包的对应的IP地址的流量信息进行统计存储,以便于后续的管理。在这个过程中,提供了一个哈希表,该哈希表包括多个哈希节点。因为在统计过程中,主要是对内网终端设备的流量信息进行统计,所以在路由器中,上行数据包均是由内网的终端设备发送来的,所以需要对上行数据包均进行统计。
[0063]在统计上行数据包的过程中,首先要查找该上行数据包的IP地址,并分析哈希表中是否存在该IP地址相对应的哈希节点,若存在,在根据该上行数据包在该哈希节点中存储该IP地址相应的流量信息;若不存在,需要先在哈希表上建立一与该IP地址相对应的哈希节点,并将该上行数据包在该哈希节点中存储该IP地址相应的流量信息。值得指出的是,流量信息指的是实时流量信息和累计流量信息。此外,还需要在该上行数据包的源IP地址对应的哈希节点中添加该上行数据包中的物理地址,即发送该上行数据包的终端设备的物理地址。通过建立由多个与IP地址—对应的哈希节点构成的哈希表,并不断的分析上行数据包的IP地址,根据上行数据包统计相应的IP地址的流量信息,并将统计结构存储在相应的哈希节点中。这种方式实现了对所有上行数据的分类统计,完成了对所有IP地址对应的内网终端的行为数据的统计。
[0064]除此之外,对于下行数据包,首先要获取该下行数据包的目的IP地址,根据该目的IP地址查找哈希表中是否有对应的哈希节点。若有,则说明该下行数据包是内网的终端设备的;否则,则说明该下行数据包是外网设备的。所以,为了防止外网的洪泛攻击,造成对内网资源的滥用,不对下行数据包进行哈希节点的建立动作,只可进行查找动作。
[0065]近一步来讲,因为在实际应用中,如果某个终端设备已经离线很长时间,但是若还能看到其统计信息,这显然是不合理的,所以需要提供一个针对哈希节点的老化处理方法。即在方法中,如图3所示,还包括步骤:
[0066]定时删除老化的哈希节点。
[0067]具体来说,定时删除老化的哈希节点的过程包括步骤:
[0068]S31、提供一时间周期;
[0069]S32、从哈希表中删除在时间周内没有流量经过协议栈的IP地址对应的哈希节点。
[0070]具体来说,可以根据实际的业务需要,设定一时间周期。在路由器启动时,每达到一时间周期就会执行一到期函数,该到期函数会对时间周期内没有流量经协议栈的IP地址对应的哈希节点从哈希表中删除。这种方式有利于用户读取设备信息时,获取的总是相对实时的信息。值得指出的是,IP地址包括上行数据包的源IP地址和下行数据包的目标IP地址。
[0071]近一步来讲,如图4所示,本实施例提供的方法还包括步骤:
[0072]S41、提供一文件系统,将哈希表中的数据逐条写入该文件系统中;
[0073]S42、读取该文件系统,以获取流量信息。
[0074I近一步来讲,该文件系统是proc文件系统。
[0075]具体来讲,在实际应用中,Linux内核提供了一套和应用层通信的机制,S卩proc文件系统。当应用层通过标准的读文件操作读取指定的proc文件时,因为内核已经将哈希表中的数据逐条的写入到该文件中了,所以此时读取的是终端设备的流量信息。
[0076]此外,在获取了流量信息后,用户可以根据这些流量信息指定相应的防火墙规则,进而实现针对某些设备进行防蹭网的处理等。
[0077]因为终端设备不管通过什么方式(如DHCP、静态IP)连接到路由器,通过路由器上网时,数据包都会通过内核的协议栈。所以,在本方法中,利用该特点,在数据包流经的地方对数据包进行解析,并根据解析出的IP地址建立哈希表,即每个终端设备对应一个哈希节点。同时,将解析出的物理地址作为哈希节点统计信息的一部分,也可以根据需要对某个IP地址的上下行流量进行统计,包括累计流量和每秒钟的实时流量,并将这些统计信息保存到对应的哈希节点中。应用层根据需要,从系统文件中读取这些内核的统计信息,用于后续的管理。
[0078]本实施例提供的方法,避免了单纯通过应用层获取信息的信息不足和实效性差的问题,同时避免了对冗余信息的收集对用户产生的困扰。此外,能够比较全面的统计各种连接方式的终端设备信息,同时不会带来冗余信息。最后,该方法还能够比较实时的对设备的流量信息进行统计。
[0079]实施例二
[0080]根据上述实施例提出的一种基于哈希节点的终端设备信息统计的方法,本实施例提出了一种基于哈希节点的终端设备信息统计的装置。
[0081]—种基于哈希节点的终端设备信息统计的装置,应用于连接有多个终端设备的路由器,如图5所示,包括:
[0082]源IP地址获取单元11,用以于经过路由器的内核协议栈的数据包为上行数据包时,获取上行数据包的源IP地址;
[0083]第一查找单元12,与源IP地址获取单元11相连,用以查找哈希表中是否存在源IP地址对应的哈希节点;
[0084]插入单元13,与第一查找单元12相连,用以于哈希表中不存在该源IP地址对应的哈希节点时,根据源IP地址建立新的哈希节点并插入至哈希表中;
[0085]第一统计单元14,分别与第一查找单元12以及插入单元13相连,用以根据上行数据包统计源IP地址的流量信息,并将流量信息保存至源IP地址对应的哈希节点中。
[0086]具体来说,在本实施例提供的装置中,当经过路由器的内核协议栈的数据包为上行数据包时,通过源IP地址获取单元11获取该上行数据包的源IP地址。之后,由第一查找单元12从哈希表中查找该源IP地址是否存在有对应的哈希节点,若没有,则需要利用插入单元13根据该源IP地址建立新的哈希节点并插入至该哈希表中。最后,利用第一统计单元14,根据上行数据包统计源IP地址的流量信息,并将流量信息保存至源IP地址对应的哈希节点中。
[0087]进一步来讲,本实施例提供的装置还包括:
[0088]解析单元15,与插入单元13相连,用以于哈希表中不存在该源IP地址对应的哈希节点时,解析该源IP地址对应的上行数据包的物理地址,并将该物理地址添加到该上行数据包的源IP地址对应的哈希节点中。
[0089 ]进一步来讲,如图6所示,本实施例提供的装置还包括:
[0090]目标IP地址获取单元21,用以于数据包为下行数据包时,用以获取下行数据包的目标IP地址;
[0091 ]第二查找单元22,与目标IP地址获取单元21相连,用以根据目标IP地址查找哈希表中是否存在对应的哈希节点;
[0092]第二统计单元23,与第二查找单元22相连,用以于目标IP地址在哈希表中存在对应的哈希节点时,根据下行数据包统计源IP地址的流量信息,并将流量信息保存至源IP地址对应的哈希节点中。
[0093]具体来说,对于下行数据包,首先要通过第二查找单元22获取该下行数据包的目的IP地址,并根据该目的IP地址查找哈希表中是否有对应的哈希节点。若有,则说明该下行数据包是内网的终端设备的;否则,则说明该下行数据包是外网设备的。所以,为了防止外网的洪泛攻击,造成对内网资源的滥用,不对下行数据包进行哈希节点的建立动作,只可进行查找动作。最后,利用第二统计单元23根据下行数据包统计源IP地址的流量信息,并将流量信息保存至源IP地址对应的哈希节点中。
[0094]进一步来讲,流量信息包括实时流量信息和累计流量信息。
[0095]进一步来讲,如图7所示,本实施例提供的装置还包括:
[0096]定时单元31,用以提供一时间周期;
[0097]删除单元32,与定时单元31相连,用以从哈希表中删除在时间周期内没有流量经过协议栈的IP地址对应的哈希节点。
[0098]具体来说,可以根据实际的业务需要,通过定时单元31设定一时间周期。在路由器启动时,删除单元32定时的进行删除动作,即删除单元32会对时间周期内没有流量经协议栈的IP地址对应的哈希节点从哈希表中删除。这种方式有利于用户读取设备信息时,获取的总是相对实时的信息。值得指出的是,IP地址包括上行数据包的源IP地址和下行数据包的目标IP地址。
[0099 ]进一步来讲,如图8所示,本实施例提供的装置还包括:
[0100]写入单元41,用以将哈希表中的数据逐条写入文件系统中;
[0101 ]读取单元42,与写入单元41相连,用以读取文件系统,以获取流量信息。
近一步来讲,该文件系统是proc文件系统。
[0103]具体来讲,在实际应用中,Linux内核提供了一套和应用层通信的机制,S卩proc文件系统。当读取单元42通过标准的读文件操作读取指定的proc文件时,因为写入单元41已经将哈希表中的数据逐条的写入到该文件中了,所以此时读取的是终端设备的流量信息。
[0104]对于本领域的技术人员而言,阅读上述说明后,各种变化和修正无疑将显而易见。因此,所附的权利要求书应看作是涵盖本发明的真实意图和范围的全部变化和修正。在权利要求书范围内任何和所有等价的范围与内容,都应认为仍属本发明的意图和范围内。
【主权项】
1.一种基于哈希节点的终端设备信息统计的方法,应用于连接有多个所述终端设备的路由器,其特征在于,提供一哈希表,所述方法还包括步骤: 于经过所述路由器的内核协议栈的数据包为上行数据包时,获取所述上行数据包的源IP地址; 查找所述哈希表中是否存在所述源IP地址对应的哈希节点; 若不存在,根据所述源IP地址建立新的哈希节点并插入至所述哈希表中;若存在,不做处理; 根据所述上行数据包统计所述源IP地址的流量信息,并将所述流量信息保存至所述源IP地址对应的所述哈希节点中。2.根据权利要求1所述的基于哈希节点的终端设备信息统计的方法,其特征在于,在将新建的所述哈希节点并插入至所述哈希表中时,所述方法还包括步骤: 解析所述上行数据包的物理地址,将所述物理地址添加到所述上行数据包的源IP地址对应的所述哈希节点中。3.根据权利要求1所述的基于哈希节点的终端设备信息统计的方法,其特征在于,所述方法还包括步骤: 于所述数据包为下行数据包时,获取所述下行数据包的目标IP地址; 根据所述目标IP地址查找所述哈希表中是否存在对应的哈希节点; 若存在,根据所述下行数据包统计所述源IP地址的流量信息,并将所述流量信息保存至所述源IP地址对应的所述哈希节点中;若不存在,不做处理。4.根据权利要求3所述的基于哈希节点的终端设备信息统计的方法,其特征在于,所述方法还包括步骤: 提供一时间周期; 从所述哈希表中删除于所述时间周期内没有流量经过所述协议栈的IP地址对应的哈希节点; 其中,所述IP地址包括所述上行数据包的所述源IP地址和所述下行数据包的所述目标IP地址。5.根据权利要求3所述的基于哈希节点的终端设备信息统计的方法,其特征在于,所述方法还包括步骤: 提供一文件系统,将所述哈希表中的数据逐条写入所述文件系统中; 读取所述文件系统,以获取所述流量信息。6.根据权利要求5所述的基于哈希节点的终端设备信息统计的方法,其特征在于,所述文件系统为proc文件系统。7.根据权利要求5所述的基于哈希节点的终端设备信息统计的方法,其特征在于,所述流量信息包括实时流量信息和累计流量信息。8.—种基于哈希节点的终端设备信息统计的装置,应用于连接有多个所述终端设备的路由器,其特征在于,所述装置包括: 源IP地址获取单元(11),用以于经过所述路由器的内核协议栈的数据包为上行数据包时,获取所述上行数据包的源IP地址; 第一查找单元(12),与所述源IP地址获取单元(11)相连,用以查找哈希表中是否存在所述源IP地址对应的哈希节点; 插入单元(13),与所述第一查找单元(12)相连,根据所述源IP地址建立新的哈希节点并插入至所述哈希表中; 解析单元(15),与所述插入单元(13)相连,用以于所述哈希表中不存在所述源IP地址对应的哈希节点时,解析所述源IP地址对应的所述上行数据包的物理地址,并将所述物理地址添加到所述上行数据包的源IP地址对应的所述哈希节点中; 第一统计单元(14),分别与所述第一查找单元(12)以及所述插入单元(13)相连,用以根据所述上行数据包统计所述源IP地址的流量信息,并将所述流量信息保存至所述源IP地址对应的所述哈希节点中。9.根据权利要求8所述的基于哈希节点的终端设备信息统计的装置,其特征在于,所述装置还包括: 目标IP地址获取单元(21),用以于所述数据包为下行数据包时,获取所述下行数据包的目标IP地址; 第二查找单元(22),与所述目标IP地址获取单元(21)相连,用以根据所述目标IP地址查找所述哈希表中是否存在对应的哈希节点; 第二统计单元(23),与所述第二查找单元(22)相连,用以于所述目标IP地址在所述哈希表中存在对应的所述哈希节点时,根据所述下行数据包统计所述源IP地址的流量信息,并将所述流量信息保存至所述源IP地址对应的所述哈希节点中。10.根据权利要求9所述的基于哈希节点的终端设备信息统计的装置,其特征在于,所述装置还包括: 定时单元(31 ),用以提供一时间周期; 删除单元(32),与定时单元(31)相连,用以从所述哈希表中删除在所述时间周期内没有流量经过所述协议桟的IP地址对应的所述哈希节点; 其中,所述IP地址包括所述上行数据的所述源IP地址和所述习性数据包的所述目标IP地址。11.根据权利要求8或9所述的基于哈希节点的终端设备信息统计的装置,其特征在于,所述装置还包括: 写入单元(41),用以将所述哈希表中的数据逐条写入文件系统中; 读取单元(42),与所述写入单元(41)相连,用以读取所述文件系统,以获取所述流量信息。
【文档编号】H04L12/26GK105978748SQ201610266058
【公开日】2016年9月28日
【申请日】2016年4月26日
【发明人】赵冲
【申请人】上海斐讯数据通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1