一种p2p客户端数据发送管理算法的制作方法

文档序号:7694618阅读:250来源:国知局
专利名称:一种p2p客户端数据发送管理算法的制作方法
技术领域
本发明涉及一种使因特网中P2P文件交换能充分利用自身网络资源的P2P客户端算法, 适用于互联网P2P文件交换领域。
二、 背景技术-
近年来,随着Internet的迅速发展,对等网络技术(peer to peer,简称P2P)已经逐 渐成为各方关注的热门话题。P2P作为一种网络模型,其中所有的节点是对等的,这些对等 的节点称为对等点。对等点之间通过直接互联共享信息资源、处理器资源、存储资源甚至高 速缓存资源等,无需依赖集中式服务器或资源就可完成。与传统的C / S模式相比,该模 式没有明显的客户端/服务器之分,P2P模式的任何一端都可以认为同时具有服务器和客户 端的功能,这样,单台PC机在从多台机器接收数据流的同时也能向多台机器发送数据流。 P2P下载和P2P视频点播直播是两种主要的P2P应用方式,它们充分利用了客户端的主机及 网络资源,突破了传统C/S模式同时在线人数的瓶颈,同时传输一个文件的人数越多,速度 反而越快。
由于客户端在下载数据的同时又给其它客户端上传数据,而众多客户端的网络能力又 相对有限,所以客户端要同时连接大量其它的对等客户端同时进行数据传输,这必然造成用 户端资源紧张,如果管理不好众多的上传数据连接,必将影响到用户的数据下载,尤其是会 影响到P2P视频点播直播这样的实时性要求比较高的应用。如果单纯的降低用户本身的上传 数据量,将会使整个P2P系统性能下降,不能体现P2P的优势。
基亍以上背景,本发明提出一种P2P客户端的发送管理算法,这种方法的基本思想是 在客户端发送队列中区分开数据优先级,以保证用户的实时下载请求及时发送出去,同时对 客户端的发送能力进行负反馈测试,尽量提高客户端的上传带宽利用率。通过这种方法,一 方面用户的—F载请求可以被及时发出,保证了用户体验,另一方面客户端充分利用了自己的 上传带宽,可以尽可能的为其它用户提供上传服务,使整个P2P系统更加有效。

