CN101808079A - 一种确定直接邻居节点的方法、服务器和客户端 - Google Patents
一种确定直接邻居节点的方法、服务器和客户端 Download PDFInfo
- Publication number
- CN101808079A CN101808079A CN 200910105428 CN200910105428A CN101808079A CN 101808079 A CN101808079 A CN 101808079A CN 200910105428 CN200910105428 CN 200910105428 CN 200910105428 A CN200910105428 A CN 200910105428A CN 101808079 A CN101808079 A CN 101808079A
- Authority
- CN
- China
- Prior art keywords
- neighbor node
- immediate neighbor
- client
- bandwidth
- content distribution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种确定直接邻居节点的方法服务器和客户端,包括:接收客户端发送的内容分发能力消息,所述内容分发能力消息中包含客户端当前的内容分发能力;根据接收到的客户端的当前的内容分发能力确定直接邻居节点。该方法通过利用直接邻居节点对数据内容的内容分发能力确定直接邻居节点,使得作为直接邻居节点的客户端可以很好的分发获取到的数据内容。
Description
技术领域
本发明涉及通信领域,具体涉及一种确定直接邻居节点的方法、服务器和客户端。
背景技术
在点对点P2P(Peer to Peer)P2P中,服务器和客户端都可以作为网络中的节点,每个节点既可以从其他节点得到数据,也可以向其他节点提供数据。这样庞大的客户端上传能力的资源被利用起来,数据分发传输的效率得到了提高。
在P2P网络中通常设置有服务器,以存储需要分发或提供下载的数据内容。因此,即使拥有该数据内容的客户端都下线,服务器也能够为其他客户端提供该数据内容的下载,因此提供了良好的服务质量(Quality of Service,QoS)保证。由于P2P网络中的所有客户端都可以请求从服务器上下载数据内容,也可以从拥有数据内容的其它客户端下载数据内容,并能同时为其它客户端提供数据内容。在本领域中,可以将从服务器下载数据内容的客户端称为直接邻居节点,将从拥有数据内容的其它客户端下载数据内容的客户端称为非直接邻居节点。在现有的P2P网络中,请求从服务器获取数据内容的客户端都是随机的,也就是任何客户端都可以作为直接邻居节点。
现有技术中,通过随机方法确定直接邻居节点,但通过该方法确定的直接邻居节点,当该确定的直接邻居节点的数据内容分发能力较弱时,可能影响P2P网络中数据内容的分发。
发明内容
本发明实施例提供一种确定直接邻居节点的方法、服务器和客户端,可以保证确定的直接邻居节点具有较强的数据内容分发能力,提高网络中数据内容分发能力。
本发明实施例提供一种确定直接邻居节点的方法,包括:接收客户端发送的内容分发能力消息,所述内容分发能力消息中包含客户端当前的内容分发能力;根据接收到的客户端的当前的内容分发能力确定直接邻居节点。
此外,本发明实施例还提供一种服务器,包括:接收模块,用于接收客户端发送的内容分发能力消息,所述内容分发能力消息中包含客户端当前的内容分发能力;确定模块,用于根据接收到的客户端的当前的内容分发能力确定直接邻居节点。
此外,本发明实施例还提供一种客户端,包括获取模块,用于获取对数据内容的内容分发能力;发送模块,用于发送内容分发能力消息,所述内容分发能力消息中包含客户端当前的内容分发能力;以便于服务器根据所述客户端当前的内容分发能力确定直接邻居节点。
本发明实施例通过利用直接邻居节点对数据内容的内容分发能力确定直接邻居节点,可以保证确定的直接邻居节点具有较强的数据内容分发能力,提高网络中数据内容分发能力。
附图说明
图1为本发明一实施例的确定直接邻居节点的方法的流程图;
图2为本发明另一实施例的确定直接邻居节点的方法的流程图;
图3为本发明另一实施例的调整直接邻居节点的数量的方法流程图;
图4为本发明另一实施例服务器的结构示意图;
图5为本发明另一实施例的客户端的结构示意图;
图6为本发明实施例提供的确定直接邻居节点的系统示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
P2P网络中获取数据内容的客户端的内容分发能力消息,例如作为直接邻居节点的客户端和作为非直接邻居节点的客户端,都可以向服务器发送各自的内容分发能力消息,例如可以按一定的时间周期向服务器发送各自的内容分发能力消息。其中,作为直接邻居节点的客户端可以从服务器下载数据内容,而作为非直接邻居节点的客户端则从其它客户端获取数据内容,其中,该其它客户端既可以是直接邻居节点,也可以是另一个非直接邻居节点。为使得作为非直接邻居节点的客户端能够更方便的从其它客户端获取数据内容,作为直接邻居节点的客户端需要将从服务器获取的数据内容分发给其它客户端。
例如,在本发明的一个实施例中,服务器为每个数据内容设置可以支持的直接邻居节点数量阈值,对某一数据内容,当没有任何客户端已获取该数据内容时,即该数据内容仅存储于服务器,最初请求获取该数据内容的客户端在获取该数据内容后就可以默认作为直接邻居节点。例如,当某个客户端需要获取该数据内容时,该客户端向服务器发送获取请求以及内容分发能力消息并从服务器获取该数据内容,该客户端就作为直接邻居节点。当有另一个客户端也需要获取该数据内容,该另一客户端也可以从服务器获取该数据内容,即该另一客户端也作为直接邻居节点,直到作为直接邻居节点的客户端的数量达到服务器为该数据内容设置的可以支持的直接邻居节点数量阈值。
但实际上,本发明实施例提供的一种确定直接邻居节点的技术方案,不仅可以应用于最初的场景,还可以应用于已有直接邻居节点的场景,具体可以如下所述。
本发明实施例提供了确定直接邻居节点的方法,如附图1所示,可以如下所述。
步骤101、接收客户端发送的内容分发能力消息;所述内容分发能力消息中包含客户端当前的内容分发能力,所述内容分发能力为客户端对数据内容的上传速率和/或客户端对数据内容的内容传输放大系数;
步骤102、根据客户端对数据内容的上传速率和/或客户端对数据内容的内容传输放大系数确定直接邻居节点。
例如,服务器为每个数据内容设置可以支持的直接邻居节点数量阈值,在满足直接邻居节点数量阈值的条件下,依据内容分发能力从大到小的顺序将相应数量的客户端确定为直接邻居节点。
如果该内容分发能力为客户端对该数据内容的上传速率则服务器根据客户端对该数据内容的上传速率的大小,在满足直接邻居节点数量阈值的条件下,依据数据内容上传速率从大到小的顺序将相应数量的客户端确定为直接邻居节点。或者,还可以根据数据内容上传速率进行直接邻居节点的更新,或根据数据内容上传速率和对数据内容的内容传输放大系数进行直接邻居节点的更新。
由以上描述可知,本发明实施例通过利用对数据内容的内容分发能力确定直接邻居节点,使得作为直接邻居节点的客户端可以很好的分发获取到的数据内容。
如图2所示,为本发明实施例提供的一种选择直接邻居节点方法的具体应用的流程图。在本实施例中,客户端预先获取存储有数据内容的服务器的地址和其它客户端的地址。其中,从服务器下载数据内容的客户端为直接邻居节点的客户端,从其它客户端下载数据内容的客户端为非直接邻居节点的客户端,已有客户端作为直接邻居节点。
步骤201、接收客户端发送的内容分发能力消息。
本步骤当中,服务器既可以接收作为直接邻居节点的客户端的内容分发能力消息,也可以接收作为非直接邻居节点的客户端的内容分发能力消息。
作为非直接邻居节点的客户端,如果已从其它客户端获取了数据内容,例如已从作为直接邻居节点的客户端i获取了数据内容,则作为非直接邻居节点的客户端分别向服务器发送内容分发能力消息,可以分别包含相应客户端对数据内容的上传速率
步骤202、接收到客户端发送的内容分发能力消息后,根据接收到的客户端的当前的内容分发能力确定直接邻居节点。
例如,服务器为每个数据内容设有可以支持的直接邻居节点数量阈值。服务器获取可以支持的直接邻居节点数量阈值后,根据各客户端对该数据内容的数据内容上传速率的大小,在满足直接邻居节点数量阈值的条件下,依据数据内容上传速率从大到小的顺序将相应数量的客户端确定为直接邻居节点。
如下以客户端i、A、B、C、D为例进行说明,服务器为每个数据内容设有可以支持的直接邻居节点数量阈值以及服务器为每个数据内容分配供客户端下载的带宽。可以支持的直接邻居节点数量阈值可以是服务器对每个数据内容支持的直接邻居节点的最大数量,也可以是任意值。
例如,服务器获取数据内容可以支持的直接邻居节点数量阈值为3,且在其保存的客户端记录中已记录客户端i为直接邻居节点。服务器收到客户端A、B、C、D发送的内容分发能力消息后,获取其中的数据内容上传速率。其中,客户端A的数据内容上传速率为1Mb/s,客户端B的数据内容上传速率为500Kb/s,客户端C的数据内容上传速率为300Kb/s,客户端D的数据内容上传速率为100Kb/s。由于客户端i已经是该数据内容的直接邻居节点,服务器在直接邻居节点数量阈值为3的条件下,依据数据内容上传速率从大到小的顺序进一步确定2个客户端,即客户端A、B为直接邻居节点。在保存的客户端记录中将客户端A、B加上直接邻居节点的标记。
如果服务器在其保存的客户端记录中没有记录任何客户端作为直接邻居节点,则服务器在收到客户端i、A、B、C、D发送的内容分发能力消息后,在直接邻居节点数量阈值为3的条件下,依据数据内容上传速率从大到小的顺序确定3个客户端为直接邻居节点。
此外,为保证总能将内容分发能力较强的客户端确定为直接邻居节点,本发明的另一实施例中,服务器还可以进行直接邻居节点的更新,即:可以将内容分发能力较强的非直接邻居节点确定为直接邻居节点,并可以根据内容分发能力将内容分发能力较弱的直接邻居节点确定为非直接邻居节点。例如,以客户端i、j、k、A、B、C、D为例进行说明,服务器设置数据内容可以支持的直接邻居节点数量阈值为3,且在其保存的客户端记录中已记录客户端i、j、k为直接邻居节点。服务器收到客户端i、j、k、A、B、C、D的内容分发能力消息后,获取数据内容可以支持的直接邻居节点数量阈值为3。根据内容分发能力消息中的上传速率确定客户端i、j、k、A、B、C、D的内容分发能力依次为客户端i>客户端j>客户端A>客户端k>客户端B>客户端C>客户端D,则服务器可以将客户端K确定为非直接邻居节点,而将客户端A确定为直接邻居节点,服务器在保存的客户端记录中,相应更新客户端的直接邻居节点标记。根据上述对直接邻居节点的更新,可以保证内容分发能力较强的客户端作为直接邻居节点。
根据本发明的另一实施例,在进行直接邻居节点的更新的过程中,服务器还可以根据设置的策略进行直接邻居节点的更新。例如,设置的策略可以是每次需要更新至少一个直接邻居节点。
例如,服务器中设置有将直接邻居节点确定为非直接邻居节点的更新值,则服务器获取将直接邻居节点确定为非直接邻居节点的更新值后,可以根据该更新值以及根据内容分发能力的从弱到强的顺序,例如根据上传速率或内容传输放大系数从小到大的顺序,将相应更新值数量的直接邻居节点确定为非直接邻居节点,并根据内容分发能力的从强到弱的顺利,例如根据上传速率或内容传输放大系数从大到小的顺序,将相应更新值数量的非直接邻居节点客户端确定为直接邻居节点。
例如,以客户端i、j、k、A、B、C、D为例进行说明,服务器设置数据内容可以支持的直接邻居节点数量阈值为3,且在其保存的客户端记录中已记录客户端i、j、k为直接邻居节点。
客户端i为作为直接邻居节点,已从服务器下载数据内容,客户端i发送的内容分发能力消息可以包含客户端i当前对数据内容的传输放大系数Ampi和/或数据内容的上传速率该内容传输放大系数可以由客户端i通过下式得到:
其中,表示客户端i对数据内容的上传速率,即对其他客户端的服务能力,客户端i可以通过如下公式计算获取该上传速率;
Bandwidthcs-peer,表示客户端i从服务器上下载数据内容的下载速率,客户端i可以通过如下公式计算获取该下载速率;
Bandwidthcs-peer=从服务器获取的数据内容总量/获取时间
Ampi,用于表示客户端i当前对数据内容在P2P网络中的扩散能力,由于下载同一数据内容的下载速率相同,因此在同等的Bandwidthcs-peer的下载速率情况下,客户端i的Ampi值越大,则客户端i向其它客户端提供的上传速率就越高,它的数据内容扩散能力就越大。
例如,服务器设置该数据内容每次需要更新直接邻居节点的更新值为1。作为直接邻居节点的客户端i、j、k对数据内容的传输放大系数假设依次为:Ampi>Ampj>Ampk;假设客户端A对数据内容上传速率为1Mb/s,客户端B对数据内容上传速率为500Kb/s,客户端C对文数据内容上传速率为300Kb/s,客户端D对数据内容上传速率为100Kb/s。则服务器则可以根据预设的策略(即更新值为1)将客户端K淘汰并将客户端A确定为直接邻居节点。
或者,为保证内容分发能力较强的客户端作为直接邻居节点,服务器还可以比较客户端K与客户端A的上传速率,如果客户端K的上传速率小于客户端A,则将客户端K淘汰并将客户端A确定为直接邻居节点;如果客户端K的上传速率大于客户端A,则可以保持现状,即不将客户端K淘汰。
综上所述,本发明实施例可以对直接邻居节点进行更新,以保证内容分发能力较强的客户端总是作为直接邻居节点,并确定上传速率最大的非直接邻居节点作为直接邻居节点。
此外,服务器还可以对直接邻居节点的确定和更新设定周期,周期可以根据一定的时间长度确定,例如1分钟,2分钟,还可以根据接收到内容分发能力消息的间隔的平均时间确定。通过上述直接邻居节点的更新,可以避免内容分发能力不稳定的客户端在分发能力下降后仍作为直接邻居节点以及某些非直接邻居节点在分发能力提高却不能作为直接邻居节点的缺陷,从而保证数据内容分发的相对稳定。此外,设定一定的调整周期,可以避免一些上传能力稳定的客户端刚成为直接邻居节点又被淘汰,保证直接邻居节点的相对稳定。
服务器可以存储有P2P网络中获取数据内容的所有客户端的记录,例如通过记录信息表进行记录,服务器可以在记录中将被确定为直接邻居节点的客户端进行标识,例如加上直接邻居节点的标识,例如,在记录中设置对应客户端标识的直接邻居节点标志位,当标志位置1时,表示该客户端为直接邻居节点;当标志位置0时表示该客户端为非直接邻居节点,反之亦然。上述记录中还可以记录客户端的内容传输放大系数Ampi以及客户端对数据内容的上传速率本发明实施例提供了一种客户端记录的存储方式,如表一所示:
客户端标识 | 上传速率 | 内容传输放大系数 | 直接邻居节点标志 |
10.168.1.0 | 20K/s | N/A | 0 |
10.168.1.2 | 25k/s | 5 | 1 |
... | ... | ... | ... |
表一
其中客户端标识可以是客户端的IP地址,也可以是客户端的名称,URL等,上传速率为本客户端为其他客户端提供数据内容的速率,直接邻居节点标志可以是BOOL型的数据,例如表一中的1表示其所对应的客户端10.168.1.2为直接邻居节点,0表示其所对应的客户端10.168.1.0为非直接邻居节点。记录表中也可以包括直接邻居节点具体的内容传输放大系数的值,例如表一中客户端10.168.1.2所对应的内容传输放大系数为5,由于非直接邻居节点不能从服务器上获取数据,即非直接邻居节点从服务器上获得数据内容的下载速率为0,导致非直接邻居节点的内容传输放大系数无意义,所以上述记录表中可以不包含非直接邻居节点的内容传输放大系数,例如:表一中非直接邻居节点10.168.1.0的内容传输放大系数为N/A。
服务器在接收到客户端发送的内容分发能力消息后,可以对记录中的数据进行更新。例如将表一中的上传速率更新为内容分发能力消息中的数据内容的上传速率或将内容传输放大系数更新为内容分发能力消息中的内容传输放大系数Ampi。当直接邻居节点被淘汰成为非直接邻居节点时,表一中直接邻居节点标志位被置为0。除如表一中直接邻居节点标识外,其他可以实现表示直接邻居节点的方法也是可以的,例如,加上字段名称作为直接邻居节点的标识。该记录中还可以包含其他内容,比如客户端的体验值,客户端所对应的域ID等等。
本发明实施例所公开的确定直接邻居节点的方法,其过程可以如上述多个实施例公开的确定方法,直接邻居节点被确定后,其后续的数据传输过程可以进一步如步骤203、20所述,具体如下。
步骤203,服务器向没有从服务器获取数据内容但被确定为直接邻居节点的客户端发送连接通知,以便于被确定为直接邻居节点的客户端从服务器获取数据内容;和/或服务器向被确定为非直接邻居节点的客户端发送断开连接通知,通知其断开和服务器的连接,并拒绝继续向被淘汰成为非直接邻居节点的客户端提供数据内容。
没有从服务器获取数据内容但被确定为直接邻居节点的客户端在接收到上述连接通知后,可连接到服务器并从服务器上获取数据内容。然后向服务器发送包含传输放大系数和/或上传速率的内容分发能力消息。当然,服务器也可以在接收没有从服务器获取数据内容但被确定为直接邻居节点的客户端发送的获取数据内容的请求后,向其提供数据内容。
而被确定为非直接邻居节点的客户端在接收到上述断开连接通知后,将不再从服务器获取数据内容,并定期向服务器发送包含上传速率的内容分发能力消息。当然,服务器也可以不通知这些被淘汰的直接邻居节点而直接断开。
步骤204、当作为直接邻居节点的客户端请求从服务器获取数据内容时,服务器向作为直接邻居节点的客户端提供数据内容。
本实施例服务器通过选择上传速率大的客户端为直接邻居节点,并将数据内容提供给直接邻居节点,以便于具有较大分发能力的作为直接邻居节点的客户端从服务器获取数据内容后提供给其它客户端,从而加快数据内容在网络中的传播,并减轻服务器的下载压力。
根据本发明的另一实施例,服务器可以为每个数据内容分配上传带宽B1、上传带宽的最低利用率Tl和上传带宽的最高利用率Th。并且,服务器对数据内容设置有可以支持的直接邻居节点数量阈值M。对于某个数据内容而言,其可以支持的直接邻居节点数量阈值受服务器支持的直接邻居节点的总值和服务器为某个数据内容的上传带宽影响。本发明实施例提供了服务器调整直接邻居节点的数量的方法流程图,如图3所示,具体内容可以如下所述。
步骤301,服务器获取预设的各参数值,包括当前数据内容的直接邻居节点的数量N、上传带宽的当前使用量U,上传带宽的最低利用率Tl、上传带宽的最高利用率Th以及可以支持的直接邻居节点数量阈值M。
302、服务器根据上传带宽的最低利用率Tl和为数据内容分配上传带宽B1计算上传带宽的最低利用阈值C1=B1*Tl。
步骤303,服务器。
如果所述上传带宽的最低利用阈值C1大于上传带宽的当前使用量U,即U<C1,执行步骤304;当U>C1时,执行步骤309。
步骤304,服务器根据当前数据内容的直接邻居节点的数量N以及上传带宽的当前使用量U,计算当前直接邻居节点的平均下载带宽V=U/N。
步骤305,服务器计算为数据内容提供的剩余上传带宽L=C1-U。
此外,步骤304与步骤305之间没有严格的时间顺序。
步骤306,服务器根据所述数据内容提供的剩余上传带宽L和所述当前直接邻居节点的平均下载带宽V计算可增加直接邻居节点的数量D=L/V并取整。
步骤307,服务器根据所述当前数据内容的直接邻居节点的数量N及所述可增加直接邻居节点的数量D计算增加直接邻居节点后的数量E=N+D;
步骤308,确定需要增加的直接邻居节点的数量D或F。具体包括:服务器判断所述可以支持的直接邻居节点数量阈值M大于或等于所述增加直接邻居节点后的数量E,确定需要增加的直接邻居节点的数量D;否则,计算需要增加的直接邻居节点的数量F=M-N,并确定需要增加的直接邻居节点的数量为F=M-N。
步骤309,服务器根据所述上传带宽的最高利用率Th和为数据内容分配上传带宽B1计算上传带宽的最高利用阈值C2=B1*Th。
步骤310,服务器判断当前数据内容的上传带宽的当前使用量U是否大于上传带宽的最高利用阈值C2。
若U>C2,则执行步骤311;若C1<U<C2,可以执行步骤314,结束调整直接邻居节点的数量流程。
步骤311,服务器根据当前数据内容的直接邻居节点的数量N以及上传带宽的当前使用量U,计算当前直接邻居节点的平均下载带宽V=U/N。
步骤312,服务器根据服务器上传带宽的当前使用量U和为数据内容分配上传带宽B1计算上传带宽的超出量E=U-B1*Th。
步骤313,服务器根据上传带宽的超出量E以及平均下载带宽V确定需要减少的直接邻居节点的数量G=E/V,取整数位加1个。
对于以上流程也可以先执行步骤309到313,不满足步骤309中的条件转入步骤302处理,其原理与图3所示原理相同,在此不再详述。
以实际应用中的情况为例,假设当前系统中共有10个直接邻居节点下载数据内容,即N=10,而数据内容可以支持的直接邻居节点数量阈值为15即M=15,Tl=80%,Th=95%,B1=10M。数据内容的上传带宽的当前使用量U为7M即U=7M,上传带宽的最低利用阈值C1=B1*Tl=8M。所以U<C1,且N<M。那么此时需要增加直接邻居节点的个数,服务器按304-308的步骤进行操作:计算V=U/N=0.7M,L=C1-U=1M,从而得到可增加的直接邻居中节点的数量D=L/V=1.3;对该值进行4舍5入则可以增加直接邻居节点的个数为1个;计算增加直接邻居节点后的数量E=N+D=10,并且E小于M。确定需要增加的直接邻居节点的数量为D。其他根据网络状况以及客户端下载连接状况进行对直接邻居节点的调整也是可以的,例如只设置上述Tl,Th其中的一个值,或不设置上述Tl,Th,当上传带宽的当前使用量U超过B1时对直接邻居节点的个数进行调整。
通过上述实施例,实现了服务器根据客户端的连接状况以及网络状况对直接邻居节点的个数进行调整,从而充分利用网络带宽资源,将数据内容提供给直接邻居节点,利用尽可能多的直接邻居节点的上传能力使得数据内容更快的分发到P2P网络当中。
根据本发明的另一实施例,服务器还可以承担管理直接邻居节点的角色。在实际应用中,还可能存在多个存储有数据内容的服务器,其中一个服务器可以作为管理直接邻居节点和非直接邻导节点的管理服务器,或独立设置一个管理服务器。
管理服务器接收客户端在上述实施例中发送的消息,例如客户端上报的内容分发能力消息,根据接收到的消息进行处理,例如确定直接邻居节点或确定非直接邻居节点,并将处理结果发送给存储有数据内容的服务器。例如将确定为直接邻居节点的客户端或确定为非直接邻居节点的客户端的记录发送给存储有数据内容的服务器,以便于存储有数据内容的服务器为作为直接邻居节点的客户端提供数据内容,以及拒绝为作为非直接邻居节点的客户端提供数据内容。
管理服务器还可以进行直接邻居节点更新处理,具体参考上述实施例的直接邻居节点更新过程。
管理服务器还可以根据对直接邻居节点的管理,对于确定的直接邻居节点和淘汰的直接邻居节点发送相应的通知消息。
本发明实施例还提供一种服务器,参照图4,包括接收模块401、确定模块403,其中:
接收模块401,用于接收客户端发送的内容分发能力消息,所述内容分发能力消息中包含客户端当前的内容分发能力。其中,所述内容分发能力可以是客户端对数据内容的上传速率和/或客户端对数据内容的内容传输放大系数;确定模块;403,用于根据接收到的客户端的当前的内容分发能力确定直接邻居节点。
在本发明另外的实施例中的服务器,仍然参照图4,服务器包括接收模块401、确定模块403和存储模块402,其中:
接收模块401与前述实施例接收模块401的功能相同;
存储模块402,用于存储每个数据内容可以支持的直接邻居节点数量阈值,确定模块403根据客户端当前的内容分发能力从大到小的顺序以及设置的直接邻居节点数量阈值,在满足所述直接邻居节点数量阈值的条件下,确定相应数量的客户端为直接邻居节点。此外,在本实施例中,客户端当前的内容分发能力为上传速率。
在本发明另外的实施例中的服务器,仍然参照图4,服务器包括接收模块401、确定模块403和存储模块402,其中:
接收模块401与前述实施例接收模块401的功能相同;存储模块402用于存储可以支持的直接邻居节点数量阈值以及设置的直接邻居节点更新值;确定模块403具体用于根据设置的直接邻居节点数量阈值以及设置的直接邻居节点更新值,在满足所述直接邻居节点数量阈值的条件下,根据作为非直接邻居节点的客户端的当前内容分发能力从大到小的顺序,确定相应更新值数量的非直接邻居节点为直接邻居节点;以及根据作为直接邻居节点的客户端的当前内容分发能力从小到大的顺序,确定相应更新值数量的直接邻居节点为非直接邻居节点。。此外,在本实施例中,作为非直接邻居节点的客户端,其当前内容分发能力为上传速率;所述作为直接邻居节点的客户端,其当前内容分发能力为内容传输放大系数。或者所有的客户端当前的内容分发能力都为上传速率。
在以上服务器的实施例中,确定模块403具体确定直接邻居节点的过程可以参考上述多个实施例所公开的服务器确定直接邻居节点的过程,例如图2所对应的实施例步骤202所公开的确定过程,在此不再详述。
在以上服务器的实施例中,所述服务器还可以包括获取模块404、计算模块405。其中,获取模块404,用于获取数据内容的上传带宽的当前使用量;调整模块405,用于根据所述上传带宽的当前使用量调整直接邻居节点的数量。其中,调整模块405具体调整直接邻居节点的数量的过程可以考上述多个实施例所公开的服务器调整直接邻居节点的数量的过程,例如图3所对应的实施例的过程,在此不再详述。
在以上服务器的实施例中,所述服务器还可以包括发送模块405,用于向确定为直接邻居节点的客户端发送连接通知和/或向确定为非直接邻居节点的客户端发送断开连接通知。
此外,对于本发明的其它实施例的服务器,例如管理服务器,仍然可以参照图4所对应的实施例。。
当然,本发明实施例提供的服务器还可以实现图2,图3服务器能够实现的任何功能,在此不再一一详述。
本发明实施例还提供一种客户端,如图5所示,可以包括获取模块501、发送模块502。
获取模块501,用于获取对数据内容的内容分发能力;
其中,所述内容分发能力可以是客户端对数据内容的上传速率和/或客户端对数据内容的内容传输放大系数。
例如,如果客户端为直接邻居节点,该获取模块501可以通过如下公式计算获取内容分发能力:
Bandwidthcs-peer,表示客户端从服务器上下载数据内容的下载速率,获取模块501可以通过如下公式计算获得该下载速率:
Bandwidthcs-peer=从服务器获取的数据内容总量/获取时间获得
发送模块502,用于向服务器发送内容分发能力消息,所述内容分发能力消息中包含客户端当前的内容分发能力,以便于服务器根据所述客户端当前的内容分发能力确定直接邻居节点。
进一步的,本发明实施例提供的客户端还包括接收模块503,用于接收服务器发送的连接通知或断开连接通知。
当然,本发明实施例提供的客户端还可以实现图2,图3的客户端能够实现的任何功能,在此不再一一详述。
本发明实施例还提供一种系统,包括客户端601、服务器602。其中,客户端601可以实现图5所示客户端的所有功能,服务器602可以实现图4所示的服务器的所有功能,在此不再一一详述。
通过以上实施例的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得移动设备(可以是手机,个人计算机,媒体播放器等)执行本发明各个实施例所述的方法。这里所称的存储介质,如:ROM/RAM、磁盘、光盘等。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (18)
1.一种确定直接邻居节点的方法,其特征在于:
接收客户端发送的内容分发能力消息,所述内容分发能力消息中包含客户端当前的内容分发能力;
根据客户端当前的内容分发能力确定直接邻居节点。
2.根据权利要求1所述的方法,其特征在于,所述根据客户端当前的内容分发能力确定直接邻居节点具体包括:
根据客户端当前的内容分发能力从大到小的顺序以及设置的直接邻居节点数量阈值,在满足所述直接邻居节点数量阈值的条件下,确定相应数量的客户端为直接邻居节点。
3.根据权利要求1所述的方法,其特征在于,所述根据客户端当前的内容分发能力确定直接邻居节点具体包括:
根据设置的直接邻居节点数量阈值以及设置的直接邻居节点更新值,在满足所述直接邻居节点数量阈值的条件下,根据作为非直接邻居节点的客户端的当前内容分发能力从大到小的顺序,确定相应更新值数量的非直接邻居节点为直接邻居节点;以及根据作为直接邻居节点的客户端的当前内容分发能力从小到大的顺序,确定相应更新值数量的直接邻居节点为非直接邻居节点。
4.根据权利要求3所述的方法,其特征在于,所述作为非直接邻居节点的客户端,其当前内容分发能力为上传速率;所述作为直接邻居节点的客户端,其当前内容分发能力为内容传输放大系数。
5.根据权利要求2或3所述的方法,其特征在于,所述客户端当前的内容分发能力为上传速率。
6.根据权利要求1-4任一所述的方法,其特征在于,还包括:
获取数据内容的上传带宽的当前使用量;
根据上传带宽的最低利用阈值或最高利用阈值,以及所述上传带宽的当前使用量调整直接邻居节点的数量。
7.如权利要求6所述的方法,其特征在于,所述根据上传带宽的最低利用阈值或最高利用阈值,以及所述上传带宽的当前使用量调整直接邻居节点的数量具体为:
根据预设的上传带宽的最低利用率Tl和预设的为数据内容分配上传带宽B1计算上传带宽的最低利用阈值C1;
如果所述上传带宽的最低利用阈值C1大于上传带宽的当前使用量U,则增加直接邻居节点的数量;否则,根据预设的上传带宽的最高利用率Th和预设的为数据内容分配上传带宽B1计算上传带宽的最高利用阈值C2,如果所述上传带宽的最高利用阈值C2小于上传带宽的当前使用量U,则减少直接邻居节点的数量。
8.如权利要求7所述的方法,其特征在于:所述增加直接邻居节点的数量具体为:
根据预设的当前数据内容的直接邻居节点的数量N以及预设的上传带宽的当前使用量U,计算当前直接邻居节点的平均下载带宽V;
根据预设的上传带宽的最低利用阈值C1和预设的上传带宽的当前使用量U计算为数据内容提供的剩余上传带宽L;
根据所述数据内容提供的剩余上传带宽L和所述当前直接邻居节点的平均下载带宽V计算可增加直接邻居节点的数量D;
根据所述当前数据内容的直接邻居节点的数量N及所述可增加直接邻居节点的数量D计算增加直接邻居节点后的数量E;
判断所述可以支持的直接邻居节点数量阈值M大于或等于所述增加直接邻居节点后的数量E,确定需要增加的直接邻居节点的数量D;否则,根据所述可以支持的直接邻居节点数量阈值M及所述当前数据内容的直接邻居节点的数量N计算需要增加的直接邻居节点的数量F,并确定需要增加的直接邻居节点的数量为F。
9.如权利要求7所述的方法,其特征在于:所述减少直接邻居节点的数量具体为:
根据所述上传带宽的最高利用率Th和为数据内容分配上传带宽B1计算上传带宽的最高利用阈值C2;
判断当前数据内容的上传带宽的当前使用量U大于上传带宽的最高利用阈值C2,并根据当前数据内容的直接邻居节点的数量N以及上传带宽的当前使用量U,计算当前直接邻居节点的平均下载带宽V;
服务器根据服务器上传带宽的当前使用量U和为数据内容分配上传带宽B1计算上传带宽的超出量E;
根据上传带宽的超出量E以及平均下载带宽V确定需要减少的直接邻居节点的数量G。
10.一种服务器,其特征在于,该服务器包括:
接收模块,用于接收客户端发送的内容分发能力消息,所述内容分发能力消息中包含客户端当前的内容分发能力;
确定模块,用于根据客户端当前的内容分发能力确定直接邻居节点。
11.根据权利要求10所述的服务器,其特征在于,该服务器还包括存储模块,用于存储可以支持的直接邻居节点数量阈值;
其中所述确定模块具体用于根据客户端当前的内容分发能力从大到小的顺序以及设置的直接邻居节点数量阈值,在满足所述直接邻居节点数量阈值的条件下,确定相应数量的客户端为直接邻居节点。
12.根据权利要求10所述的服务器,其特征在于,该服务器还包括存储模块,用于存储可以支持的直接邻居节点数量阈值以及设置的直接邻居节点更新值;所述确定模块具体用于根据设置的直接邻居节点数量阈值以及设置的直接邻居节点更新值,在满足所述直接邻居节点数量阈值的条件下,根据作为非直接邻居节点的客户端的当前内容分发能力从大到小的顺序,确定相应更新值数量的非直接邻居节点为直接邻居节点;以及根据作为直接邻居节点的客户端的当前内容分发能力从小到大的顺序,确定相应更新值数量的直接邻居节点为非直接邻居节点。
13.根据权利要求12所述的服务器,其特征在于,所述作为非直接邻居节点的客户端,其当前内容分发能力为上传速率;所述作为直接邻居节点的客户端,其当前内容分发能力为内容传输放大系数。
14.根据权利要求11或12所述的服务器,其特征在于,所述客户端当前的内容分发能力为上传速率。
15.如权利要求10-13任一所述的,其特征在于还包括:
获取模块,用于获取数据内容的上传带宽的当前使用量;
调整模块,用于根据所述上传带宽的当前使用量调整直接邻居节点的数量。
16.根据权利要求12或13所述的服务器,其特征在于,还包括发送模块,用于向确定为非直接邻居节点的客户端发送断开连接通知,以及向确定为直接邻居节点的客户端发送连接通知。
17.一种客户端,其特征在于,客户端包括:
获取模块,用于获取对数据内容的内容分发能力;
发送模块,用于发送内容分发能力消息,所述内容分发能力消息中包含客户端当前的内容分发能力;以便于服务器根据所述客户端当前的内容分发能力确定直接邻居节点。
18.根据权利要求17所述的客户端,其特征在于,还包括:
接收模块:用于接收服务器发送的连接通知或断开连接通知。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910105428 CN101808079B (zh) | 2009-02-12 | 2009-02-12 | 一种确定直接邻居节点的方法、服务器和客户端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910105428 CN101808079B (zh) | 2009-02-12 | 2009-02-12 | 一种确定直接邻居节点的方法、服务器和客户端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101808079A true CN101808079A (zh) | 2010-08-18 |
CN101808079B CN101808079B (zh) | 2013-10-02 |
Family
ID=42609699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910105428 Expired - Fee Related CN101808079B (zh) | 2009-02-12 | 2009-02-12 | 一种确定直接邻居节点的方法、服务器和客户端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101808079B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107404541A (zh) * | 2017-09-20 | 2017-11-28 | 郑州云海信息技术有限公司 | 一种对等网络传输邻居节点选择的方法及系统 |
CN107517162A (zh) * | 2016-06-17 | 2017-12-26 | 阿里巴巴集团控股有限公司 | 一种cdn缓存服务器的确定方法及装置 |
CN107659634A (zh) * | 2017-09-20 | 2018-02-02 | 郑州云海信息技术有限公司 | 邻居节点选择的方法、装置、设备及计算机存储介质 |
CN109510868A (zh) * | 2018-11-14 | 2019-03-22 | 广州虎牙信息科技有限公司 | 一种建立p2p网络的方法、装置、终端设备及存储介质 |
CN110969458A (zh) * | 2018-09-29 | 2020-04-07 | 武汉斗鱼网络科技有限公司 | 一种客户端集群的积分方法、客户端及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100446567C (zh) * | 2005-10-25 | 2008-12-24 | 北京影立驰技术有限公司 | 在信息家电中实现p2p流播放的装置和方法 |
CN100364279C (zh) * | 2005-12-07 | 2008-01-23 | 中国科学院计算技术研究所 | 结构化p2p系统的分布式负载均衡方法 |
-
2009
- 2009-02-12 CN CN 200910105428 patent/CN101808079B/zh not_active Expired - Fee Related
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107517162A (zh) * | 2016-06-17 | 2017-12-26 | 阿里巴巴集团控股有限公司 | 一种cdn缓存服务器的确定方法及装置 |
CN107517162B (zh) * | 2016-06-17 | 2020-09-04 | 阿里巴巴集团控股有限公司 | 一种cdn缓存服务器的确定方法及装置 |
CN107404541A (zh) * | 2017-09-20 | 2017-11-28 | 郑州云海信息技术有限公司 | 一种对等网络传输邻居节点选择的方法及系统 |
CN107659634A (zh) * | 2017-09-20 | 2018-02-02 | 郑州云海信息技术有限公司 | 邻居节点选择的方法、装置、设备及计算机存储介质 |
CN107404541B (zh) * | 2017-09-20 | 2020-08-04 | 苏州浪潮智能科技有限公司 | 一种对等网络传输邻居节点选择的方法及系统 |
CN107659634B (zh) * | 2017-09-20 | 2020-08-21 | 苏州浪潮智能科技有限公司 | 邻居节点选择的方法、装置、设备及计算机存储介质 |
CN110969458A (zh) * | 2018-09-29 | 2020-04-07 | 武汉斗鱼网络科技有限公司 | 一种客户端集群的积分方法、客户端及系统 |
CN109510868A (zh) * | 2018-11-14 | 2019-03-22 | 广州虎牙信息科技有限公司 | 一种建立p2p网络的方法、装置、终端设备及存储介质 |
CN109510868B (zh) * | 2018-11-14 | 2021-01-22 | 广州虎牙信息科技有限公司 | 一种建立p2p网络的方法、装置、终端设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN101808079B (zh) | 2013-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101808079B (zh) | 一种确定直接邻居节点的方法、服务器和客户端 | |
CN101720136B (zh) | 客户端邻居节点数目控制方法和装置、缓存系统 | |
CN108881354B (zh) | 一种推送信息存储方法、装置、服务器和计算机存储介质 | |
US20100250674A1 (en) | Content delivery apparatus, content delivery method, and content delivery program | |
CN101800731B (zh) | 网络传输管理服务器、网络传输管理方法及网络传输系统 | |
CN102170475A (zh) | 一种基于p2p的文件分发系统及分片方法 | |
CN101350790A (zh) | 基于即时通讯系统的文件传输方法及装置 | |
CN1937554A (zh) | 一种使p2p文件下载流量本地化的方法 | |
CN102546775A (zh) | 一种cdn中的节点及其自组网方法 | |
CN106790679A (zh) | 一种下载应用资源包的方法及服务器、终端 | |
US20100191756A1 (en) | Content delivery apparatus, content delivery method, and content delivery program | |
CN103957269A (zh) | 点对点p2p网络节点选择方法及点对点p2p重定向服务器 | |
CN102316139B (zh) | 一种p2p内容资源分发系统及内容资源处理方法 | |
CN103281382A (zh) | 一种基于p2p的文件传输方法和节点 | |
CN101772083A (zh) | 一种带宽分配方法、装置和系统 | |
CN102916907B (zh) | 基于家庭网关的下载方法和系统以及家庭网关 | |
CN102769666A (zh) | 一种云存储方法及云存储系统 | |
CN109218447B (zh) | 媒体文件分发方法及文件分发平台 | |
CN101729794A (zh) | 实现直播及直播预处理的方法、装置、系统 | |
CN102143211A (zh) | 媒体内容的处理方法、设备和系统 | |
CN109347967B (zh) | 一种获取音视频数据的方法及装置 | |
CN105847370A (zh) | 视频文件的调度分发或请求的方法及系统 | |
CN103430511B (zh) | 在包括多个设备的对等网络中复制数据的方法和设备 | |
CN103905923A (zh) | 一种内容缓存方法及装置 | |
CN101179705B (zh) | 伙伴资源节点选择方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20131002 Termination date: 20190212 |