一种基于节点互连优化实现p2p流媒体系统的方法

文档序号:7684103阅读:129来源:国知局
专利名称:一种基于节点互连优化实现p2p流媒体系统的方法
技术领域
本发明涉及一种流媒体的实现方法,更具体地说,涉及一种依靠优化节点 间的互连方式改进P2P技术实现流媒体系统的方法。
背景技术
1. P2P的流媒体技术介绍
当前P2P的流媒体技术为人们所重视,其主要实现过程包括软件加载、服 务器端信息注册、获得媒体资源信息,以及实现互连、数据传输和进一步的緩 冲播放。该技术具有两方面优势
a、 不需要互联网路由器和网络基础设施的支持,因此性价比高且易于部署。
b、 流媒体用户不只是下载媒体流,而且还为其他用户上载文件,因此,这 种方法可以扩大用户组的规j模,且由更多的需求带来更多的资源。
P2P流媒体系统的网络结构,大部分系统都可以归类为计算机理论中树的方 法或概念。在这种方法中,节点被组织成某种传输数据的拓朴(通常是树,如图 l所示),每个数据分组都在同一拓朴上被传输。拓朴结构上的节点有明确定义 的关系,例如,树结构中的"父节点-子节点"关系。这一方法是典型的推送方 法,即当节点收到数据包,它就把该数据包的拷贝转发到它的每一个子节点。
图1中,上面网状结构中的父节点,也就是整个树状结构的最顶部,我们 称之为父节点服务器,其余的子节点,也就是树的枝叶部分,我们称之为peer或者peer服务器,每个peer都是由"c/s模式"客户端服务器共存的方式存在,
既下载又提供下载。
2. P2P流媒体中的关键技术
由于P2P流媒体系统中节点存在不稳定性,因此P2P流媒体系统需要在媒 体流定位技术、节点选择技术、容错以及安全机制方面有所突破。
A、 々某体流定位基于目录的P2P流媒体点播系统,其媒体文件的查找方式 是通过目录服务器来维护所有媒体服务器信息和客户信息(包括IP地址、緩沖 大小等)。当新客户的请求到达时,在目录中查找请求的媒体文件,快速返回候 选节点,候选节点可以是媒体服务器,也可以是可提供该影片片段的客户,从 而具有P2P的特性。
B、 节点的选择在一个典型的P2P覆盖网络中,网络中的节点来自各个不 同自治域,节点可以在任一时间自由地加入或离开覆盖网络,导致覆盖网络具 有很大的动态性和不可控性。因此,如何在服务会话初始时,确定一个相对稳 定的可提供一定服务质量(QoS)保证的服务节点或节点集合是P2P流Jf某体系统迫 切需要解决的问题。
C、 容错机制由于P2P流媒体系统中节点的动态性,正在提供服务的节点 可能会离开系统,传输链路也可能因拥塞而失效。为了保证接受服务的连续性, 必须采取一些容错机制使系统的服务能力不受影响或尽快恢复
D、 安全机制网络安全是P2P流媒体系统的基本要求,必须通过安全领域 的身份识别认证、授权、数据完整性、保密性和不可否认性等技术,对P2P信 息进行安全控制。对产权的控制,现阶段可采用DRM技术控制;对于基于企业 级的P2P流媒体播出系统可以安装防火墙阻止非法用户访问;因特网上的P2P 流媒体系统可以通过数据包加密方式保证安全。在P2P流々某体系统内,可采用用户分级授权的办法,阻止非法访问。
3. P2P流媒体传输的问题一
数据传4lr是网络数据共享必不可少的组成部分,更是p2p软件成功与否的关
键所在。p2p软件最典型的产品是bt下载程序,bt下载就是最大化的共享了网 络数据。bt下载在传输部分的特点是只要求数据完整,时间观念不是很强。而 在线视频观看则是在bt下载的基础上提出了更高要求,不但要求数据完整,对 时间的要求也非常的严格,传输效率的高低也就变得额外的重要。网络传输效 率的高低会直接影响到视频的观看效果。
最初的lt据传输是直接从文件头开始传输, 一直传到文件尾部为止,显而易 见,这种传输方式非常脆弱,网络出现一点不稳定的状况就会导致传输失败, 会造成大量的数据需要重传,浪费时间和带宽不说,单一的传输方式速度也不 能够保证。再后来bt下载出现了, bt采用将文件分割成多个小块的方式,每个 小块都有自己的编号,下载时只要拿着一个描述了文件分割信息的文件就可以 从任意位置开始下载,同时支持多份同时下载。当发生某些异常情况时,如中 途停止传输,此时只需要重下没有下完的小块文件,已经下载完成的就不需要 重新下了,直到将描述文件上描述的所有小块下载完成,再按照固定的顺序将 所有的文件连接在一起就可以了。 bt的传输方式较最初的下载方式有着很明显 优势,增加了断点续传,节省了带宽浪费,多点同时下载,使得下载的速度更 快,也更稳定。由于bt下载的特点,只要求将文件完整传输即可,不要求时间, 所以bt在拆分文件的时候拆分的块数比较有限,没有将小块传输,多点传输的 思想贯彻到底,效率也就有所限制。
4. P2P流媒体传输的问题二
大家可能都看过在线视频,在线视频的最大特点就是需要实时传输数据,每次观看时都会有一段緩冲时间,这是在线视频不可避免的,也是需要面对的问 题。这段时间需要完成的工作主要有两部分,首先需要定位媒体流,也就是媒 体流所在位置,媒体流可能存在一处或多处,快速的获得需要的媒体流的地址,
是第一步的主要任务;其次就是快速建立连接,下载足够播放的数据。视频软 件给人的第一感觉的好坏,就是在完成这两个任务上来体现的,长时间的等待 必然会导致使用者出现烦躁的心情,所以缩短这段时间是所有在线视频软件都 需要解决的问题。
起初的做法是在服务设备上做投资,增加服务器,增大带宽,让开始的数 据从服务器位置上下栽,用最短的时间緩冲最多的数据,緩沖够开始播放的数 据就开始播放。最好的例子就是网通公司做的5a5e在线视频点播,他就拥有足 够大的带宽,多个服务器,但是他一样会出现等待时间较长和画面不流畅的问 题。这主要是因为服务器容载上限的问题而导致的,不管你拥有多么好的设备, 都必然会出现这个无法解决的瓶颈问题。这种做法在无形中限制了软件的发展, 而且这种高投资会增加软件开发的风险,这种做法不是我们追求的。
后来的4故法是按照p2p技术的思想,大部分的数据是由peer与peer之间 进行传递,只有少量的数据是从服务器上下载。这样做大幅度的减轻服务器的 压力,最大限度的利用了 peer资源。问题也P逸之出现,像上面说的,开始观看 视频时,需要进行媒体流定位、数据传输两个步骤。peer的"持有媒体流不确 定"、"持有々某体流的长度不确定"、"提供服务能力不确定"、"网络状态不确定" 等等不确定因素,为最开始緩冲数据的部分制造了更多的困难。
p2p视频软件普遍的做法是通过协议询问来明确上面提到的不确定的因素, 这样无疑会增加数据传输前的交互时间,询问次数越多,时间就会变得越长。
由于peer行为的不确定性,^艮多的软件在处理手段不够妥当。在进行peer互联的时候做了很多无用功,连接效率低下,主要原因是准备连接时的准备工
作做的不够,对于将要发起连接的peer—无所知,在这种条件下连接效率根本 无法提高。由于媒体流分散存储在不同的peer上面,那么媒体流定位部分其实 就是peer定位,在众多的peer中找到最符合自己要求的peer,这个"找"的 过程就是媒体流定位过程。那么如何快速、准确的找到"能够提供给自己媒体 数据的peer",就成为了文件定位部分的关4定。准确的完成定位,后面的工作, 就是尽全力使用带宽,以最快速度将"播放,,所需要的数据下载过来。 5.技术概念汇总
服务器,如图l所示,包括子节点peer服务器和父节点服务器。
流々某体,是指釆用流式传输的方式在Internet/Intranet播放的i某体格式,
如音频、-现频或多媒体文件。
接收数据端,某一节点(peer)接收其他服务器提供的数据,该节点(peer)
称为接收数据端。
发送数据端,某一服务器为其他peer节点提供数据,该服务器称为发送数 据端。本文中发送数据端既包括正在发送数据的节点,也包括相对接收数据端 可以发送数据的节点。

