首页> 中国专利> 一种基于增强型团队协作的P2P文件共享系统高效下载方法

一种基于增强型团队协作的P2P文件共享系统高效下载方法

摘要

本文涉及一种利用团队协作机制提高P2P下载软件下载效率的方法,该方法包括:将下载同一个文件的带宽相同的若干个P2P节点组成团队,累加同一个团队成员节点的上传流量,并将上传流量值赋给团队中上传流量最大的节点,团队成员节点上传信息时,将非阻塞给团队中上传流量最大的节点,使该节点优先获取下载资源,同时团队成员节点之间优先非阻塞,让优先获得下载资源的成员节点将下载资源共享给团队的其他成员节点。广泛可应用在现有P2P类下载软件中。

著录项

  • 公开/公告号CN102946441A

    专利类型发明专利

  • 公开/公告日2013-02-27

    原文格式PDF

  • 申请/专利权人 重庆邮电大学;

    申请/专利号CN201210519428.8

  • 发明设计人 唐红;申海岑;徐川;胡文坷;

    申请日2012-12-06

  • 分类号H04L29/08;

  • 代理机构重庆市恒信知识产权代理有限公司;

  • 代理人刘小红

  • 地址 400065 重庆市南岸区黄桷垭崇文路2号

  • 入库时间 2024-02-19 17:08:41

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-05-27

    授权

    授权

  • 2013-03-27

    实质审查的生效 IPC(主分类):H04L29/08 申请日:20121206

    实质审查的生效

  • 2013-02-27

    公开

    公开

说明书

技术领域

本发明涉及互联网中高效资源分发技术,尤其是针对提高P2P文件共享 系统下载效率的技术。

背景技术

近些年来,基于P2P的各种网络应用越来越广泛,其中影响最大的是视 频、图像等大数据量文件共享系统的应用,并由此产生了巨大的网络 流量。有效地提高P2P协议的文件传输效率,对于提高网络服务的性能 、降低网络的负载都具有极为重要的现实意义。

之前的研究表明,加强网络节点之间的合作性,充分调动所有节点的 上传带宽,可以有效地提高网络的下载效率,现有的加强P2P节点间合 作性的主要方法有:A. Ke Xu等提出的在P2P系统中部署帮助节点的 方法(“Improving BitTorrent Network’s Performance via  Deploying Helpers IEEE” 2008);B. Nikolaos Laoutaris提 出的动态分配上传带宽的方法(”Uplink Allocation Beyond Ch oke/Unchoke” 2008);C. Rafit Izhak-Ratzin提出的利用基于带 宽的激励机制的方法(“Collaboration in BitTorrent Systems ” NETWORKING 2009);D Marc Espelt Palau提出的小规模合 作团队的方法(”Improving BitTorrent Download Times Usin g Community Partners”,IEEE 2011)。A通过在P2P共享文件下载 系统中引入帮助节点,即高带宽、高连接、可控制的节点,来解决网 络中存在的下载效率低和因为提供资源的种子节点中途退出而产生共 享资源不完整的问题,帮助节点只需要下载共享资源中较少的一部分, 但是能够更好的优化系统性 能,研究发现多一些帮助节点比多一些种子更有效果,但是部署帮助 和本文提出的方法并不冲突。B动态调整上传带宽的方法,在选择非阻 塞节点时,P2P系统中的每个节点尽量在同一时刻获得非阻塞的节点数 最少,同时有偏向的选择那些上传带宽较高的节点,让更多下载节点 更快的获取一个完整的片段,解决因为节点才开始下载资源,没有可 上传的资源导致难以获得新的块,使得他们的上传带宽没有得到充分 利用的问题。但是这需要网络中的每一个节点都必须知道他对端节点 的带宽大小,在当前异构网络中可实现性比较低。C寻找相同带宽节点 的方法促进了激励机制的运行,促进了公平交换。将网络中带宽相似 的节点全部放到一个“群”里面,通过有偏向的选择促使同一个“群 ”的节点之间互相交互,减少不同的“群”之间的数据共享(即尽量 减少不同带宽节点之间交互),只是单纯的将不同带宽节点之间的数 据交互隔离开来,从而很容易导致高带宽节点更易于完成下载,而低 带宽节点下载速度依旧缓慢。D小规模合作团队的方法,通过将下载相 同文件的节点聚集到一个个的小“群”中,小“群”中的成员优先非 阻塞本群内成员中对自己上传数据较多的节点,同时优先下载所有“ 群”成员拥有度最少的资源片段。由于带宽差异的存在导致群内部成 员之间的下载速率差异很大,“群”内部低带宽节点很难以获取“群 ”成员带来的优势。可见在不牺牲系统其他节点利益的前提下,一种 易实现的、能够充分加强P2P下载节点合作性、提高P2P文件共享系统 下载效率的方法是迫切需求的。