发明内容
a) 发明目的
本发明的目的是提供一种可以使P2P用户的下载请求能及时发出,同时又能充分用户上 传带宽的P2P客户端数据发送管理算法,使用这种方法后,能够保证P2P用户下载、点播以 及直播的服务质量,同时充分利用客户端的上传带宽,提高整个P2P系统的有效性。
b) 技术方案
本发明所述的客户端算法包括两个机制P2P客户端发送队列的数据优先分级和P2P客 户端发送能力的负反馈测试。其中P2P客户端发送队列数据优先分级,对客户端发送队列中 的所有数据区分优先级,优先级高的数据先于优先级低的数据发送;P2P客户端发送能力的 负反馈测试将可以获得P2P客户端的最大上传能力,充分利用客户端上传带宽提供上传服 务。通过这两个机制的协调作用,可以达到P2P客户端下载及时性和充分上传服务的平衡。
P2P客户端发送队列的数据优先分级机制的使用包括如下步骤
步骤1:对客户端发送数据进行分类,将其分为一般数据、下载请求、紧急请求。"紧 急请求"指的是视频点播直播的数据下载请求;"下载请求"指除了视频点播直播这样的实时性要求高的下载请求外的一般P2P下载请求;"一般数据"包括除了以上两种以外的上传 数据。对二种上传数据附加不同标志位U (urgent), 0代表一般数据,1代表下载请求,2 代表紧急请求。数字越大优先级越高。
步骤2:将欲发送的数据插入发送队列之中。插入规则如下顺序扫描发送队列中的 等待发送数据,将欲发送数据插入到扫描时发现的第一个优先级比欲发送数据低的数据之 月ij。
步骤3:按照当前数据发送速度,在发送队列中从前往后顺序发送数据。
循环执行步骤2和步骤3。
下面举例说明将数据插入发送队列的方法和效果。
假设顺序产生优先级分别为1, 0, 2, 1, 0的5个数据包,逐一将这5个数据包插入 发送队列,发送队列变化如下表1所示
发送队列插入数据插入位置
队列位置12345
111
1002
21021
211013
2110005
表l:将5个数据包插入发送队列
P2P客户端发送能力负反馈测试机制的使用包括如下步骤 (由于每次发送的数据包大小固定,可以以单位时间内发送的数据包数量来表示数据 发送速度,下面使用的对发送速度的表示和计算都是以数据包为单位。)
步骤l:假设ISP提供的网络接入的最大下行速度为v0,最大上行速度为vl,那么可 设定初始发送速度为v2 = v1/ 10,最大发送速度上限为v3 = v0 * 2。设定最高发送速度 上限v3的原因是可能本机发送能力很高,而ISP提供的网络接入不能提供相应的速度,所 以可能测出来的最大发送速度不能满足。下面的步骤中增大发送速度的前提是增大后的速度 要小于v3,否则设定增大后的发送速度v2 = v3,继续测试。
步骤2:在探测周期内按设定的发送速度v2发送数据包。计算探测周期内收到的发送 数据成功的callback数量。比较当前发送数据包数量与callback数量R。
步骤3:当callback数量等于发送数据包数量时,表明发送速度小于或等于上传最大 速度,按指数增长方式增大v2,即设定v2 = vl * 2。
循环执行步骤2和步骤3,直至callback数量第一次小于发送数据包数量时执行步骤4。
步骤4:当callback数量第一次小于发送数据包数量时,表明发送速度大于上传最大 速度,v2回退一步,即设定v2 = v2 / 2。
步骤5:线性增加发送速度v2,即设定v2 = v2 + 1。
循环执行步骤2和步骤5,直至callback数量再次小于发送数据包数量时执行步骤6。 步骤6: callback数量再次小于发送数据包数量,表明发送速度大于上传最大速度, v2回退一步,即设定v2 = v2 -1。
一次客户端发送能力负反馈测试结束,设定的v2即为可估计最大上传速度。 P2P客户端发送能力负反馈测试流程如下图1所示
由于网络状态的不稳定以及用户使用网络的情况不同,经过一段时间按最大上传速度 发送数据之后,有可能会造成客户端发送缓冲区累积很多数据等待发送。可以设定一个发送 确认阈值,即发送出去的数据量与收到的的发送确认callback数量的最大差值M,当数据
4累积超过此值的时候,减小发送速度v2,包括如下步骤
步骤l:设定发送速度v2 = v2 / 2,按新的发送速度继续发送数据。记录发送出去的数据量与收到的发送确认callback数量的差值m。
步骤2:比较m与M。
如果m大于或等于M,则循环执行步骤l和步骤2直至m小于M为止,之后按之前所述方法线性增长v2,找到新的最大发送速度,然后按这个速度发送数据。P2P客户端降低发送速度流程如下图2所示
经过一定时间T的数据传送后,定时启动客户端发送能力负反馈测试,以当前发送速度为初始发送速度启动负反馈测试,找到新的最大上传速度,以保证上传带宽的合理利用。特殊情况处理
由亍P2P视频点播和直播的数据请求是逐个发送的,所以P2P客户端发送数据时是在各条链路上逐条链路循环发送,每条链路逐个包发送,进而在进行负反馈测试时要考虑各条链路的发送情况。
链路质量的优劣可以用ISP提供的最大上行速度除以链路总条数得到的一个平均链路最大速度作为参数来衡量,假如得到的平均链路最大速度为v4,而测得的某条链路的上传速度小于v4 / 10,则可以判定该链路质量差。
如果大部分的链路质量都很好,只有少数质量差,而且在检测上行速度时同时参与测试的链路数量比较多,那么这些差的链路对于最后的计算结果影响较小,可以忽略这种微小的影响。如果同时参与测试的链路数比较少,那么需要处理这种对测试结果造成比较显著影响的情况。此次参与测试的链路刚好是质量差的链路,此时不能将这个链路的测试结果做为最终结果,需要对其他链路分别做测试,如果多数链路的质量测试情况都优于质量差的链路,则可以忽略差链路的测试结果,以优质链路的测试结果做为最终速度。如果所有参与测试的链路质量都比较差,那么即使客户端本身的网络情况较好,由于其所连接的都是链路差的节点,那么也只能以这个差的结果做为最终发送速度。c)有益效果
使用本发明的算法一方面可以满足P2P客户端的实时性数据请求及时发出,从而保证下载、点播和直播的服务质量不被上传所影响;另一方面又尽可能的利用了P2P客户端的上传带宽,有效的提高了P2P系统的效率,从而使整个P2P系统的服务质量得到了提升。


图1: P2P客户端发送能力负反馈测试流程图2: P2P客户端降低发送速度流程
五、 具体实现示例-
PPCDN系统客户端采用了该算法。
当客户端运行一段时间后,随着本地缓存数据的增加,其他客户端向其发出的数据请求逐渐增多,通过网络流量监测工具发现,上行流量逐渐增加,最后保持在一个稳定的水平。通过与F载速率进行对比发现,上行速率基本达到最大上传速率。
PPCDN客户端通过采用本算法,避免了在没有上行流量控制时出现的大量数据拥塞网络出口,造成数据请求无法正常发送的情况。同时通过对上行带宽的管理,客户端能够清楚地知道当前自己的上传能力,当自己的上传能力达到极限时,对于新来的数据请求可以及时通知对方自己目前无法提供服务,这样发出数据请求客户端能够迅速向其他客户端重新发出请求,从而快速取得需要的数据。
权利要求
1、一种P2P客户端数据发送管理算法,其特征如下1)数据请求分优先级,保证紧急数据的快速传输2)上传能力探测负反馈机制,保证最大限度使用网络的上行带宽3)周期性探测机制,提高客户端抗网络抖动能力。
2、 根据权力要求1所述的一种P2P客户端数据发送管理算法,其特征是提高了客户端的数据上传能力,使整个P2P网络环境得到优化,明显改善了用户下载体验。
全文摘要
本发明提出一种P2P客户端数据发送管理算法。该算法采用了以下方案1.数据请求定义了优先级,保证紧急数据能够优先被发送;2.采用负反馈方式检测网络的上传能力,探测算法在接近网络上行最大能力时收敛,从而最大限度地利用了网络的上行带宽;3.周期性检测上行带宽情况,及时调整参数,增强了客户端抗抖动能力通过采用该算法,在不影响客户端下载能力的同时,最大限度利用了网络的上行带宽,使整个P2P生态环境得到优化,大大提高了用户的使用体验。
文档编号H04L29/08GK101478558SQ20081011136
公开日2009年7月8日 申请日期2008年5月29日 优先权日2008年5月29日
发明者晖 唐 申请人:北京东方网信科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1