一种基于社交关系的BitTorrent阻塞算法的制作方法

文档序号:12494265阅读:221来源:国知局

本发明涉及网络文件传输技术领域,更具体地,涉及一种基于社交关系的BitTorrent阻塞算法。



背景技术:

传统的数据下载大多是基于客户端/服务端(C/S)模型,但随着互联网的高速发展,用户规模急剧增加,这种单一的服务器上传带宽、处理能力成为性能瓶颈,除此之外还存在系统鲁棒性差和带宽资源浪费等问题.

在这种背景下,对等(peer-to-peer,简称P2P)网络迅速发展。P2P不像传统网络依赖于单一的中心服务器,而是让客户端同时肩负服务端和客户端的工作,客户端之间可以直接交换数据。

BitTorrent系统是P2P文件分发最常用的系统,在BT系统中存在节点只下载不上传,即所谓的“搭便车”情况,Tit-for-Tat阻塞算法为此而设计,下载集群中的节点每10秒运行一次TFT阻塞算法来选择对本节点所拥有资源块感兴趣且对本节点最近上传贡献最大的4个节点提供上传服务。但这种阻塞算法引入了新的问题,即“第一块资源获取难”和“节点僵持”。对于新加入的节点,由于之前没有为其他节点服务过,根据TFT算法,会存在其它节点不为该节点提供上传服务的情况;同时对于两个之前没有互动过的节点,双方也不会主动为对方提供上传服务。

在真实的社交关系中,同一个朋友圈的用户通常具有相似的身份、兴趣爱好以及类似的朋友交际。随着互联网对人们生活的渗入,有共同爱好的人可以在网上创建自己的兴趣圈。当他们需要某个兴趣相关资源时,往往会先向兴趣相投的朋友寻求资源;当拥有相关资源时,往往也会主动与他们分享。每一个P2P客户端一般都有一个真实的社会人在操控着,这些客户端可以看做是真实人类在网络世界中的一个映射。通过真实的社交关系建立的下载集群里的客户端,往往以更大的概率将服务提供给那些与自己有亲密关系的客户端,所以一定程度上避免了只下载不上传情况的发生;同时由于社交关系的引入,BT系统的“第一块资源获取难”和“节点僵持”的问题也得到了缓解。



技术实现要素:

本发明提供一种提升BT系统性能的基于社交关系的BitTorrent阻塞算法。

为了达到上述技术效果,本发明的技术方案如下:

一种基于社交关系的BitTorrent阻塞算法,包括以下步骤:

S1:Tracker服务器每隔10秒获取该下载集群内各个节点的最新朋友列表,并构造评分矩阵Mn*n

S2:对矩阵Mn*n做矩阵分解,用随机梯度下降法求出Mn*m矩阵,使得Mn*n=Wn*m*Qm*n成立,其中Mn*m是两个矩阵的乘积,其中m是隐因子的个数,Wn*m的每行表示节点对各个隐因子的喜欢程度,Qm*n的每一列表示节点在各个隐因子上的概率分布;

S3:对于某个上传节点,遍历其朋友列表和邻居节点,将对本节点所拥有资源块感兴趣的节点选出,组成候选列表;

S4:对于上传节点i和候选列表中的任意节点j,根据Wn*m计算出相似度S(i,j);

S5:根据j的活跃值、j与i的相似度以及j是否拥有i感兴趣的资源块,计算出i与j的亲密值;

S6:对候选列表中的节点按照计算出的亲密值从大到小排序,对前4个节点发送所需资源块,对其余候选节点阻塞。

进一步地,所述Tracker服务器收集下载节点信息,并提供各节点信息给下载节点,当新节点加入下载时,会先与Tracker服务器连接注册;Tracker服务器将其邻居节点信息发给该节点,使其能与邻居节点连接起来,相互传输数据。

进一步地,所述Tracker服务器获取各个节点的朋友列表、构造矩阵Mn*n及求出Wn*m并且每10秒计算一次。

