一种获取kad网络上热门检索资源的方法和系统的制作方法

文档序号:6522195阅读:335来源:国知局
一种获取kad网络上热门检索资源的方法和系统的制作方法
【专利摘要】本发明提供一种获取KAD网络上热门检索资源的方法及系统。所述方法包括:构造模拟节点并加入KAD网络,使得所述模拟节点在KAD网络空间中均匀分布;由所述模拟节点监听所述KAD网路中其他节点的请求消息。所述方法还包括由所述模拟节点将从资源检索请求消息中获取的资源ID发送至热门资源统计服务器进行统计。本发明能够比较全面、准确地获得KAD网络中的热门检索资源,能够为网络信息挖掘及网络信息安全等工作提供帮助。
【专利说明】—种获取KAD网络上热门检索资源的方法和系统
【技术领域】
[0001]本发明涉及对等网络技术,尤其涉及一种获取KAD网络上热门检索资源的方法和系统。
【背景技术】
[0002]KAD (Kademlia)协议是DHT技术的一种实现,eMule从v0.40版本开始加入了对KAD协议的支持(简称eMule-KAD)。随着eMule的普及,KAD已成为目前广泛部署和应用的DHT网络,据统计eMule-KAD中同时在线的节点数可高达5百万。
[0003]在KAD网络中,每个用户都可以与网络中的其他用户共享自己的资源。由于KAD网络中的节点数量巨大,其中传递的资源数量更是数以亿计。如何在海量的信息中比较全面地获取检索资源信息,是本领域的一个技术难点。目前,一种方法是通过网络中的节点监听消息来获取检索资源,但是一个节点能监听和获取到的信息有限,这是因为KAD网络中的资源是向离该资源ID较近的节点上发布的,有限的信息会导致对网络中热门检索资源的判断不够准确。因此,如何获取全面、准确的检索资源信息,是目前需要解决的问题。

【发明内容】

[0004]根据本发明的一个实施例,提供一种获取KAD网络上热门检索资源的方法,包括:
[0005]步骤I )、构造模拟节点并加入KAD网络,使得所述模拟节点在KAD网络空间中均匀分布;
[0006]步骤2)、由所述模拟节点监听所述KAD网路中其他节点的请求消息;以及
[0007]步骤3)、由所述模拟节点将从资源检索请求消息中获取的资源ID发送至热门资源统计服务器进行统计。
[0008]在一个实施例中,步骤3)包括:由所述模拟节点判断接收到的消息是否为资源检索请求消息;如果是资源检索请求消息,则解析该消息包获取资源ID,并且将所述资源ID发送至热门资源统计服务器进行统计。
[0009]在一个实施例中,所述资源检索请求消息包括资源ID和消息类型。
[0010]在一个实施例中,所述资源ID是关键词资源ID或者文件资源ID。
[0011]在一个实施例中,步骤3)中,热门资源统计服务器进行统计包括:
[0012]步骤a)、接收由所述模拟节点发送来的资源ID ;
[0013]步骤b)、判断所述资源ID值是否已经存在于所述热门资源统计服务器的哈希库中;
[0014]如果已存在,则将所述资源ID的相应计数加I ;
[0015]如果不存在,则将所述资源ID插入哈希库中,并将相应的计数初始化为I ;以及
[0016]步骤C)、根据计数得到热门检索资源相应的资源ID。
[0017]在一个实施例中,步骤3)之前还包括:启动所述热门资源统计服务器的资源ID监听服务。[0018]根据本发明的一个实施例,还提供一种获取KAD网络上热门检索资源的系统,包括:
[0019]节点构造模块,用于构造模拟节点并加入KAD网络,使得所述模拟节点在KAD网络空间中均匀分布;
[0020]监听模块,用于由所述模拟节点监听所述KAD网路中其他节点的请求消息;以及由所述模拟节点将从资源检索请求消息中获取的资源ID发送至热门资源统计服务器进行统计。
[0021]在一个实施例中,所述监听模块用于由所述模拟节点判断接收到的消息是否为资源检索请求消息;如果是资源检索请求消息,则解析该消息包获取资源ID,并且将所述资源ID发送至热门资源统计服务器进行统计。
[0022]在一个实施例中,所述系统还包括:
[0023]热门资源统计服务器,用于接收由所述模拟节点发送来的资源ID ;判断所述资源ID值是否已经存在于所述热门资源统计服务器的哈希库中;如果已存在,则将所述资源ID的相应计数加I ;如果不存在,则将所述资源ID插入哈希库中,并将相应的计数初始化为I ;以及根据计数得到热门检索资源相应的资源ID。
[0024]本发明通过启用分布式的模拟节点在KAD网络中被动监听资源检索请求消息,从资源检索请求消息中获取资源ID并且发送给热门资源统计服务器,最终统计出检索次数较多的热门检索资源(关键词资源或文件资源)。本发明能够比较全面、准确地获得KAD网络中的热门检索资源,能够为网络信息挖掘及网络信息安全等工作提供帮助。
【专利附图】