发明内容

本发明提供一种基于增强型团队协作的P2P文件共享系统高效下载方法 ,用以解决目前P2P文件共享系统中由于节点缺少合作而下载效率低的 问题。

一种基于增强型团队协作的P2P文件共享系统高效下载方法,在P2P共 享文件下载时,将下载同一个文件的带宽相同的若干个peer(P2P节点 )组建作为一个团队“大节点”上传和下载共享资源,叠加同一个团 队成员节点的上传流量(即上传流量值)并把这个值赋给团队中上传 流量最大的节点,团队中其他节点在上传信息时,将非阻塞给团队中 上传流量最大的的节点,使这个节点更快的获取下载资源,同时团队 成员节点之间优先非阻塞,让优先获得下载资源的成员节点更快的将 资源共享给本团队的其他成员节点,使得团队内所有节点能够更有效 的利用带宽资源,由此提高BT的下载效率。

本发明的技术方案包括:

一种通过加强团队协作促进P2P网络分发效率的方法,其步骤包括:建 立团队。参与团队协作的节点向邻居节点发送加入团队协作请求关键 字的握手数据包,请求加入团队。主导节点处理收到的请求加入团队 协作请求关键字的握手信息,对同意加入团队的节点返回请求预通过 包。若请求节点在发送请求数据包之后预定时间内(如可取100秒,足 以让其他的主导节点返还通过信息)没有收到请求预通过包,表示网 络中没有可加入的团队,则节点将自己转化为一个主导节点,等待其 他节点加入。参与团队协作的每个节点都建立一个团队信息列表,存 储已知的各个团队成员的IP地址等信息,当然也包括本团队成员的IP 地址信息。

主导节点收到节点请求加入团队协作的握手信息后,估计请求节点的 下载带宽,若请求节点的下载带宽与团队内协作节点平均下载带宽相 同且团队内节点上限未满(如根据带宽和QOS要求,团队节点数上限可 设定为4,该数值的设置即保证团队的集聚力量,也要要考虑有足够的 能力,团队节点太多将无法照顾到团队中每一个节点),则向请求节 点发送请求预通过包,请求节点收到请求预通过包以后,发送正式加 入团队请求包并忽略其他主导节 点发送过来的请求预通过包,主导节点在收到请求节点发送的正式加 入团队请求包之后将请求节点的节点信息(包括带宽和节点IP地址信 息)加入到本团队信息列表中,并发送信息通知团队内节点,该请求 节点已经加入本团队中,同时主导节点发送一个请求通过包将本团队 列表发回请求节点,请求节点顺利加入团队中并开始数据下载。

数据下载过程中,同一个团队节点成员之间共享上传流量列表(上传 流量列表记录了网络中其他节点给本节点上传的数据流量),在节点 选择非阻塞节点时(如根据仿真实验获得,每10秒节点根据用户最近 10秒的上传流量重新统计提供上传的节点,使下载速度达到最大), 每个团队协作成员节点累加团队内所有成员上传流量列表中对应节点 的上传流量,得到团队实时上传流量列表vall,这样每一个团队成员就 具备了相同的上传流量列表,从而具备了“大节点“的整体性,然后 计算上传流量列表vall中的“大节点“的总上传流量,即团队成员上传 流量总和,用上传流量总和取代团队中上传流量最大的节点的上传流 量,即把上传流量总和赋给团队中上传流量最大的节点。根据TFT算法 (Tit-for-Tat,一报还一报,即谁给我下载的数据多,我才上传给他 数据),按上传流量列表vall的排序,节点上传流量,可以使下载节点 更快的获取下载资源,让团队中的一部分节点优先获得下载资源,同 时团队内部成员节点之间优先非阻塞,让先获得下载资源的节点迅速 将下载资源传送给团队中每一个成员节点,使得团队成员节点能够更 有效的利用他们的带宽资源,依此来提高的传输效率。

