一种基于带宽保证技术实现p2p流媒体系统的方法

文档序号:7684105阅读:124来源:国知局
专利名称:一种基于带宽保证技术实现p2p流媒体系统的方法
技术领域
本发明涉及一种流媒体的实现方法,更具体地说,涉及一种依靠优化服务 器数据提供的方式改进P2P技术实现流媒体系统的方法。
背景技术
1. P2P的流媒体技术介绍
当前P2P的流媒体技术为人们所重视,其主要使用方式包括软件加载、服 务器端信息注册、获得媒体资源信息,以及实现互连、数据传输和进一步的緩 冲播放。该技术具有两方面优势
a、 不需要互联网路由器和网络基础设施的支持,因此性价比高且易于部署;
b、 流4某体用户不只是下载媒体流,而且还把々某体流上载给其他用户,因此, 这种方法可以扩大用户组的规p漠,且由更多的需求带来更多的资源。
P2P流媒体系统的网络结构,大部分系统都可以归类为计算机理论中树的方 法或概念。在这种方法中,节点被组织成某种传输数据的拓朴(通常是树,如图 1所示),每个数据分组都在同一拓朴上#:传输。拓朴结构上的节点(peer)有明 确定义的关系,例如,树结构中的"父节点-子节点"关系。这一方法是典型的 推送方法,即当节点(peer)收到数据包,它就把该数据包的拷贝转发到它的 每一个子节点。
图1中,上面网状结构中的父节点,也就是整个树状结构的最顶部,我们称之为父节点服务器,其余的子节点,也就是树的枝叶部分,我们称之为peer
或者peer服务器,每个peer都是由"c/s模式,,客户端服务器共存的方式存在,
既下载又提供下载。
2. P2P流媒体中的关键技术
由于P2P流媒体系统中节点存在不稳定性,因此P2P流媒体系统需要在媒 体流定位技术、节点选择技术、容错以及安全机制方面有所突破。
A、 媒体流定位基于目录的P2P流媒体点播系统,其媒体文件的查找方式 是通过目录服务器来维护所有媒体服务器信息和客户信息(包括IP地址、緩冲 大小等)。当新客户的请求到达时,在目录中查找请求的々某体文件,快速返回侯 选节点,侯选节点可以是媒体服务器,也可以是可提供该影片片段的客户,从 而具有P2P的特性。
B、 节点的选择在一个典型的P2P覆盖网络中,网络中的节点来自各个不 同自治域,节点可以在任一时间自由地加入或离开覆盖网络,导致覆盖网络具 有很大的动态性和不可控性。因此,如何在服务会话初始时,确定一个相对稳 定的可提供一定服务质量(QoS)保证的服务节点或节点集合是P2P流媒体系统迫 切需要解决的问题。
C、 容错机制由于P2P流媒体系统中节点的动态性,正在提供服务的节点 可能会离开系统,传输链路也可能因拥塞而失效。为了保证接受服务的连续性, 必须采取一些容错机制使系统的服务能力不受影响或尽快恢复。
D、 安全机制网络安全是P2P流媒体系统的基本要求,必须通过安全领域 的身份识别认证、授权、数据完整性、保密性和不可否认性等技术,对信 息进行安全控制。对产权的控制,现阶段可釆用DRM技术控制;对于基于企业 级的P2P流々某体播出系统可以安装防火墙阻止非法用户访问;因特网上的P2P流媒体系统可以通过数据包加密方式保证安全。在P2P流々某体系统内,可釆用 用户分级授权的办法,阻止非法访问。
3. p2p流媒体传输的问题
P2P流媒体中服务器包括子节点peer服务器和父节点服务器。每一服务器 部分采用的是一对多的服务模式,需要并发处理大量的子节点peer数据下载请 求,服务的具体体现就是对外提供媒体流数据,与本地带宽的关系非常紧密, 并且处理请求时,必须要考虑服务器的自身能力问题(主要指上传带宽),每个 peer服务器的自身能力,在初始时,都是未知的;服务器部分处理peer请求的 速度,在很大程度上影响了服务器的服务效率。如果处理请求速度慢,服务效 率肯定就会比较低;如果处理的快,处理结果相应的准确性就会降低。在自身 能力未知的情况下,准确的响应每个peer的数据请求,就成为了服务器高效服 务的关键问题。只有充分的利用了本身的资源,实现了网络数据共享最大化, 并且快速准确的响应peer请求,才算实现了高效率服务。此处比较难办的就是 peer服务器的上行带宽的探测问题。普通的做法是,首先完成带宽的探测,即 去某一个地址下载(上传/下载) 一部分数据,通过下载(上传/下载)的数据 量与下载(上传/下载)耗用时间来计算带宽。众所周知,网络带宽的稳定性是 谁都无法保证的,那么首先这种做法的准确性就是值得怀疑的,其次就是上行 带宽与下行带宽的比例上也存在问题,而且启动就去下载(上传/下载)这么一 份数据,带宽消耗也是比较大的。针对于p2p技术的peer端而言,原本的带宽 就非常有限,再进行这种意义不大的消耗,启动初期的效率应该是比较差的。
4. 概念汇总
服务器,如图l所示,包括子节点peer服务器和父节点服务器,即二者统 称为服务器。流々某体,是指采用流式传l叙的方式在Internet/Intranet ^番;改的:!(某体格式, 如音频、视频或多媒体文件。
接收数据端,某一节点(peer)接收其他服务器提供的数据,该节点(peer) 称为接收数据端。
发送数据端,某一服务器为其他peer节点提供数据,该服务器称为发送数 据端。本文中发送数据端既包括正在发送数据的节点,也包括相对接收数据端 可以发送数据的节点。

发明内容
在服务器本身资源未知的情况下,既要充分利用这部分未知资源,又要快 速准确的做出响应,这种情况是最理想的方式。但是,这也是几乎不可能做到 的。为此,本发明的目的是尽量向这种理想的方式靠近。抛弃现有技术中首先 完成带宽探测的步骤,而是在带宽未知条件下,以最大、最直接的方式为节点 提供数据,并根据实际的下载速度确定带宽的状态以及采取的动作。从而达到 实时响应最快,数据发送效率最高。
为了达到上述目的,本发明一种基于带宽保证技术实现P2P流媒体系统的 方法,包括如下步骤 一个接收数据端确认多个发送数据端是否具有其所需文 件以及向具有其所需文件的发送数据端发送下载请求的步骤;发送数据端以时 间顺序为多个接收数据端的下载请求设定优先级的步骤。情况a在发送数据端 的数据提供能力未知的前提下,本发明还包括如下步骤(al)该发送数据端直 接为高优先级的一个接收数据端提供数据;(a2)该发送数据端在2-5秒内检测 出向该接收数据端的实际平均发送速度为V1; (a3)设该发送数据端保证该接收 数据端正常播放流媒体文件所需的下载速度为T,当连续2-4次检测出V<T时,该发送数据端确认已达最大数据提供能力并确知该能力,并且暂时不为该接收
数据端以及更小优先级的接收数据端提供数据;当V<T的情况没有被连续2-4 次冲全测出来,则继续该发送数据端与该接收数据端的数据传输,并且该发送数 据端为下一优先级的接收数据端发送数据,重复(a2)后的步骤,直至确认该发 送数据端已达最大数据提供能力并确知该能力。
本发明基于带宽保证技术实现P2P流媒体系统的方法,在情况b发送数据 端的数据提供能力确知的前提下,还包括如下分步骤(bl)该发送数据端直接 以最大数据提供能力为优先级高的接收数据端提供数据下载,直至达到最大数 据提供能力;(b2)该发送数据端已经达到最大数据提供能力,则该发送数据端 对于其他优先级低的接收数据端的下载请求,暂不提供数据。
其中,上述步骤(bl)的情况多发生在发送数据端与接收数据端的数据传输 断开时,此时,由于发送数据端的数据提供能力确知,因此直接为优先级高的 接收数据端提供数据下载,直至达到最大数据提供能力即可。而数据传输断开 的情况包括所需文件下载完毕断开连接或者数据传输错误断开连接。
此外,本发明基于带宽保证技术实现P2P流媒体系统的方法,其进一步改 进在于,还包括步骤每一接收数据端在3-6秒内检测出从某一发送数据端的
实际下载速度V2,当V,I时,该接收数据端会主动断开与发送数据端的连接,
重新找寻数据源。
本发明基于带宽保证技术实现P2P流媒体系统的方法主要通过如下三个阶 段实现数据发送和接收。
a,能力值未知初始时,自身能力值肯定是O;此时我们可以认为,这个 节点(peer )或服务器的能力非常大,处理数据请求时,全部采用肯定的回复 方式,并探测自身能力值。此时的目的就是在请求的数据达到本身的最大能力之前可以对外提供高效率服务。
b,能力值未知在不断的接受请求,发送数据的过程中,发送的数据量已 经临近自身最大能力,而探测的部分却不能够探测出已经达到最大能力,还会 继续接受请求,对外提供数据。这个时候就会发生,自身的能力不能够满足外 部请求的数据的情况,而导致后来请求的peer与先来的peer争用带宽,如果 先来的peer被挤占了带宽就会发生非常严重的peer大量上线下线,使得整个 网络不稳定。我们在此处的做法是,按照优先级排序发送数据(按照接受子节 点peer下载数据请求的顺序,分配由高到低的优先级,提供数据时,优先为优 先级高的子节点peer提供),以此来保障在达到最大能力值之前就已经开始下 载的peer,能够正常发送数据,不会受到后来的peer的影响,更加不会出现网 络不稳定的情况。此时的目的就是在探测能力最大值的最后部分,避免带宽争 用情况,保障peer数据的稳定传输,保障网络的稳定性,并能够高效率服务。
c,能力值已知当发生自身能力不能够满足所有的数据请求时,就可以确 定已经达到最大能力,通过数据统计的方式,计算出最大能力值。此时就相对 比较简单了,只需要进行筒单的计算就可以准确的做出响应了;此时的目的是, 在能力值已知的情况,快速准确的响应peer请求,实现高效率服务。
本发明基于带宽保证技术实现P2P流媒体系统的方法,针对P2P技术的特 点,在不断的对外提供服务过程中,探测计算出本身的最大能力值,不存在带 宽无意义的消耗,稳定性也是有所保证的。具体说,本发明具有如下有益效果
1、 子节点peer下载数据速度稳定,为peer的流媒体稳定纟番放提供了强有 力的保障。
2、 可以控制子节点peer的频繁上线下线行为,对关联的其他子节点peer 所造成的影响,将影响控制在一个很小的范围之内,不会对整个数据共享网络造成影响。
3、 自身完成最大能力值计算,节省了外部探测的资源,而且更加准确,有 益于有限带宽的最大化利用。
4、 月良务器快速准确的答复子节点peer的下载数据请求,大幅度的缩短了 peer寻找数据耗用的时间,提高了服务效率。


图1是现有技术P2P系统的网络结构示意图2是本发明以时间顺序为下载节点排列优先级的说明示意图3是本发明基于带宽保证技术实现P2P流媒体系统的方法流程图。
具体实施例方式
本发明首先满足"快速准确处理请求"的条件,其次是保证在最大能力值的 探测过程中的处理效率,再次就是将最大能力值探测的影响减小到最小。最大 能力值探测完成后的处理就比较简单了,将以上几点保证好,就基本上可以发 挥客户端的最大能力,在自身能力条件下,提供高效率的提供服务。
实现以上的目的,需要三个部分协调完成
a、 服务器端接受子节点peer下载数据请求的过程中,完成自身能力探测。
b、 服务器端按照接受"子节点peer下载数据请求"时分配的优先级,为peer 发送数据。
c、 peer客户端下载速度冲企测。
下面参据实施例具体描述整个处理过程
与现有技术P2P流媒体系统及其他P2P软件相同,待接收数据的接收数据端需要确认那些发送数据端具有其所需的文件,并向这些发送数据端发送下载 请求。其中本发明中所称的"所需文件"是指播放的某一流^某体文件经拆分形 成的多个小文件。具体拆分方式,可以参据本申请人与本发明同日申请的中国
发明专利"一种基于数据拆分技术实现P2P流媒体系统的方法"。当然本发明并 非局限于文件拆分,而是着眼于拆分后文件的传输,因此本发明适用于各种P2P 流媒体系统需要文件传输的情况(无论何种拆分方式,甚至不拆分文件)。
当多个接收数据端向同一发送数据端请求数据下载时,该发送数据端以时 间的先后顺序为这些接收数据端的下载请求设定优先级;时间越早,优先级越 高。如图3所示流程如下
1、程序初始化, 一个peer服务器或者发送数据端提供服务的能力肯定是 未知状态(这一能力称为最大数据提供能力),此时添加一个peer下载请求(高 优先级的接收数据端请求),发送数据端无法保证能够满足对方的下载要求,但 却必须立即做出响应并提供数据。
应对策略大胆假设,并探测最大能力值。假设自己能够满足对方的下载 要求,直接给予下载peer肯定的答复。意思就是说,我能够给你提供你要求的 数据,你在我这下吧。因为本身的提供数据的能力还不清楚,是不能够保证速 度的,所以此时需要对这个下栽peer进行发送数据速度检测。以指定时间为标 准检测时间,时间在2到5秒钟内指定,统计出标准时间内发送的数据的总量, 得到实际上每秒钟发送的数据量,称为实际平均发送速度。为每个peer的发送 数据的速度可以根据peer的状态来确定,称之为正常发iHit度,即该发送数据 端保证该接收数据端正常播放流媒体文件所需的下载速度。
如果实际平均发送速度大于或等于正常发送速度,得到;f企测结果"正常", 并继续数据传输。此时,该发送数据端将能力"计数加一,,,并且设置为可以为下一优先级的接收数据端发送数据,从而根据请求的优先级添加下一优先级的
下载连接,而且每添加一个peer都需要作检测,直到探测出最大能力值为止。 其中,该发送数据端将能力"计数加一",其目的是,通过计数方式发送数据端 统计出在下载能力发挥最大状态下所能连接的最大数目,从而为后续阶段(如 断开连接/重建数据通道/发送数据的过程)提供参照,利用这个作为参照的最 大数目,做减一加一计数,即可决定某些通道的传输状态。
如果实际发送速度小与正常发送速度,得到检测结果"慢";"慢"的时候 需要进行次数累计。而到达最大能力值的检测标准是连续检测出为指定个数(个 数在2到4个内指定)的子节点peer提供数据速度"慢"。注意,是连续几个, 这么做的原因是,如果中间出现了下载慢的,而后面的又能够正常下载,这种 情况跟自身的提供能力无关,属于网络问题,或者是对方的问题。如果连续检 测到几个慢的,说明当前提供服务能力已经达到最大,并且已经超出能力范围。 此时确定最大能力值已产生,并开始计算具体数据,通过统计一段时间内的发 送数据的总量来确定最大能力值。并且通常,此时接收数据端会主动断开连接。
2、在探测最大能力值时,只有提供数据量超出了本身提供能力的时候,才 能够探测出最大能力值。那么超出能力之外的数据应该怎么解决呢?例如本身 一秒钟能提供1M的数据,而需要发送的数据却是一秒钟1. 2M,此时那1M的数 据到底应该发送给谁,剩余的0. 2M数据应该怎么处理就成了此处的关键。采取 的办法为在达到数据最大提供能力的情况下,发送数据端暂时不为低优先级
的接收数据端提供数据。具体应对策略如下
为了保障网络的稳定性,以"后来的peer不影响先来的peer"的原则进行
的;此处按照请求的时间顺序,赋予每个来请求数据的peer对应的优先级,先
来的优先级比后来的优先级高。给peer发送数据时,不直接将数据发送到网络中,而是发送到优先级队列中,优先级队列会按照数据所属peer的优先级进行 排列。peer的优先级最高的会排在整个队列的最顶部,首先被发送。每个下载 peer都有一个线程往返于优先级队列与网络之间,发送数据,每个线程都只会 发送排在优先级队列最顶部的数据。如图2所示有六个peer正在下载数据,每 个peer的发送速度是Q. 2M每秒,共1. 2M每秒,可是底层remote peer (发送数 据端)的发送能力只有1M每秒,此时优先级的高低就至关重要了。按照序号排 序,下载peerl优先级最高,下载peer6优先级最低,每个peer都发送一个数 据到优先级队列中,那么此时就会发现peerl-5的数据都能够正常发送,peer6 的数据却一直存在优先级队列中,不能够发送。当数据发送不符合发送要求时, 每个都peer都会产生第二组数据放在优先级队列中进行"占位"行为,发送线 程只会发送队列中优先级最高的凄t据,这样就确保了优先级高的peer的数据发 送稳定性,避免了#1后来的peer所影响。
3、通过上面的处理,可以发现最后有一个下栽peer无法得到数据,这样 同样是会对这个peer产生影响的。对此,服务器部分(发送数据端)无能为力, 但是也不能放任不管。
应对策略每个下载peer (接收数据端)本身在得到肯定的答复后,都会进 行接收数据速度检测,以固定时间(时间在3-6秒内选择)为一次4企测时间, 从收到答复的时间开始,统计固定时间内共收到了多少数据,如果低于正常下 载速度的一半,会直接断开与服务器的连接,另外寻找数据源。到此处,服务 器的状态就应该是最大的发挥了,也就是基本达到了我们上面说的充分利用自 身有效的资源,提供高效服务的状态。
上述正常下栽速度与正常发iHii度相同,具体举例假设30个发送数据端 (服务器)为一个接收数据端peer提供一个每秒30帧的视频文件,并且每个发送数据端对应提供视频文件每秒钟不同帧的数据。此时,每个发送数据端只 要保证1帧/秒的速度发送数据,而接收数据端保证1帧/秒的速度接收每个服
务器的数据,即可保证接收数据端视频文件30帧/秒的正常播放,此时这个1 帧/秒就是正常下载速度或正常发送速度。
4、此时再来peer-清求下载,应该如何处理呢;
应对策略此时可以确定提供数据的能力已经达到自身的最大能力,但是 最大能力的具体数值还没有计算出来。接下来在计算最大能力的一段时间内不 能够接受任何的子节点peer下载数据请求。但是不要紧,因为在实际上能力在 当前时间已经被最大使用,不可能再为其他的子节点peer提供数据下载,可以 认为暂时没有能力再对外提供数据。此时可以给予否定答复,告诉对方我不能 够提供给你。也就是说,此时,该发送数据端对于其他优先级低的接收数据端 下载请求,暂不提供数据,拒绝下载;而接收数据端在3-6秒内检测出实际下 载速度小于正常速度的一半时,该接收数据端会主动断开与发送数据端的连接, 重新找寻数据源。
此外,具体的最大能力值("最大连接数"),计算完成之后,还要直接统计 一次当前的发送数据总和,通过将所有下载peer的下载速度累加,得到当前对 外提供数据的速度总和,称为"当前连接数"。每次下载peer添加,删除都要 更新一次当前连接数。再接到请求时,就可以直接用最大连接数与当前连接数 的差值与请求的下载速度进行比较,大于下载速度就提供数据,小于就不提供 数据。例如在所需文件下载完毕或者数据传输错误时,某一连接断开,此时由 于发送数据端的数据提供能力已经确知,发送数据端直接以最大数据提供能力 为优先级高的接收数据端提供数据下载,直至达到最大数据提供能力即可。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,根据本 发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护 范围之内。
权利要求
1. 一种基于带宽保证技术实现P2P流媒体系统的方法,包括一个接收数据端确认多个发送数据端是否具有其所需文件以及向具有其所需文件的发送数据端发送下载请求的步骤;其特征在于,还包括发送数据端以时间顺序为多个接收数据端的下载请求设定优先级的步骤;以及如下步骤在发送数据端的数据提供能力未知的前提下,(Sa1)该发送数据端直接为高优先级的一个接收数据端提供数据;(Sa2)该发送数据端在2-5秒内检测出向该接收数据端的实际平均发送速度为V1;(Sa3)设该发送数据端保证该接收数据端正常播放流媒体文件所需的正常下载速度为T,当连续2-4次检测出V1<T时,该发送数据端确认已达最大数据提供能力并确知该能力,并且暂时不为该接收数据端以及更小优先级请求的接收数据端提供数据;否则,继续该接收数据端的数据传输,并且该发送数据端为下一优先级的接收数据端发送数据,重复(Sa2)后的步骤,直至确认该发送数据端已达最大数据提供能力并确知该能力。
2、 根据权利要求1所述基于带宽保证技术实现P2P流媒体系统的方法,其 特征在于,在发送数据端的数据提供能力确知的前提下,还包括如下分步骤(Sbl)该发送数据端直接以最大数据提供能力为优先级高的接收数据端提供 数据下载,直至达到最大数据提供能力;(Sb2)该发送数据端已经达到最大数据提供能力,则该发送数据端对于其他 优先级低的接收数据端的下载请求,暂不提供数据。
3、 根据权利要求2所述基于带宽保证技术实现P2P流媒体系统的方法,其 特征在于,所述(Sbl)步骤中的情况包括所需文件下载完毕断开连接,或者数 据传输错误断开连接。
4、 根据权利要求1-3任一所述基于带宽保证技术实现P2P流々某体系统的方 法,其特征在于,包括如下步骤每一接收数据端在3-6秒内检测出从某一发送数据端的实际下载速度V2, 当VZ二时,该接收数据端会主动断开与发送数据端的连接,重新找寻数据源。
全文摘要
本发明公开了一种基于带宽保证技术实现P2P流媒体系统的方法,包括发送数据端以时间顺序为下载请求设定优先级的步骤。其中,在发送数据端的数据提供能力未知的前提下,还包括步骤该发送数据端直接为高优先级的接收数据端提供数据;该发送数据端在2-5秒内检测实际平均发送速度V<sub>1</sub>;当连续2-4次检测出V<sub>1</sub><正常速度时,该发送数据端确认已达最大数据提供能力;否则重复上述步骤直至最大数据提供能力。本发明节省了外部探测的资源,降低了共享网络的相互影响,有益于带宽的最大利用,并缩短了寻找数据源的时间,提高效率;为peer的流媒体稳定播放提供了强有力的保障。
文档编号H04L1/00GK101286928SQ20081001136
公开日2008年10月15日 申请日期2008年5月8日 优先权日2008年5月8日
发明者曲言威, 一 蒋 申请人:蒋 一;曲言威
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1