基于多探针节点探测P2P网络搜索热点的方法技术

技术编号:10369479 阅读:270 留言:0更新日期:2014-08-28 12:18
本发明专利技术公开了一种基于多探针节点探测P2P网络搜索热点的方法,目的是解决难以对网络中搜索热点进行高效检测的问题。技术方案是先构建由N个探针节点组成的探针节点集合,每个探针节点由定时器,热点阈值设置器,Kademlia逻辑部件,Chord逻辑部件和热点发现与上报部件组成;Kademlia逻辑部件依据Kademlia协议将所属探针节点加入Kademlia网络,Chord逻辑部件则依据Chord协议将探针节点组成Chord网络;各探针节点对Kademlia网络搜索热点进行探测,分布式地统计各个搜索内容的搜索源节点数,发现搜索热点,将发现的热点上报到中枢服务器。采用本发明专利技术可以对网络中搜索热点进行高效检测。

【技术实现步骤摘要】
基于多探针节点探测P2P网络搜索热点的方法
本专利技术涉及对Kademlia网络搜索热点进行检测的方法,尤指基于多个探针节点、分布式地探测Kademlia网络搜索热点的方法。
技术介绍
Kademlia协议是一种典型的DHT(DistributedHashTable,分布哈希表)协议,广泛用于构建大规模、纯分布式P2P(PeertoPeer)网络,如电驴、BitTorrent等。对于基于Kademlia的大型P2P网络,高效感知其热点搜索内容,有利于及时发现在P2P网络中传播的恶意信息,并使得安全人员快速采取措施予以遏制。然而,由于这种P2P网络多是纯分布性的,即没有集中服务器,这使得高效检测整个网络的搜索热点成为一个难题。Kademlia给每个节点分配一个唯一、随机的标识,即nodeID;为每个对象分配一个类似的标识,即objectID(又称为key)。这些ID通常使用SHA-1这种单向散列函数来生成,ID之间的距离采用异或运算来度量。在Kademlia网络中,每个对象都存储在nodeID最接近其objectID的K个节点上。K一般取值为20。每个Kademlia节点的路由表由L(L等于节点标识的比特位数)个链表组成,每个链表称为一个“K-bucket”,用于记录网络中到自己的异或距离在区间[2i,2i+1)(i为K-bucket的序号,0≤i<L)内的邻居节点的信息,每条信息以三元组<IP地址,UDP端口号,nodeID>形式表示和存储。Kademlia协议规定,K-bucket长度以K为上限。每当Kademlia节点收到来自其他节点的消息,它就根据该消息发送节点到自己的异或距离以及消息中的<IP地址,UDP端口号,nodeID>信息来更新K-bucket中的记录,这称为捎带确认(piggybacking)。L个K-bucket组成一个Kademlia节点的路由表,因此路由表也称“K-buckets”。一个路由表中的L个K-bucket通过连续的序号i区分。Kademlia协议由四个RPC(RemoteProcessCall,远程过程调用,是一种命令)组成,其名称分别是PING,STORE,FIND_NODE,FIND_VALUE,它们的工作如下所示:PING:用来探测一个节点是否在线;STORE:指示一个节点存储一个<key,value>对,以便于将来的数据获取。key为对象散列值,即objectID,value为真正的数据对象(或其索引);FIND_NODE:以ID为参数,FIND_NODERPC的接收者以<IP地址,UDP端口号,nodeID>的形式返回他所知的离目标ID最近的K个节点;FIND_VALUE:以key为参数,寻找key对应的value。Chord协议(参见StoicaI和MorrisR等人于2001年在ACMSIGCOMM国际会议上发表的论文“Chord:Ascalablepeer-to-peerlookupserviceforInternetapplications一种可扩展的、用于互联网应用的点对点定位服务”)是MIT提出来的基于P2P网络资源定位协议。在Chord协议中,每个节点的标识一般通过对节点IP地址进行哈希运算获得。所有节点标识从小到大排列呈一个有序线性表,通过对节点标识取模运算,将线性表的首尾相连,即形成一个节点标识环。通过对资源关键字进行哈希运算,获得m位的关键字标识,对资源标识进行上述操作,又形成一个资源标识环。把资源标识环和节点标识环重叠,就是Chord协议的路由算法的基础。在Chord协议中,nodeID也表示节点标识,对象标识objectID(或key)也被称为资源关键字标识(或键)。Chord所有节点按照nodeID从小到大顺时针排列在一个环上,对象o(o为键)的数据信息都保存在环上顺时针方向节点标识符大于o标识符的第一个节点中,该节点被称为对象o的后继节点,将其记作successor(o)。每个Chord节点维护自己的前驱和后继,节点前驱是在环上nodeID小于该节点的第一个节点,节点后继是在环上nodeID大于该节点的第一个节点。目前的热点内容感知方法主要是针对互联网中新闻报道、网络话题等公开信息,所用的方法主要是通过对这些公开信息进行预处理,然后利用聚类分析的方法进行统计,并通过一定的排序函数获得热点。Kademlia网络作为一种无中心的纯分布式网络,每个节点的搜索情况是非公开的,因此现有的热点内容感知方法无法适用。
技术实现思路
针对目前因Kademlia网络的纯分布性而导致的问题——难以对网络中搜索热点进行高效检测,提出一种基于多探针节点探测P2P网络搜索热点的方法。探针节点是受控制的节点,用于感知Kademlia节点的搜索活动。本专利技术的技术方案为:通过在Kademlia网络中部署N(如20个,视Kademlia网络规模而定,即其中为向上取整运算,N、S为正整数,S为Kademlia网络中的节点总数)个探针节点,感知Kademlia网络各个局部的搜索活动;通过在这些探针节点上部署Chord协议,实现感知内容的分发与汇聚;通过各个探针节点分布式地统计各个搜索内容的搜索源节点数,发现搜索热点;最后将发现的热点上报到中枢服务器。本专利技术技术方案包括以下步骤:第一步,构建由N个探针节点组成的探针节点集合;申请电子邮箱,作为中枢服务邮箱。探针节点具有一定的智能性,也称为智能节点。每个探针节点由五个部件组成,分别是定时器,热点阈值设置器,Kademlia逻辑部件,Chord逻辑部件和热点发现与上报部件。定时器是为热点发现与上报部件设置工作周期T的模块。T一般设为6小时。热点阈值设置器是为热点发现与上报部件设置阈值TH的模块。一旦在工作周期T内搜索某个内容的节点数超过TH,即认为是热点。TH的设置依情况而定,一般可设为10000-50000。Kademlia逻辑部件是探针节点依据Kademlia协议处理网络中节点请求、搜索等事务的模块,并将感知到的搜索活动传递给Chord逻辑部件。Kademlia逻辑部件为Kademlia节点提供PING,STORE,FIND_NODE,FIND_VALUE四个远程过程调用功能,用于正常响应其他Kademlia节点的请求,以免影响Kademlia网络正常服务。根据Kademlia协议,Kademlia逻辑部件为每个探针节点分配一个128bit的Kademlia网络标识KadNodeID。一旦接收到来自网络标识为KadNodeID的源节点对某个对象标识为Key的内容的请求FIND_VALUE(Key),即将该次搜索活动信息<Key,KadNodeID>送给Chord逻辑部件。Chord逻辑部件是探针节点依据Chord协议处理Chord网络组织、分发搜索活动信息等事务的模块。Chord网络中每一个探针节点的网络标识长度为128bit,每个对象标识的长度也为128bit,探针节点的Chord网络标识与探针节点的Kademlia网络标识相同。Chord逻辑部件将由Kademlia逻辑部件送来的搜索活动信息在Chord网络中进行分发。根据Chord协议,具有相同搜索目标的搜索活动信息会经由Chord网络汇聚到同一个探针节点上本文档来自技高网
...
基于多探针节点探测P2P网络搜索热点的方法