进一步地,所述步骤S1中构造评分矩阵Mn*n的过程如下:

矩阵An*n表示节点朋友关系矩阵,其中Aij表示节点i与j的亲近程度,值越高表示越亲近,其中i,j表示节点ID;SUMi表示i的朋友列表中的朋友个数,若j在i的朋友列表中,则Aij=1/SUMi,否则Aij=0;

矩阵Bn*n表示三度朋友关系的朋友矩阵,其中

λ123=1且λ1≥λ2≥λ3≥0;

构造评分矩阵α为常量,且α+min(log(Bij))>0,即调整Mn*m中有值的各项,使之大于0,Mij表示节点i对节点j的评分,评分越高,表示节点间越亲密。

进一步地,使用随机梯度下降法计算Mn*n=Wn*m*Qm*n中的Wn*m,具体操作如下:

令其中表示矩阵Qm*n的第j列,是矩阵Wn*m第i行向量的转置,是一个列向量,对所有的Mij≠null,与Mij的值尽量接近,使得gap的值尽可能小;

引入加入权重函数有:

其中权重函数

max是常量;

使用随机梯度下降法计算中的Wn*m

Wn*m=[w0,w1,w2,…,wn-1]T

进一步地,计算节点i和节点j的相似度的公式如下:

S(i,j)=wi·wj

越相似的节点,其隐因子向量的夹角就越小,而根据向量夹角计算公式:

其中因为wi·wj是单位向量,所以|wi|和|wj|的值都是1,而且夹角大小与夹角的余弦值成反比,wi·wj的结果越大,节点i和j就越相似,反之亦然。

进一步地,节点间的亲密度计算公式如下:

f(i,j)=a*Active+b*S(i,j)+c*Interest,a+b+c=1

其中,Active表示候选列表中节点的活跃值,Interest表示是否拥有本节点感兴趣的资源的加权值,如果候选列表中的节点拥有上传节点感兴趣的资源则Interest=1,否则Interest=0,a、b、c为常数均大于0。

本发明中,计算出上传节点与候选列表中节点的亲密值,并将候选列表中的节点按照亲密值从大到小顺序排列,选出亲密值最大的前4个节点,给它们上传所需要的资源块,同时阻塞其它候选列表中的节点;考虑到存在新加入节点与其它节点的亲密度过低的情况,同原有的BitTorrent系统一致,每30秒会运行一次乐观阻塞算法,随机选择一个对上传节点资源感兴趣的邻居节点上传资源块。

与现有技术相比,本发明技术方案的有益效果是:

本发明通过将社交关系引入P2P系统中,同时深入挖掘节点间表示的社交关系。从而使节点更倾向于给相似度更高的节点上传资源,而相似度高的节点在以后的下载集群中互传文件的概率更高,从而大大减少了节点只下载不上传情况的发生。而且新提出的阻塞算法是根据节点的亲密度来决定给哪些节点上传资源块,从而大大降低了节点获取第一块资源难和节点僵持发生的概率,提升了BT系统的性能。

附图说明

图1为本发明算法流程图。

具体实施方式

附图仅用于示例性说明,不能理解为对本专利的限制;

为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;

对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。

下面结合附图和实施例对本发明的技术方案做进一步的说明。

实施例1

如图1所示,一种基于社交关系的BitTorrent阻塞算法,包括以下步骤:

S1:Tracker服务器每隔10秒获取该下载集群内各个节点的最新朋友列表,并构造评分矩阵Mn*n

S2:对矩阵Mn*n做矩阵分解,用随机梯度下降法求出Mn*m矩阵,使得Mn*n=Wn*m*Qm*n成立,其中Mn*m是两个矩阵的乘积,其中m是隐因子的个数,Wn*m的每行表示节点对各个隐因子的喜欢程度,Qm*n的每一列表示节点在各个隐因子上的概率分布;