参与团队协作的节点在下载完成退出网络后邻居节点从团队信息列表 中删除这个节点,同时更新主导节点中团队数。如果退出节点为主导 节点,则主导节点随机选择一个本团的节点,发送left数据包,将其 转化为主导 节点。

本发明提出了一种通过加强团队协作促进P2P网络分发效率的方法,让 带宽相似的若干节点能够以一个“大节点”的形式出现在网络中,可 以最大限度的加强节P2P节点之间的合作性,同时为了不损害网络中其 他普通节点的下载效率,保证至少有一个普通节点和一个团队节点获 得非阻塞。本方法具有兼容团队协作节点和普通下载节点的特点,普 通节点在收到加入团队信息和握手信息的团队请求关键字信息时可以 直接忽略掉,不干扰普通P2P下载节点的运行机制,这些信息只需要占 用很少的字节、不会增加网络负载,具有可实现性。同时通过将低带 宽节点的上传流量叠加,可有效的促进低带宽节点的下载效率。该加 强P2P下载效率的方法可有效的促进节点下载效率的提高,广泛应用在 现有P2P类下载软件:BT、电驴、迅雷的下载过程中。

附图说明

图1 团队节点加入网络流程图;

图2 团队节点非阻塞流程图;

图3 团队请求数据包结构图。

具体实施方式

以下针对附图和具体实例对本发明的实施作进一步详细描述。如图1所 示为节点加入团队流程图。

A.节点加入团队,构建团队。

根据网络环境及规模设置团队节点数上限,每个团队协作节点建立一 个团队信息列表,存储包括本团队所有成员的IP地址信息在内的各个 团队成员的IP地址信息,该请求关键字只占用1个字节,不会增加网络 负载。同时非团队主导节点可以忽略这个请求关键字,其结构如图3所 示,数据包包括以 太网头部、IP头部、协议、目的IP、TCP头部、负载数据消息格式。

节点请求加入团队,节点在握手信息中添加请求加入团队关键字(te amq),并向邻居节点发送握手信息,请求加入团队。网络中主导节点 处理收到的请求加入团队协作请求关键字的握手信息,主导节点首先 通过带宽估计分析请求节点的下载带宽,若请求节点的下载带宽与团 队成员节点平均下载带宽的相同,且团队内节点数未达到节点上限数 ,则发送请求预通过包给请求节点同意节点加入该团队。其中可根据 公式,EB=请求节点连续k个时间的下载量/k,对节点j估计带宽EB。

节点发出下载请求,团队主导节点判断收到的握手信息是普通节点发 出的,还是团队协作节点发出的,如是普通节点发出,或本团队的团 队协作节点数已达到节点上限,则进行正常的普通下载。请求节点收 到请求预通过包以后,发送正式加入团队请求包给第一个发送预通过 包的主导节点并忽略之后其他主导节点发送过来的请求预通过包。主 导节点在收到请求节点发送的正式加入团队请求包之后,主导节点将 该请求节点的节点信息(包括带宽和节点IP地址信息)加入到团队信 息列表中,发送一个请求通过包及团队列表返回请求节点,同时向团 队信息列表中所有团队节点及邻居节点发送“加入团队信息”,团队 成员节点更新团队信息列表,其中,加入团队信息主要包括加入团队 成员的IP地址信息。若请求节点在预定时间间隔内(根据仿真实验, 最优可为10个非阻塞时间间隔,即100秒)没有收到请求预通过包,则 请求节点将自己转化为一个主导节点,等待其他节点加入。请求节点 收到请求通过包后加入相应的团队并开始作为一个团队成员,参与数 据下载。