【附图说明】
[0025]图1是KAD网络中资源检索信息交互示意图;
[0026]图2是根据本发明的一个实施例,由模拟节点获取资源检索请求消息中的资源ID的方法的流程图;
[0027]图3是根据本发明的一个实施例,由热门资源统计服务器接收来自每个模拟节点的信息的示意图;
[0028]图4是根据本发明的一个实施例,由热门资源统计服务器统计资源ID的方法的流程图;以及
[0029]图5是采用本发明提供的获取KAD网络上热门检索资源的方法在实际KAD网络中监测到的资源ID和相应统计计数的屏幕截图。
【具体实施方式】
[0030]下面结合附图和【具体实施方式】对本发明加以说明。
[0031]在描述本发明提供的KAD网络资源信息的获取方法以及系统之前,先简要说明KAD协议中的几个模块:
[0032](I) KAD 节点:
[0033]在KAD网络中,采用128位的二进制字符串来表示一个节点ID(或称用户ID)。节点ID通常是在该节点第一次启动时通过MD4哈希函数生成,哈希的随机性保证了节点的均匀性和无碰撞。网络中节点ID可以组成一个查找二叉树,节点按照各自的ID前缀分布在这个二叉树上,可由节点间的异或运算来跳跃式查找的对于指定节点ID的搜索。
[0034](2)关键词资源
[0035]关键词资源用于索引文件资源的信息,其形式可以为〈key,value〉,其中key是将哈希函数作用于由分词规则分割的关键词而生成的ID值,或称关键词资源ID,value则包括了含有该关键词的文件资源的一系列信息,如文件名、文件大小以及文件ID等。
[0036](3)文件资源
[0037]文件资源用于索引下载源信息,其形式为〈key,value〉,其中key为该文件的内容根据MD4哈希函数计算得到的128位ID值,或称文件资源ID, value包括共享此文件的节点的一系列信息,如节点ID,IP地址以及端口等。下文中的资源ID是关键词资源ID(key)和文件资源ID (key)的统称。
[0038](4)资源检索
[0039]在进行关键词资源检索时,KAD会根据MD4哈希函数计算出该关键词的哈希值,通过迭代查找(发送KADEMLIA_REQ消息)找到位于关键词ID偏移区间内的节点后,向其发送KADEMLIA_SEARCH_REQ 或 KADEMLIA2_SEARCH_KEY_REQ 请求消息,其消息交互如图1 所示。当用户选择某个文件准备下载时,KAD便开始执行文件资源的检索过程,过程与关键词检索类似。
[0040]根据本发明的一个实施例,提供一种获取KAD网络上热门检索资源的方法。简要而言,该方法包括以下步骤:由模拟节点获取资源(关键词资源或者文件资源)检索请求消息中的资源ID (关键词资源ID或者文件资源ID)并发送给热门资源统计服务器;接着由热门资源统计服务器对获取的资源ID进行统计。该方法基于KAD协议的资源检索功能,在与资源ID较近的节点上监听该资源的检索消息并统计。以下将分别描述这两个步骤。
[0041]步骤一、由模拟节点获取资源检索请求消息中的资源ID并发送给热门资源统计服务器。根据本发明的一个实施例,如图2所示,本步骤包括以下子步骤:
[0042]步骤S101、构造模拟节点,且在KAD网络中启动并自动扩散该模拟节点的节点信息,使得所构造的分布式模拟节点能够尽可能地覆盖整个KAD网络。
[0043]在一个实施例中,可以在KAD网络的节点ID逻辑空间内随机选取n个节点ID,使得所选取的这n个节点ID尽量均匀地分布在整个逻辑空间,用选取的这n个节点ID构造KAD网络的模拟节点。启动的模拟节点足够多、足够均匀即可以最大限度地获得KAD网络中不同节点的资源检索请求。
[0044]步骤S102、由启动的模拟节点监听KAD网络中其它节点的请求消息(即KAD协议消息)。
[0045]步骤S103、模拟节点判断收到的消息是否为资源检索请求消息(关键词资源检索请求消息或者文件资源检索请求消息)。
[0046]在一个实施例中,资源检索请求消息可包括资源ID和消息类型,其中消息类型可用于判断该消息是否是资源检索请求消息。在一个实施例中,资源请求消息还可以包括扩展字,当扩展字为I时代表后面还跟有关键词,否则代表后面没有关键词。
[0047]步骤S104、模拟节点根据上一步的判断结果,执行以下处理:
[0048]如果收到的消息是资源检索请求消息,则解析该消息包,从中获取目标资源ID(SP关键词资源ID或文件资源ID),并将获取的资源ID发送到热门资源统计服务器。如图3所示,热门资源统计服务器接收来自每个模拟节点的关于资源ID的信息。
[0049]如果收到的消息不是资源检索请求消息,则模拟节点继续监听KAD网络。
[0050]步骤S105、判断是否满足退出条件(例如用户结束监听程序)。若是,则退出结束;否则继续监听KAD网络。
[0051]步骤二、由热门资源统计服务器对获取的资源ID进行统计。根据本发明的一个实施例,参考图4,本步骤包括以下子步骤:
[0052]步骤S201、首先启动热门资源统计服务器的资源ID监听服务,进入资源ID监听状态。其中,该热门资源统计服务器包括哈希库,哈希库中包括资源ID及其相应的统计计数。
[0053]步骤S202、热门资源统计服务器获取分布式模拟节点发送来的资源ID (关键词资源ID或文件资源ID)。
[0054]步骤S203、热门资源统计服务器判断该资源ID是否已经存在于哈希库中。
[0055]步骤S204、如果该资源ID已存在,则在哈希库中将该资源ID的相应计数进行加I操作,进行步骤S206 ;否则进行下一步。
[0056]步骤S205、如果该资源ID不存在,则将该资源ID插入到哈希库中,并将其计数初始化为I。
[0057]步骤S206、将计数大于某个预定阈值的资源ID的相应资源(关键词资源或文件资源)作为热门检索资源。
[0058]步骤S207、判断是否满足退出条件(例如结束资源ID监听),若满足,则退出结束;若不满足,则继续进行资源ID监听。
[0059]根据本发明的一个实施例,还提供一种获取KAD网络上热门检索资源的系统。包括节点构造模块、监听模块以及热门资源统计服务器。
[0060]其中节点构造模块用于构造模拟节点并加入KAD网络,使得该模拟节点在KAD网络空间中均匀分布。
[0061]监听模块用于由模拟节点监听KAD网路中其他节点的请求消息,判断接收到的消息是否为资源检索请求消息:
[0062]如果是资源检索请求消息,则解析该消息包获取资源ID,并且将获得的资源ID发送至热门资源统计服务器进行统计;否则继续监听KAD网络。
[0063]热门资源统计服务器用于对资源ID进行统计,包括:
[0064]接收由模拟节点发送来的资源ID。判断资源ID值是否已经存在于该热门资源统计服务器的哈希库中:如果已存在,则将资源ID的相应计数加I ;如果不存在,则将资源ID插入哈希库中,并将相应的计数初始化为I。以及根据计数得到热门检索资源的资源ID。
[0065]为验证本发明提供的获取KAD网络上热门检索资源的方法的有效性,发明人在实际的KAD网络中进行了实验,图5给出了监测到的资源检索信息的一小部分,包括资源ID及计数。从实验结果可知得到的资源ID从0打头到F打头,其遍布整个KAD网络。经实验验证,使用本发明提供的方法,能够比较全面地获取整个KAD网络中的热门资源。
[0066]应该注意到并理解,在不脱离后附的权利要求所要求的本发明的精神和范围的情况下,能够对上述详细描述的本发明做出各种修改和改进。因此,要求保护的技术方案的范围不受所给出的任何特定示范教导的限制。
【权利要求】
1.一种获取KAD网络上热门检索资源的方法,包括: 步骤I)、构造模拟节点并加入KAD网络,使得所述模拟节点在KAD网络空间中均匀分布; 步骤2)、由所述模拟节点监听所述KAD网路中其他节点的请求消息;以及步骤3)、由所述模拟节点将从资源检索请求消息中获取的资源ID发送至热门资源统计服务器进行统计。
2.根据权利要求1所述的方法,其中,步骤3)包括: 由所述模拟节点判断接收到的消息是否为资源检索请求消息;如果是资源检索请求消息,则解析该消息包获取资源ID,并且将所述资源ID发送至热门资源统计服务器进行统计。
3.根据权利要求1或2所述的方法,其中,所述资源检索请求消息包括资源ID和消息类型。
4.根据权利要求1或2所述的方法,其中,所述资源ID是关键词资源ID或者文件资源ID0
5.根据权利要求1或 2所述的方法,步骤3)中,热门资源统计服务器进行统计包括: 步骤a)、接收由所述模拟节点发送来的资源ID ; 步骤b)、判断所述资源ID值是否已经存在于所述热门资源统计服务器的哈希库中; 如果已存在,则将所述资源ID的相应计数加I ; 如果不存在,则将所述资源ID插入哈希库中,并将相应的计数初始化为I ;以及 步骤C)、根据计数得到热门检索资源相应的资源ID。
6.根据权利要求1或2所述的方法,其中,步骤3)之前还包括: 启动所述热门资源统计服务器的资源ID监听服务。
7.一种获取KAD网络上热门检索资源的系统,包括: 节点构造模块,用于构造模拟节点并加入KAD网络,使得所述模拟节点在KAD网络空间中均匀分布; 监听模块,用于由所述模拟节点监听所述KAD网路中其他节点的请求消息;以及由所述模拟节点将从资源检索请求消息中获取的资源ID发送至热门资源统计服务器进行统计。
8.根据权利要求7所述的系统,其中,所述监听模块用于由所述模拟节点判断接收到的消息是否为资源检索请求消息;如果是资源检索请求消息,则解析该消息包获取资源ID,并且将所述资源ID发送至热门资源统计服务器进行统计。
9.根据权利要求7或8所述的系统,还包括: 热门资源统计服务器,用于接收由所述模拟节点发送来的资源ID ;判断所述资源ID值是否已经存在于所述热门资源统计服务器的哈希库中;如果已存在,则将所述资源ID的相应计数加I ;如果不存在,则将所述资源ID插入哈希库中,并将相应的计数初始化为I ;以及根据计数得到热门检索资源相应的资源ID。
【文档编号】G06F17/30GK103605789SQ201310645868
【公开日】2014年2月26日 申请日期:2013年12月4日 优先权日:2013年12月4日
【发明者】程学旗, 冯凯, 刘备, 孙庆, 席鹏弼, 王元卓, 刘悦 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1