【技术保护点】
一种基于多探针节点探测P2P网络搜索热点的方法,其特征在于包括以下步骤:第一步,构建由N个探针节点组成的探针节点集合,N为正整数;申请电子邮箱,作为中枢服务邮箱;每个探针节点由五个部件组成,分别是定时器,热点阈值设置器,Kademlia逻辑部件,Chord逻辑部件和热点发现与上报部件;定时器是为热点发现与上报部件设置工作周期T的模块;热点阈值设置器是为热点发现与上报部件设置阈值TH的模块,一旦在工作周期T内搜索某个内容的节点数超过TH,即认为是热点;Kademlia逻辑部件是探针节点依据Kademlia协议处理网络中节点请求、搜索事务的模块,并将感知到的搜索活动传递给Chord逻辑部件;Kademlia逻辑部件为Kademlia节点提供PING,STORE,FIND_NODE,FIND_VALUE四个远程过程调用功能,用于正常响应其他Kademlia节点的请求;根据Kademlia协议,Kademlia逻辑部件为每个探针节点分配一个128bit的Kademlia网络标识KadNodeID;一旦接收到来自网络标识为KadNodeID的源节点对某个对象标识值为Key的内容的请求FIND_VALUE(Key),即将该次搜索活动信息<Key,KadNodeID>送给Chord逻辑部件;搜索活动信息用二元组<Key,KadNodeID>表示;Chord逻辑部件是探针节点依据Chord协议处理Chord网络组织、分发搜索活动信息事务的模块;Chord网络中每一个探针节点的网络标识长度为128bit,每个对象标识的长度也为128bit,与探针节点的Kademlia网络标识相同;Chord逻辑部件将由Kademlia逻辑部件送来的搜索活动信息在Chord网络中进行分发;根据Chord协议,具有相同搜索目标的搜索活动信息经由Chord网络汇聚到同一个探针节点上,该探针节点的Chord逻辑部件将汇聚的搜索活动信息提交到热点发现与上报部件;搜索活动信息<Key,KadNodeID>存储在离Key最近的探针节点上,对于相同的搜索目标对象标识Key,由不同探针节点发布的搜索活动信息经由Chord协议汇聚到同一个探针节点上,该探针节点称为Key的根节点S(key);热点发现与上报部件是发现搜索热点并上报给中枢服务器的模块,内有表项为<Key值,总搜索数,源搜索节点集>的汇聚表,汇聚表的项数等于网络中搜索活动的目标对象标识的数目,记为σ,σ为整数且σ≥0,其中Key值是对象标识,作为表项索引,是搜索活动的目标对象标识;总搜索数是向Key值发起搜索的源节点的个数;源搜索节点集记录了对该Key发起搜索的所有源节点的标识集合;热点发现与上报部件将总搜索数超过热点阈值的表项通过电子邮件发往中枢服务邮箱;中枢服务邮箱负责接收来自所有探针节点汇报的搜索热点信息,获得全局的热点信息;第二步,所有探针节点的定时器部件设置周期T,所有探针节点的热点阈值设置器部件设置热点阈值TH;第三步,Kademlia逻辑部件依据Kademlia协议将所属探针节点加入Kademlia网络,Chord逻辑部件则依据Chord协议将探针节点组成Chord网络;第四步,各探针节点分别探测Kademlia网络中的搜索活动,并将搜索热点发送给中枢服务邮箱:4.1)Kademlia逻辑部件和Chord逻辑部件实时监听报文;4.2)如果Kademlia逻辑部件接收到kademlia网络报文,转4.3);如果Chord逻辑部件接收到chord网络报文,转4.7);如果探针节点接收到系统的退出指令,转步骤4.17);4.3)Kademlia逻辑部件按照Kademlia协议正常响应kademlia报文;4.4)Kademlia逻辑部件判断该kademlia报文是否为搜索活动信息<key,SourceNodeID>,判断依据是该kademlia报文是否包含网络标识为KadNodeID的源节点对某个对象标识为Key的内容的请求命令FIND_VALUE(Key),如果是,转步骤4.5);否则,转步骤4.1);4.5)Kademlia逻辑部件将所感知到的本次kademlia搜索活动信息<key,SourceNodeID>传送给Chord逻辑部件,并由Chord逻辑部件在Chord网络中找到负责该key的根节点S(key);4.6)Chord逻辑部件在Chord网络中向根节点S(key)发布本次感知到的Kademlia搜索活动信息<key,SourceNodeID>,转步骤4.1);4.7)Chord逻辑部件按照Chord协议正常响应chord报文;4.8)Chord逻辑部件判断所接收到的chord报文中是否包含Kademlia搜索活动信息,如果包含,将该Kademlia搜索活动信息<key,SourceNodeID>...