较佳的,请求通过包也可以转化为一个请求通过关键字,在节点发送 握手信息互换位图列表时,加载在邻居节点列表返回的位图列表中, 只需要一 个字节的空间。通过对邻居节点带宽估计,防止节点出现误报,假报 的情况。在节点加入团队之前,主导节点优先给予请求节点以普通节 点的形式下载k个非阻塞时间间隔(一般取k=3个非阻塞时间,可以有 效的估计出请求节点的带宽),便于让主导节点统计他的带宽。

B.团队节点下载数据阶段。

团队节点选择非阻塞节点。团队中某一成员节点下载数据时,从本团 队成员和普通节点中分别抽取一个对本节点上传数据量最大的节点优 先加入非阻塞队列,然后再将团队中其他节点和邻居列表里的其他节 点按上传流量排序,可利用TFT算法,寻找上传流量最大的剩余非阻塞 节点(即上传数据给本团队节点最多的节点),并给与其非阻塞。同 时团队节点之间通过共享上传流量列表以保证团队成员非阻塞节点的 一致性。

如图2所示,为了不损害网络中其他普通节点的下载效率,同时团队节 点与网络中其他节点的交互是不可或缺的,保证至少有一个非团队节 点和一个团队节点获得非阻塞。同时为了保证团队成员非阻塞节点的 一致性,在一个团队中的协作节点按固定时间间隔(如可设为每10秒 一次)相互发送各自的上传流量列表(团队成员列表和上传流量列表 很小,数据流量几乎不会增加)。团队成员节点在确定非阻塞时,首 先将团队成员的上传流量列表中对应节点的上传流量累加,得到一个 团队实时上传流量列表vall,这样每个团队成员就具备了相同的上传流 量列表,从而本团队具备了“大节点“的整体性,然后计算vall中每一 个“大节点“的总上传流量,即团队成员上传流量总和,并用上传流 量总和取代团队中上传流量最大的节点的实时上传流量,并将剩余团 队成员的实时上传流量置0,然后节点通过排序流量列表各节点的实时 上传流量来决定将获得非阻塞的邻居节点,必须保证至少有一个本团 队 节点和一个普通节点获得非阻塞。

建立任一节点i的上传流量列表:,其中,表示节点i中记录的第n个 邻居节点的实时上传流量(其中,n为上传流量列表中邻居节点数)。

如网络中的所有节点的集合为N,定义节点i所在团队节点集为gi={nt1,nt2,…,ntlast},,对于每一个节点ntj∈gi其对应的实时上传流量列表分 别为Vtj。节点i进行团队协作下载选择非阻塞节点时,首先,将团队成 员共享的上传流量列表Vt1,Vt2,…,Vtlast中对应节点的实时上传流量累加得 一个新的上传流量列表vall

vall={vallk|vallk=Σj=1lastvtjk,1kn}

假设网络中节点i的邻居节点集fn={n1,n2,…,nteamnum}为另一个团队的所有 节点成员,对应在节点i上传流量列表vall中的上传流量为:,节点i找 到节点集fn对应的上传流量中最大值:

vallN=max{vall1,vall2,...,vallteamnum}

假设其对应的节点nx∈fn (1≤x≤teamnum),然后置节点nx的实时上 传流量为

vallx=Σj=1teamnumvallj,并且置:vall1=vall2=...=vallx-1=vallx+1=0

其中,teamnum为节点集合fn中节点数,last为团队中节点数。

这样,能够使得节点nx优先获得非阻塞,当节点nx下载到一个piece时 ,他们的团队成员可以从nx那里优先获取这个piece,这样充分利用了 团队节点的带宽资源。

团队节点在下载完成退出网络,将对网络中每个邻居节点发送退出数 据包,团队协作友邻节点从团队信息列表中删除这个节点。如果退出 节点为主 导节点,主导节点则随机选择一个本团的节点,假设为N,通过发送l eft数据包告诉本团队所有成员,节点N将转化为本团队主导节点。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号