法律状态公告日
法律状态信息
法律状态
2018-01-26
授权
授权
2014-02-26
实质审查的生效 IPC(主分类):H04L29/08 申请日:20131012
实质审查的生效
2014-01-22
公开
公开
技术领域
本发明涉及计算机P2P网络技术领域,具体地说,本发明涉及一种BT 网络中热门种子文件获取方法。
背景技术
P2P技术为网络用户提供的解决的方案能让互联网用户之间便捷地进 行数据的共享。BitTorrent协议便是一种在数据共享方面比较成熟的而且 被网络用户广泛使用的网络协议。在BitTorrent网络(下文简称BT网络) 中,每个客户都可以与BT网络中其他客户建立连接并相互共享自己拥有 的数据资源。网络中客户端的数量巨大,共享资源的数量则更加巨大,所 以在BT网络中共享着大量的各种资源的信息,而人们往往对其中较为热 门的资源更感兴趣,因此存在从巨大的资源信息中找出其中较为热门的资 源的需求。
另一方面,BitTorrent元数据文件,以.torrent为文件扩展名,也称为 BT种子文件、种子、BT种子、torrent文件等,下文中统称为种子文件。 种子文件中包含Tracker服务器列表信息、节点列表信息和资源文件信息 三部分,BT网络共享资源文件分片验证信息和Tracker信息的重要载体, 只要获取了BT网络中热门的种子文件,就能通过这些种子文件获取对应 的热门资源。
现有技术中,BT论坛网站在发布种子文件的同时,通常会对种子文 件的热度进行排序。然而,他们通常是用本论坛的点击率或访问量作为种 子文件热度的排序依据。这种统计较为片面,不能反映整个BT网络的真 实情况。
因此,当前迫切需要一种能够在BT网络的海量信息中,准确地获取 其中热门的BT种子文件的解决方案。
发明内容
本发明的任务是一种能够在BT网络的海量信息中,准确地获取其中 热门的BT种子文件的解决方案。
为实现上述发明目的,本发明提供了一种BT网络中热门种子文件获 取方法,包括下列步骤:
1)构造虚拟BT客户端,所述虚拟BT客户端的ID均匀分布在BT 网络ID逻辑空间;
2)各虚拟BT客户端监听BT网络中的get_peers消息,统计所收到 的对应于每个infohash的get_peer消息的数目;
3)统计所有虚拟BT客户端所接收到的对应于每个infohash的get_peer 消息的数目,并根据get_peer消息的数目确定相应的infohash是否为热门 infohash。
其中,所述步骤1)中,所述虚拟BT客户端的个数不少于30。
其中,所述步骤1)中,所述虚拟BT客户端的个数为32。
其中,所述步骤1)还包括:先把BT网络ID逻辑空间划分为多个区 块,然后在每个区块中随机抽取一个数值作为虚拟BT客户端的ID。
其中,还包括步骤4):基于热门infohash获取相应的热门BT种子文 件。
其中,所述步骤4)包括下列子步骤:
41)对每个热门infohash,生成相应的BT种子文件下载任务,并将 任务分发给所述虚拟BT客户端;
42)虚拟BT客户端收到下发的下载任务后,进行BT种子文件的下 载;
43)对下载完成的BT种子文件经行完整性检查及正确性验证;
44)对虚拟客户端验证正确的BT种子文件进行文件存储。
其中,所述步骤42)中,所述虚拟BT客户端先将热门infohash转换 为BT网络磁力下载链接,然后通过BT网络节点之间的种子交换消息获 取BT种子文件。
其中,步骤42)包括下列子步骤:
421)提取一个热门infohash,将其转化为BT网络中的磁力链接;
422)采用磁力链接在BT虚拟客户端上通过网络节点查询消息从BT 网络中查找BT网络中参与该infohash对应资源下载的共享网络节点集合;
423)从共享网络节点集合中的节点选取一个BT网络节点,所述虚拟 客户端通过BT协议消息与该节点进行BT握手;
424)通过握手消息交互得知连接的BT客户端是否支持BT种子文件 的交换,当连接的BT客户端支持BT种子文件交换协议时,执行步骤426) 否则,关闭与该BT客户端的连接,执行步骤425);
425)检查共享网络节点集合中是否还有未连接过的网络节点,有则 执行步骤423),没有则执行步骤427);
426)通过BT种子文件交换扩展消息获取BT网络中进行共享的BT 种子文件,成功下载BT种子文件后,关闭与该共享网络节点的BT连接, 执行步骤427),如果未成功下载BT种子文件,则执行步骤425);
427)如果还有未处理的热门Infohash,执行步骤421),否则退出。
与现有技术相比,本发明具有下列技术效果:
1、本发明能够全面准确地获取整个BT网络范围内的热门种子文件。
2、本发明有助于运营商对热门种子文件进行下载节点调整,从而降 低网络流量。
3、本发明有助于BT客户端开发商根据对热门种子文件进行下载优 化,从而降低网络流量,提升用户对热门资源的下载体验。
附图说明
图1示出了本发明一个实施例的BT网络中热门种子文件获取方法的 流程图;
图2示出了本发明另一个实施例中基于热门BT种子文件的infohash 获取相应的热门BT种子文件的流程图。
具体实施方式
本发明提出了一种BT网络中热门种子文件获取方法,它通过BT-DHT (BitTorrent Distributed Hash Table,即BT网络分布式哈希表),在整个 BT网络范围内全面准确地获取热门种子文件。为更清楚介绍基于BT-DHT 的BT网络中热门种子文件获取方法,首先简要介绍BT-DHT。
BT-DHT是一种分布式存储方法在BT覆盖网络上的应用。其主要工 作原理为:在不需要服务器的情况下,每个客户端负责一个小范围的路由, 并存储一小部分路由数据,从而实现整个BT网络中BT-DHT的寻址和存 储。通常BT客户端同时通过BT-DHT和连接Tracker服务器获取当前BT 网络中的参与下载的节点信息,也就是说,在完全不连上Tracker服务器 的情况下,BT客户端仍然可以在BT网络中寻找下载同一BT网络共享文 件的其他BT客户端用户。在BT-DHT中,采用了四种消息进行网络节点 的查询,四种消息分别是ping、find_node、get_peers和announce_peer。 本发明主要利用的是get_peers消息。在BT-DHT使用的消息通信协议中, get_peers消息中携带一个BT种子文件infohash以及发出请求节点的节点 ID。如果那个被请求的节点所存储的路由信息中有匹配该infohash的节点, 这些匹配的节点将被返回给请求节点,从而实现种子文件的查询。
下面,结合附图和具体实施例对本发明做进一步地描述。
依据本发明的一个实施例,图1示出了一种BT网络中热门种子文件 获取方法的流程,包括下列步骤:
步骤1:构造n个虚拟BT客户端,这n个虚拟BT客户端的ID均匀 分布在BT网络ID逻辑空间。
BT-DHT网络中的节点有一个唯一的160位ID,节点ID通常在第一次 启动时根据该节点的IP地址和端口号用SHA1算法进行散列生成。n个虚拟 BT客户端的ID均匀分布在BT网络ID逻辑空间(即n个虚拟BT客户端的ID 均匀分布在2160的ID逻辑空间中)。具体实现上,可以先把2160的ID逻辑空 间划分为若干个(例如n个)子空间,然后在每个子空间随机选取ID(当 子空间数目为n时,每个子空间随机选取一个ID),虚拟BT客户端的ID的均 匀分布可以使得信息采集范围更好地覆盖全网。理论上说,n的数目越多, 所采集的信息越全面。进一步地,考虑到硬件开销的问题,在一个优选实 施例中,虚拟BT客户端的数目n取32。发明人深入研究发现,当虚拟节点 数递增到30时,所有虚拟节点发现的BT种子文件的总数据量趋于稳定状 态。又因逻辑空间为2的指数空间,ID数取为2的指数方便ID的选取,因 此在优选实施例中虚拟BT客户端的数目n取32。这样用较小的代价,即可 全面地探测到整个BT网络中的热门种子文件。
步骤2:启动运行所构造的虚拟BT客户端,使其加入BT网络。具体 包括:初始化包括虚拟BT客户端自动扩散自己的节点信息以使该虚拟BT 客户端加入BT网络。通过BT-DHT消息获取BT网络中的节点,初始化 自己的路由表信息,向外面发布自己自动扩散自己的节点信息以使BT网 络中的节点向本节点发送get_peers消息。
步骤3:各虚拟BT客户端监听BT-DHT网络中的get_peers消息,解 析get_peers消息并提取出其中携带的BT种子文件的infohash,并记录收 到的携带该infohash的get_peer消息的次数。
步骤4:定期统计所有虚拟BT客户端所接收到的对应于每个infohash 的get_peer消息的次数,根据接收到get_peer消息的次数确定相应的 infohash为热门infohash并记录这些热门infohash。这些热门infohash可以 记录在一个热门infohash集合中。理论上说,统计时间越长,收到的消息 越多,但是通过BT-DHT路由节点收集实验,随着统计时间的增加到约5 小时之后,BT网络中的路由表节点数达到稳定状态。因此,统计周期可 以是5小时。当然,这个统计周期本领域技术人员也可以根据实际需要灵 活调整。
需要说明的是,虽然有些BT客户端可能会重复发送多个携带同一个 infohash的get_peer消息,但是对于整个BT网络来说,这种重复发送对 种子文件热度的影响不大。在实际的BT网络中,热门种子文件的get_peer 消息数往往显著多于非热门种子文件(通常超过数倍),因此某些BT客户 端重复发送携带同一个infohash的get_peer消息对热门infohash集合的影 响可以忽略。利用虚拟BT客户端直接统计所接收到携带同一infohash的 get_peer消息个数,即可获得较为准确的种子文件热度信息,同时还能够 保持一个较低的开销。
依据本发明的另一个实施例,BT网络中热门种子文件获取方法还可 以包括步骤5:基于热门BT种子文件的infohash获取相应的热门BT种子 文件。在一个优选实施例中,步骤5具体包括下列子步骤,如图2所示:
步骤51:首先对每个热门的BT种子文件的infohash,生成BT种子 文件下载任务(例如由总服务器生成BT种子文件下载任务),并将任务分 发给BT网络中的虚拟BT客户端节点。
步骤52:虚拟BT客户端收到下发的下载任务后,进行BT种子文件 的下载。下载时,先将热门BT种子文件的infohash转换为BT网络的磁 力链接(Magnet links),然后通过BT网络节点之间的种子交换消息获取 BT种子文件。
步骤53:对下载完成的BT种子文件进行完整性检查及正确性验证。
步骤54:验证正确的BT种子文件发送到总服务器,总服务器对BT 种子文件进行文件存储;
步骤55:判断是否满足退出条件,若满足,退出结束;若不满足,则 继续进行后续的BT种子文件下载任务。
进一步地,在一个更优选的实施例中,步骤52包括下列子步骤:
步骤521:提取热门infohash集合的一个infohash,将其转化为BT网 络中的磁力链接。
步骤522:采用磁力链接在BT虚拟客户端上通过网络节点查询消息 从BT网络中查找BT网络中参与该infohash对应资源下载的共享网络节 点集合;
步骤523:从共享网络节点集合中的节点选取一个BT网络节点,虚 拟客户端通过BT协议消息与该节点进行BT握手。
步骤524:通过握手消息交互得知连接的BT客户端是否支持BT种子 文件的交换,当连接的BT客户端支持BT种子文件交换协议时,执行步 骤526,否则,关闭与该BT客户端的连接,执行步骤525。
步骤525:检查共享网络节点集合中是否还有未连接过的网络节点, 有则执行步骤523,没有则执行步骤527。
步骤526:通过BT种子文件交换扩展消息获取BT网络中进行共享的 的BT种子文件,成功下载BT种子文件后,关闭与该共享网络节点的BT 连接,执行步骤527,如果未成功下载BT种子文件,则执行步骤525。
步骤527:如果热门infohash集合还有未处理的热门Infohash,执行 步骤521,否则退出。
上述实施例通过启动大量的虚拟BT客户端加入BT网络中,通过随 机均匀选择节点的ID使得这些节点均匀分布在ID逻辑空间中。接受 BT-DHT网络中的节点查找get_peers消息,解析消息中的BT种子文件的 infohash,统计对收到的get_peers消息次数较高的infohash进行收集,从 而全面准确地获得整个BT网络范围内的热门种子文件。全面准确地获得 整个BT网络范围内的热门种子文件,有助于互联网服务提供商运营商针、 BT客户端对BT网络热门种子文件进行网络数据传输优化,以从而降低跨 网之间传输的网络流量,。同时BT客户端开发商应用下载策略提升BT客 户端用户对热门资源的下载体验。例如,目前P2P流量占网络流量的绝大 部分,运营商在准确掌握整个BT网络范围内的热门种子文件后,可以在 其各个自治域中分别缓存热门种子文件所对应的资源,从而大幅降低域间 网络流量,避免拥塞,进而提升用户体验。BT客户端也可以针对热门种 子文件进行优化,提高热门种子文件的下载优先级,这样,在某一客户端 同时下载多个资源时,种子文件优先级高的资源优先下载,由于其热门度 高,可以非常快速地完成下载,有利于提高用户体验。
最后应说明的是,以上实施例仅用以描述本发明的技术方案而不是对 本技术方法进行限制,本发明在应用上可以延伸为其它的修改、变化、应 用和实施例,并且因此认为所有这样的修改、变化、应用、实施例都在本 发明的精神和教导范围内。
机译: 将一种或多种成分施用于多种种子的方法,种子处理操作期间的湿度和温度控制方法,种子处理产品的开发方法,具有一种或多种种子处理产品的生产工厂中的种子处理方法,环境受控种子处理系统,以在生产场所或测试场所处理种子,在种子生产设施中用于将处理过的种子输送到种子的方法,该方法用于将种子处理产品应用于生产工厂中的多种玉米种子的方法,作物产量增强方法,种子生产设施中用于处理生产者的种子的环境控制种子处理系统以及在预定环境条件下评估处理产品种子性能的方法
机译: 随机变量生成方法,例如网络游戏领域,涉及获取摄影图像,从图像中获取要压缩的数据文件,以及压缩文件以获得随机变量
机译: 文件共享网络系统,用于文件共享网络系统的文件传输的数据结构,用于文件共享网络系统的文件传输方法,文件公开计算机,缓存计算机,文件获取计算机和计算机程序