发明内容
本发明节点互连优化部分的一项非常重要的工作就是前期的准备工作,在 还未与对方建立连接之前,首先将对方的不变因素掌握,再进行连接,连接效 率就会明显得到提高。因此本发明主要针对上述"P2P流媒体传输的问题二"予 以解决,具体目的如下
1、连接前快速准确的完成々某体流定位,明确的区分出自己需要的々某体流,可能需要一个或多个媒体流,每个媒体流对应的向哪个具体的peer进行请求。
2、 建立连接,以最快的速度与目的peer建立流供应关系。
3、 做好防范,预防可能出现的流供应间断的情况,在peer不可用的情况 下,做到及时更换。
在现有技术的P2P流媒体系统一般都包括多个发送数据端和接收数据端。 实现过程大体为软件加载、信息注册、互联及传输流媒体文件,以及接收数 据端緩冲播放流媒体文件。本发明为了解决上述问题,设计了了一种基于节点 互连优化实现P2P流媒体系统的方法,在传统P2P流媒体系统的过程中还包括 如下步骤(Sl)每个节点将节点状态记录成唯一的节点标识,所述节点标识包 括ip地址、正在监听的udp端口、 tcp端口、网络状态、所拥有的流々某体文件; (S2)每个节点将其节点标识注册到跟踪服务器;(S3)所述跟踪服务器根据注 册时间和播放流媒体文件的不同向接收数据端节点返回拥有该接收数据端节点 所需文件的其他节点的节点标识信息;(S4)接收数据端节点根据返回的其他节 点标识中的网络状态在自身与部分其他节点之间建立数据通道并选择通道传输 数据。
本发明基于节点互连优化实现P2P流媒体系统的方法,其改进在于,在步 骤(S2)中,跟踪服务器根据注册时间并以不同流々某体文件分不同目录的方式存 储各个节点标识;在步骤(S3)中,返回信息中的其他节点所拥有的文件长度需 要足以满足该接收数据端的使用。
本发明基于节点互连优化实现P2P流媒体系统的方法,在传统P2P流媒体 系统的实施过程中还包括如下步骤
(1)拆分文件将发送数据端待发送的流媒体文件以每秒钟具有的帧数n为 基准拆分成n份小文件,依次编号为m,即m取l至n;其中,第m份小文件按时间顺序存储流i某体文件中每秒内相应的第m帧数据。
(2) 数据传输在接收数据端和发送数据端之间建立数据传输通道,传输n 份小文件。
(3) 緩沖播放接收数据端将緩沖下载的每一帧完整数据按播放顺序重新排 序后播放。
上述实现P2P流^ 某体系统的方法,其进一步改进还在于,在数据传输过程 中,同一时间内接收数据端与l-4n个发送数据端建立数据传输通道,并选择p (p《n )条用于分别传输上述n份小文件。
此外,步骤(S4),在接收数据端返回的信息中,拥有同一份小文件的发送 数据端数量最少,则接收数据端优先与这些发送数据端中的节点建立数据通道, 并选其中一条用于传输这份小文件。而且在所有已建立的数据传输通道以及正 在传输的小文件中,某一通道传输小文件的份数最少,则优先选择该数据通道 用于传输其他份未被传输的小文件。
优选方式下,接收数据端为每一份小文件与2-4个发送数据端建立数据传 输通道,选择其一用于传输该份小文件,此时其他通道作为"热备"用于快速 恢复断点续传。即当该条正在传输数据的通道终断时,2-4条中的其他一条通 道继续传输该份小文件。
上述实现P2P流媒体系统的方法,其进一步改进还在于,数据传输过程中 要求每份小文件按顺序发送/接收数据。并且优选方式下,发送数据端将每一帧 的数据拆分成2-3块用于传送;相应的,在接收数据端为每一帧建立緩沖区用 于整合上述2-3块数据,整合成完整一帧的数据后进行緩冲播;改。
此外,本发明的方法,其改进还在于,在接收数据端,接收的某一份小文 件,如第m份小文件,其数据量较正常播放所需的数据量多60-180帧时(快出l-3分钟的播放数据),此时,需要中止第m份小文件的传输;而后待某一时刻 重新继续下载该份小文件(这一时刻的3-IO秒后将会需要第m份小文件中未下 载的数据用于緩沖播放)。
本发明基于节点互联优化实现P2P流媒体系统的方法,针对每个peer进行 跟踪管理,将peer大部分的信息存储在管理器上,可以在获得peer的同时获 得这些peer的基本情况信息;省去协议询问的步骤,避免浪费,让緩冲的这段 时间全力去緩沖媒体数据。因此本发明具有如下有益效果
1、 准备工作充分,快速准确的文件定位,有效的缩短了 peer互联的耗用 时间,缩短了初始播放时的耗用时间;
2、 连接时,同时向多个peer发起连接,增加了连接的成功性,提高了连 接效率,保障了流供应关系的快速建立;同时向多个peer发起连接,比"一个 peer, —个peer的连4妄"库毛用的时间更短。
3、 peer资源的合理使用,将数据源均衡的*在多个peer上,对于本地 下载而言,更加稳定,对于流断开后的流数据补偿,也能够更加迅速,提高了 数据下载的稳定性。
4、 peer断线的防护手段,有效地防范流传输过程中突然断开对本地造成的 影响,为本地的流数据的稳定下载提供了 一项强有力的保障。
此外本发明基于流^ 某体文件的拆分方式实现数据传输,因此还进一步具有 如下有益效果
5、 采用小包传输,小而多的数据能够最大限度的利用了网络带宽,并且传 输速度更加稳定,为视频连续稳定的播放提供保障。
6、 采用小包传输,在数据中断后续传时,能够更加精确地接续数据的位置, 提高了断点续传的效率,大大缩短了数据接续所需的时间。7、网络异常时,肯定会出现垃圾数据,采用小包传输可以有效的控制垃圾 数据的产生,并有效降低了垃圾数据量,提高了网络传输的效率。