【技术特征摘要】
1.一种基于多探针节点探测P2P网络搜索热点的方法,其特征在于包括以下步骤:第一步,构建由N个探针节点组成的探针节点集合,N为正整数;申请电子邮箱,作为中枢服务邮箱;每个探针节点由五个部件组成,分别是定时器,热点阈值设置器,Kademlia逻辑部件,Chord逻辑部件和热点发现与上报部件;定时器是为热点发现与上报部件设置工作周期T的模块;热点阈值设置器是为热点发现与上报部件设置阈值TH的模块,一旦在工作周期T内搜索某个内容的节点数超过TH,即认为是热点;Kademlia逻辑部件是探针节点依据Kademlia协议处理网络中节点请求、搜索事务的模块,并将感知到的搜索活动传递给Chord逻辑部件;Kademlia逻辑部件为Kademlia节点提供PING,STORE,FIND_NODE,FIND_VALUE四个远程过程调用功能,用于正常响应其他Kademlia节点的请求;根据Kademlia协议,Kademlia逻辑部件为每个探针节点分配一个128bit的Kademlia网络标识KadNodeID;一旦接收到来自网络标识为KadNodeID的源节点对某个对象标识值为Key的内容的请求FIND_VALUE(Key),即将该次搜索活动信息<Key,KadNodeID>传送给Chord逻辑部件;搜索活动信息用二元组<Key,KadNodeID>表示;Chord逻辑部件是探针节点依据Chord协议处理Chord网络组织、分发搜索活动信息事务的模块;Chord网络中每一个探针节点的网络标识长度为128bit,每个对象标识的长度也为128bit,探针节点的Chord网络标识与探针节点的Kademlia网络标识相同;Chord逻辑部件将由Kademlia逻辑部件送来的搜索活动信息在Chord网络中进行分发;根据Chord协议,具有相同搜索目标的搜索活动信息经由Chord网络汇聚到同一个探针节点上,该探针节点的Chord逻辑部件将汇聚的搜索活动信息提交到热点发现与上报部件;搜索活动信息<Key,KadNodeID>存储在离Key最近的探针节点上,对于相同的搜索目标对象标识Key,由不同探针节点发布的搜索活动信息经由Chord协议汇聚到同一个探针节点上,该探针节点称为Key的根节点S(Key);热点发现与上报部件是发现搜索热点并上报给中枢服务器的模块,内有表项为<Key值,总搜索数,源搜索节点集>的汇聚表,汇聚表的项数等于网络中搜索活动的目标对象标识的数目,记为σ,σ为整数且σ≥0,其中Key值是对象标识,作为表项索引,是搜索活动的目标对象标识;总搜索数是向Key值发起搜索的源节点的个数;源搜索节点集记录了对该Key发起搜索的所有源节点的标识集合;热点发现与上报部件将总搜索数超过热点阈值的表项通过电子邮件发往中枢服务邮箱;中枢服务邮箱负责接收来自所有探针节点汇报的搜索热点信息,获得全局的热点信息;第二步,所有探针节点的定时器部件设置周期T,所有探针节点的热点阈值设置器部件设置热点阈值TH;第三步,Kademlia逻辑部件依据Kademlia协议将该Kademlia逻辑部件所属探针节点加入Kademlia网络,Chord逻辑部件则依据Chord协议将探针节点组成Cho...

【专利技术属性】
技术研发人员:刘惠丁博王天佐鲁强肖哲锋马晓龙
申请(专利权)人:中国人民解放军国防科学技术大学
类型:发明
国别省市:湖南;43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1