S3:对于某个上传节点,遍历其朋友列表和邻居节点,将对本节点所拥有资源块感兴趣的节点选出,组成候选列表;

S4:对于上传节点i和候选列表中的任意节点j,根据Wn*m计算出相似度S(i,j);

S5:根据j的活跃值、j与i的相似度以及j是否拥有i感兴趣的资源块,计算出i与j的亲密值;

S6:对候选列表中的节点按照计算出的亲密值从大到小排序,对前4个节点发送所需资源块,对其余候选节点阻塞。

Tracker服务器收集下载节点信息,并提供各节点信息给下载节点,当新节点加入下载时,会先与Tracker服务器连接注册;Tracker服务器将其邻居节点信息发给该节点,使其能与邻居节点连接起来,相互传输数据。

Tracker服务器获取各个节点的朋友列表、构造矩阵Mn*n及求出Wn*m并且每10秒计算一次。

步骤S1中构造评分矩阵Mn*n的过程如下:

矩阵An*n表示节点朋友关系矩阵,其中Aij表示节点i与j的亲近程度,值越高表示越亲近,其中i,j表示节点ID;SUMi表示i的朋友列表中的朋友个数,若j在i的朋友列表中,则Aij=1/SUMi,否则Aij=0;

矩阵Bn*n表示三度朋友关系的朋友矩阵,其中λ123=1且λ1≥λ2≥λ3≥0;

构造评分矩阵α为常量,且α+min(log(Bij))>0,即调整Mn*m中有值的各项,使之大于0,Mij表示节点i对节点j的评分,评分越高,表示节点间越亲密。

使用随机梯度下降法计算Mn*n=Wn*m*Qm*n中的Wn*m,具体操作如下:

令其中表示矩阵Qm*n的第j列,是矩阵Wn*m第i行向量的转置,是一个列向量,对所有的Mij≠null,与Mij的值尽量接近,使得gap的值尽可能小;

引入加入权重函数有:

其中权重函数

max是常量;

使用随机梯度下降法计算中的Wn*m

Wn*m=[w0,w1,w2,…,wn-1]T

进一步地,计算节点i和节点j的相似度的公式如下:

S(i,j)=wi·wj

越相似的节点,其隐因子向量的夹角就越小,而根据向量夹角计算公式:

其中因为wi·wj是单位向量,所以|wi|和|wj|的值都是1,而且夹角大小与夹角的余弦值成反比,wi·wj的结果越大,节点i和j就越相似,反之亦然。

进一步地,节点间的亲密度计算公式如下:

f(i,j)=a*Active+b*S(i,j)+c*Interest,a+b+c=1

其中,Active表示候选列表中节点的活跃值,Interest表示是否拥有本节点感兴趣的资源的加权值,如果候选列表中的节点拥有上传节点感兴趣的资源则Interest=1,否则Interest=0,a、b、c为常数均大于0。

本发明中,计算出上传节点与候选列表中节点的亲密值,并将候选列表中的节点按照亲密值从大到小顺序排列,选出亲密值最大的前4个节点,给它们上传所需要的资源块,同时阻塞其它候选列表中的节点;考虑到存在新加入节点与其它节点的亲密度过低的情况,同原有的BitTorrent系统一致,每30秒会运行一次乐观阻塞算法,随机选择一个对上传节点资源感兴趣的邻居节点上传资源块。

本方法实通过将社交关系引入P2P系统中,同时深入挖掘节点间表示的社交关系。从而使节点更倾向于给相似度更高的节点上传资源,而相似度高的节点在以后的下载集群中互传文件的概率更高,从而大大减少了节点只下载不上传情况的发生。而且新提出的阻塞算法是根据节点的亲密度来决定给哪些节点上传资源块,从而大大降低了节点获取第一块资源难和节点僵持发生的概率,提升了BT系统的性能。

相同或相似的标号对应相同或相似的部件;

附图中描述位置关系的用于仅用于示例性说明,不能理解为对本专利的限制;

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1