图1是现有技术P2P系统的网络结构示意图; 图2是拆分及传输流媒体文件的说明示意图3是本发明在数据传输通道中选择"流"的一种实施例情况示意图。
具体实施方式
一、必要概念介绍
Peerid: Peer的-舉一才示"i只,p舉一的表示了一个peer,牙尔为peerid,通过一 个字符串来表示Peer id=ip地址+udp协议端口 +tcp协议端口 +网络状态+存储 流媒体文件位图(所需流媒体文件的信息)。
媒体流文件一一将原媒体文件,按照特定的拆分规则,拆分成多个文件, 每个文件称之为一个媒体流文件。拆分后媒体流文件的数量,则根据原文件的 每秒钟播放的帧数来确定,如24帧/每秒,拆分后就会形成24个文件,用0-23 来进4亍编号,加以区别。
流一一在网络(tcp)传输的数据的过程中,数据就会向水一样不间断的流 向对方,此处为了形象将一个媒体文件称之为一条流。每条流的传输是相同的, 本文件中只说明 一条流的传输过程。
位图简单理解就是一个int值(整型值),每个int值有4个字节,也就 是32位,通过对32位置0或1来表示不同的含义。此处使用这个int值来表 示peer在观看一个影片时将会硬盘存储那些留媒体文件,如緩存0-4个流媒体文件,就会在32位的前5位置1,表示存储了 0-4的媒体文件。
Tracker服务器或者称"跟踪服务器",功能主要是跟踪每个peer的状态。 peer在禎:激活后,首先会向tracker进行注册,tracker会将它的peerid存储 在相应的4某体文件类别中,peer会在观看影片的过程中间隔性的进行激活,并 报告观看进度,peer观看完整个影片后,会报告tracker观看完毕。另一个功 能是将注册的peer数据信息,对外提供。 二、数据拆分技术实现P2P流媒体
请参考本申请人与本发明同日申请的中国发明专利"基于数据拆分技术实 现P2P流媒体系统的方法"。该申请作为本申请优选实施例的一部分全文引用于 此,并作为本申请的一部分进行说明。文中部分内容引用如下
P2P流媒体系统按照文件的播放时间拆分文件,即将每秒钟的数据拆分成 "n"帧。n的大小取决于原媒体文件的播放速率(如12帧/每秒,24帧/每秒, 30帧/每秒)。下文中n均表示流媒体文件每秒钟具有的帧数,以n为基准将流 媒体拆分成n份小文件,依次编号为m (1《m《n),并且第m份小文件按时间顺 序存储每秒内第m帧的数据。这里每份小文件称为一个"媒体流文件"。
具体地说,拆分时按从前向后的顺序进行编号0......n-1,将每秒钟的第0
份按照时间顺序写成一个文件,以此类推,写成n个文件。^f叚设此处拆分的文 件的播放速率是30帧/每秒,那么就需要将原文件拆分成30个小文件,如图2 所示拆分文件,每份小文件分别传输,图2中每份文件的传输,定义为一条"流"。 当然,编号也可采用1……n或其他字母表示,均为等同的方式。图2中,每条 流对应的小文件中包括相应秒相应帧的凄史据。
拆分文件后,在接收数据端和发送数据端之间建立数据传输通道,传输n 份小文件;并且接收数据端将緩冲下载的每一帧完整数据按播放顺序重新排序后播放。此外,在数据传输过程中,同一时间内接收数据端与l-4n个发送数据 端建立数据传输通道,并选择p ( p《n )条用于分别传输上述n份小文件。最优 方式为,选择其中n条通道同时分别传输上述n份小文件。当p小于n时,意 味着一个通道可以传送多份小文件,即一个通道包括了多条文件传输"流",此 时同样最好保证n条"流"同时分别传输n份小文件。
优选方式下,在数据传输过程中每份小文件按顺序(相应的时间顺序)发 送/接收数据;并且发送数据端将每一帧的数据拆分成2-3块传输,在接收数据 端为每一帧建立緩冲区用于整合上述2-3块数据,整合成完整一帧的数据后进 行緩沖播放。
此外,优选方式下,上述接收数据端为每一份小文件与2-4个发送数据端 建立数据传输通道,同一时刻仅选择其中一条用于传输这份小文件形成一条 "流",此时其他通道作为"热备,,用于快速恢复断点续传。即,当正在传输数 据的通道终断时,2-4条中的其他一条继续传输该份小文件,从而实现断点续 传功能,直至下载完毕。
此外,当n份小文件中的一份或多份的传输效率过快,即接收数据端接收 的某一份小文件其数据量较正常播^t所需的数据量多出60-180帧时(快出1-3 分钟的播放数据)。此时,需要中止这些份小文件的传输,而后待某一时刻重新 继续下载这些份小文件,而这一时刻是其3-10秒后将会需要这些份小文件中未 下载的数据用于緩冲播放。例如, 一般情况下, 一份小文件的传送速度l帧/秒 即可保证流媒体文件的正常播放,但是当某一时刻,緩冲区的某份小文件的数 量较正在播放的时刻快出l-3分钟数据即60-180帧,此时中止该份小文件传输。 如果快出l分钟,则在50-57秒之后继续利用原通道或其他通道下载该份文件; 如果快出2分钟,则在110-117秒之后继续利用原通道或其他"热备"通道下载该份文件;如果快出3分钟,则在170-177秒之后继续下载该份文件.最优方 式为,选择2分钟为基准中断这条较快"流"的传输。
参考图2,为了说明传输过程,分别从发送数据端和接收数据端两个方面进 行说明。
发送数据端每次从文件中读取数据时,按照拆分时纪录的帧大小进行读 取,读入与帧相同大小的緩冲区。此处,为了实现小块数据快速传输的目的, 一帧的数据还会继续分解,拆分成指定的几个小块数据,在结束部分加上帧结 束标记。每次发送数据时以块为单位发送,按拆分块时的拆分顺序,每次发送 一块,并按顺序发送。为了保证传输数据的安全性,底层在实施传输时,会将 udp协议传输包装成类似于tcp协议的安全传输(如发送端发送数据时按照1,
2, 3, 4, 5的帧编号发送数据,对方接收时就肯定是l, 2, 3, 4, 5的顺序, 可以出现丢失,如只接到了 1, 2, 3,肯定不会出现l, 2, 4, 3, 5或2, 1, 4,
3, 5等的情况)。传输控制部分只需要^^姿照顺序将每一块数据全部发送,底层传 输就会保证对方能够按顺序接收。不必考虑中间数据丟失的情况,如果中间出 现发送失败的情况,那么可以确定这种情况是对方的网络出现了问题,并且是 属于网络断开等无法解决的网络异常问题,立即停止向对方发送数据,并删除 对方peer存在于本;也的一切4言息。
接收数据端接收数据时,按照拆分文件时纪录的帧大小来建立緩冲区, 每帧数据对应一个独立的緩沖区。此处的緩沖区的作用是将"隶属于一帧的多 个小块数据"还原成原来的帧数据。接收到标记了帧结束标记的块数据时,当 前帧数据整合完毕,开始下一帧数据整合,以此类推。由于传输层保证了数据 的接收顺序与对方的peer的发送顺序相同,不存在接收的两帧数据位置颠倒, 或中间数据丟失的情况,在整合帧数据时就非常简单了。假设从最开始的位置接收,创建一个与帧大小相同的緩冲区,准备接收数据,最先接收的是第0帧 的数据,首先要求接收的数据隶属于第0帧,不符合要求,说明在传输层保障 传输顺序的前提下,对方出现了异常,断开连接,寻找其他的数据源下载。符 合要求再继续判断这块数据是否有结尾块标记,没有,将块数据写入緩沖区,
等待接收下一块数据;有,说明当前帧数据接收完毕,将块数据写入緩冲区, 并将緩沖区提交到数据整合部分;创建一个新的緩沖区,等待接收下一帧数据, 过程同上,直至整个下载文件接收完毕为止。
数据整合部分以上描述了 一条流的传输过程,n条流的传输规则是相同的, 每条流接收到完整的一帧数据后,都会传递到统一的位置进行整合。之所以需 要整合是因为在文件拆分时,已经将原文件的数据排列顺序作了很大的改变, 无法直接传递给播放器,需要进行还原。还原的步骤是拆分的逆运算,将所有 的数据重新排列组合,如图2所示,从第0条流的第1帧数据开始,接着是第1
条流的第1帧数据,第2条流的第1帧数据,第3条流的第1帧凝:据,........,
第29条流的第1帧数据,第0条流的第2帧数据,第1条流的第2帧数据,第
2条流的第2帧数据,........第29条流的第2帧数据,第0条流的第3帧数据,
以此类推,直至文件结束。
拆分文件时优选"以每秒钟具有的帧数n为基准,,,当然根据需要以"以0. 5 秒内具有的帧数n为基准"或"以2-3秒内具有的帧数n为基准"均为相同构 思方案,为等同方式,可以根据带宽的大小选择适用。本发明并非局限于文件 拆分。
以上引用了本申请人与本发明同日申请的中国发明专利"基于数据拆分技 术实现P2P流媒体系统的方法"。该申请作为本申请最优实施例的一部分全文引 用于此,下面具体说明本发明的实施方式。三、本发明实施例具体说明
每个peer (节点)在将自己对外提供之前,都首先将自己能够确定的状态 组成一个peerid (节点标识),作为自己的唯一标识。peerid中包括的信息都 是一旦确定就基本不会改变的信息,其中包括了自己外网ip地址,正在监听的 udp端口, tcp端口,网络状态,所拥有的流媒体文件。上述网络状态可以利用 IST丽标准中的nat状态表示。上述所拥有的流媒体文件优选方式下以存储流媒 体文件位图的方式存在(具体位图的概念参据第一部分"必要概念介绍");此 外,优选方式下,peerid包括该节点存储所有流纟某体文件中的3-6个文件即可, 而且可随机选取。以上述第二部分"数据拆分技术实现P2P流媒体"的方式为 例,假设一个流媒体文件被分成30份小文件,则上述节点"所拥有的流媒体文 件"是指某一节点拥有30份小文件的那些小文件,用一个32位4字节二进制 整型值表示即可。具体方式为在相应"位"置"1"表示该份小文件为该节点 所拥有,置"0"则表示没有,从而可推导出该节点拥有那些小文件。
peerid生成后向tracker服务器进行注册,根据注册时间,注册在与自己 观看同一影片的目录下,这一步是实现文件定位的前提条件,也就是做的准备 工作。
每个注册的peer在返回时,都会获得自己观看影片所需要的peer信息, 返回的具体信息由tracker进行分配。tracker分配时会才艮据,;現看的影片,以 及注册时间进行分配,返回信息中的这些peer都拥有该节点本身需要的々某体流 文件,并且存储的文件长度足够其观看使用。
从而每个接收数据端能够确认多个发送数据端是否具有其所需文件,并向具 有其所需文件的发送数据端发送下载请求。本文中某些表述,无论作为发送数 据端还是接收数据端,都以"peer"表示,以达到简化的目的,而根据上下文的语义,可以清楚的区分peer是作为发送数据端还是接收数据端;而且当作为 发送数据端时,下文中的"peer"也可指代父节点服务器。
Peer资源合理使用说明每个peer存储的媒体流文件都是随机选择的,并 且可以同时向一个peer下载多条"流",即在同一发送数据端下载多个i某体流 文件。在peer数量少的情况下就会产生,有的peer申请了多条流,有的peer 空闲或只申请了一条流。为了下载时的供应稳定,防止某个peer突然离线造成 本地下载数据同时断开多条连接,造成比较大的影响,使用peer资源下载时, 需要考虑下载的数据源均衡使用。例如
1、 假设一个peer表示緩存了 0-3四个流媒体文件,而自己拥有的资源中第 O条流只有这个peer拥有,第1、 2、 3三条流都有很多个peer存储,那么在使 用peer资源时,就要首先从这个peer处下载第0条流,其他的三条流再根据 情况,向不同的peer进^f亍下载。
2、 假设当前々某体文件共被拆分成了 IO个流文件,获得peer信息资源时, 只获得了 5个peer,那么在选择下载数据时,就要尽量的平均使用这5个peer, 尽量估支到每个peer下载两个流文件。
在获得peer(peerid)信息后,为了在使用的时候合理使用资源,需要对当 前持有的peer资源进行统计,统计时主要依照peer的"存储流J 某体文件位图" 来统计,假设当前观看的影片共被拆分成了 IO个流媒体文件,那么统计后就可 以得到结果peer数量为假定值。
根据上面的假定值,在此处说明选择peer的过程,如图3所示实施例,图 中,上面一排表示编有标号的媒体流文件0……9,下面一排表示对应的流文件 被几个peer 所拥有,或者说有几个发送数据端(peer)拥有该流文件。 一艮据统计 可以按照IO条流各自拥有的peer的数量进行排序,从少到多,顺序是8, 9, 5,7, 6, 3, 4, 2, 1, 0。使用peer资源进行下载时,首先为第8条流文件进行 选择。为了预防peer的异常下线行为,初始连接下载时,都会同时连接2-4个 peer。目前第8条流只有两个资源,全部连接,并^f吏用连接最快的那个peer开 始下载,如果全部连接失败,为了保证数据的供应,会直接向种子服务器(种 子服务器拥有全部的IO条流文件,供应下载)发起下载请求。接下来为第2位 的第9条流,选择peer连接,此时,需要考虑第9条流拥有的3个peer在第8 条流连接时,是否被使用过,如果优先连接没有被使用过的peer,同样需要选 择2-4个peer进行连接,按顺序依次为5, 7, 6, 3, 4, 2, 1, 0,选择peer 连接,处理手段与第9条流相同,按照这种方式与连接peer连接,基本就可以 达到Peer资源合理使用,优化下载链路的目的。同时,由于前期在连接前的准 备工作充分,文件定位的工作也在上面的选择中完成了。
通过上述实例可见,选择数据通道实现传输"流"的原则为
(1) 在接收数据端返回的信息中,拥有同一份小文件的服务器数量最少,则 接收数据端优先与这些服务器建立数据通道,并选其中一条用于传输这份小文 件。例如图3,第八个小文件只有两个peer拥有,因此接收彩:据端优先与这两 个peer建立数据通道,并择一实现"流"传输。
(2) 在所有已建立的数据传输通道以及正在传输的小文件中,某一通道传输 小文件的份数最少,则优先选择该数据通道用于传输其他份小文件。例如,假 设一个流i某体文件被分成8份小文件,并建立了两个数据通道,此时, 一个数 据通道传输4份小文件,而另一数据通道传输另3份小文件,还有一份小文件 没有被传输,则这份没有被传输的小文件优先选用第二条(正在传输三份小文 件)的通道实现"流,,传输,因为3小于4,从而达到尽可能平均利用服务器的 目的。建立连4妄时,可才艮据peerid中的nat状态(网络状态,参见7〉开标准 STUN/RFC3489和UPNP ),直接与本地nat状态进行比较,判断出连接是否可以 建立。(例如本地nat状态为udp一symmetr ic,对方nat状态也是udp-symmetric, 那么这种情况,根本不需要发送连接信息,可以直接得到无法连接的结果。)可 以建立时建立连接,开始下载数据,下载数据请求由对方peer的服务器端保障 效率,传输数据时,有传输层进行保障,此处都不需要担心。
断点续传
由于peer行为的不可预测性,在使用peer资源时,需要时刻的防范peer 的突然下线行为,防止流文件供应突然断开时,本地数据流的长时间间断所造 成的影响。上面我们在选择peer连接时,曾提到过,为一条流选择连接peer 时,会选4奪2-4个peer进行连接,但是真正用于下载数据的只有一个peer,其 他的peer连接后,不会断开,而是作为这条流的备选连接的形式存在。备选peer 的特点保持连接,但不下载数据;每条流都会有l个正在下载的peer和多个备 选peer,当正在下载数据的peer突然断开时,马上去备选peer中选出一个继 续下载,并且会随时补充备选peer。当正在下载数据的peer突然断开,并发现 自己没有备选peer时,会马上启用种子地址,去种子服务器下载数据。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局 限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,根据本 发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护 范围之内。
权利要求
1. 一种基于节点互连优化实现P2P流媒体系统的方法,P2P流媒体系统包括多个发送数据端节点和接收数据端节点,其实现过程为软件加载、信息注册、互联及传输流媒体文件,以及接收数据端缓冲播放流媒体文件;其特征在于,上述过程还包括如下步骤(S1)每个节点将节点状态记录成唯一的节点标识,所述节点标识包括ip地址、正在监听的udp端口、tcp端口、网络状态、所拥有的流媒体文件;(S2)每个节点将其节点标识注册到跟踪服务器;(S3)所述跟踪服务器根据注册时间和播放流媒体文件的不同向接收数据端节点返回拥有该接收数据端节点所需文件的其他节点的节点信息;(S4)接收数据端节点根据返回的其他节点标识中的网络状态在自身与部分其他节点之间建立数据通道并选择通道传输数据。
全文摘要
本发明公开了一种基于节点互连优化实现P2P流媒体系统的方法,包括如下步骤(1)每个节点记录节点标识,包括ip地址、正在监听的udp端口、tcp端口、网络状态、所拥有的流媒体文件;(2)将节点标识注册到跟踪服务器;(3)跟踪服务器根据注册时间以及流媒体文件的不同向接收数据端节点返回其他节点信息;(4)接收数据端节点根据返回信息与其他节点建立数据通道并选择通道传输数据。本发明针对每个节点进行跟踪管理,有效的缩短了peer互联耗用的时间,提高了数据下载的稳定性。
文档编号H04L12/56GK101286927SQ20081001135
公开日2008年10月15日 申请日期2008年5月8日 优先权日2008年5月8日
发明者曲言威, 一 蒋 申请人:蒋 一;曲言威
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1