CN101127619A - 一种基于超级节点的p2p直播方法 - Google Patents

一种基于超级节点的p2p直播方法 Download PDF

Info

Publication number
CN101127619A
CN101127619A CNA2007100534297A CN200710053429A CN101127619A CN 101127619 A CN101127619 A CN 101127619A CN A2007100534297 A CNA2007100534297 A CN A2007100534297A CN 200710053429 A CN200710053429 A CN 200710053429A CN 101127619 A CN101127619 A CN 101127619A
Authority
CN
China
Prior art keywords
node
super
super node
partnership
server
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
Application number
CNA2007100534297A
Other languages
English (en)
Other versions
CN100558042C (zh
Inventor
王芙蓉
杨军
黄辰
莫益军
明久强
卢正新
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CNB2007100534297A priority Critical patent/CN100558042C/zh
Publication of CN101127619A publication Critical patent/CN101127619A/zh
Application granted granted Critical
Publication of CN100558042C publication Critical patent/CN100558042C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明涉及一种基于超级节点的P2P直播方法,该方法包括:节点向服务器发送期望节目的节点加入请求信息,服务器处理所述节点加入请求消息完成所述节点加入流媒体直播网络;以及所述节点成功的加入到流媒体直播网络之后,所述节点选择与自己在物理上相近的其他节点建立伙伴关系,再进行数据的传输。因此,本发明使数据在底层物理网络上相近的普通节点之间进行传输,减少了数据转发过程中的跳数以及时延;又由于本发明采用了分层的系统架构,从而降低了主服务器负担,减少了带宽的消耗;同时本发明将节点的管理与数据的传输进行了分离,使维护更加容易。

Description

一种基于超级节点的P2P直播方法
技术领域
本发明涉及互联网通信领域,尤其涉及一种基于超级节点的对等网络(peer to peer,P2P)直播方法,以实现实时媒体传输。
背景技术
流媒体技术是一种用流式传输方式在互联网上播放音频、视频等多媒体数据的技术,用户可以边下载边观看,不需要将整个文件下载之后再观看。流媒体技术最初采取的是传统的客户端/服务器(C/S)模式,多媒体数据存放在服务器上,任何客户端想要获得媒体数据,都必须从服务器上获得一份完整的拷贝。在这种模式中服务器必须给每个用户都发送一份完全一样的数据,随着用户增加,向大量用户发送庞大的多媒体数据会使服务器不堪重负,造成服务器端的拥塞。
为了缓解传统的C/S模式中服务器的压力,代理服务器技术被应用于网络媒体发布中。代理服务器将一些频繁访问的数据存储在本地存储器中,当用户通过代理服务器访问时,如果代理服务器的缓存中有用户需要的数据,就无需访问远程的服务器,只通过本机的缓存为用户服务。代理服务器分担了一部分用户访问,有效的降低了主服务器的压力,可以提高用户的响应速度,并且可以节省网络资源。但是代理服务器的部署会增加媒体发布的硬件成本,保持代理缓存中的内容和主服务器内容的同步也是一个难题。
内容发布网络(Content Distribution Network,CDN)是一个建立在互联网之上由分布在不同区域的节点服务器群组成的虚拟网络。CDN的核心思想是将内容从中心推到边缘靠近用户的地方,这样不但有效提高了用户的访问内容的性能,而且有效减轻了中心设备和骨干网络的压力。通过CDN,可以将内容服务从原来的单一中心结构变为分布式的结构。CDN系统有效的解决了代理服务器技术中代理缓存和主服务器间的内容同步问题。但是CDN仍旧是基于C/S结构的分布式媒体服务技术平台,跟地域化管制紧密相连,因此很难降低其扩展的成本,CDN技术在高峰时期对突发流量的适应性、容错性方面仍然存在着一定缺陷,如流媒体服务器带宽占用大,服务器处理能力要求高等。
以上的技术都是在C/S的基本结构上进行发展的,所以不能避免服务器本身带来的系统瓶颈与单点故障的问题。为了解决传统的C/S结构存在的问题,P2P技术得到了广泛的发展,在P2P系统当中不再像传统的C/S结构那样只有服务器来提供数据供用户下载,用户在下载的同时也可以为其他用户提供服务,而且在现实应用当中更多的数据是在用户之间进行传输。随着BT为代表的P2P下载技术流行,P2P技术越来越被人们所关注。
但是现有的P2P流媒体技术中没有考虑到覆盖网络和底层物理网络的拓扑匹配问题,节点之间在逻辑的覆盖网络当中很相近,但是很可能在物理网络中相差很远,这样对于延时和传输的速度会较大的影响,用户得到的服务质量不能得到有效的保证,同时系统中的服务器除了进行媒体数据的分发外还要对整个系统进行控制管理,有些系统专门提供了控制管理服务器,但是这样又增加了硬件的投入成本。
发明内容
本发明的目的是为了解决现有技术中存在的覆盖网络和底层物理网络的拓扑匹配问题,提供了一种基于超级节点的P2P直播方法。
为了实现上述目的,本发明提供了一种基于超级节点的P2P直播方法,该方法包括:
节点向服务器发送期望节目的节点加入请求信息,服务器处理所述节点加入请求消息完成所述节点加入流媒体直播网络;以及
所述节点成功的加入到流媒体直播网络之后,所述节点选择与自己在物理上相近的其他节点建立伙伴关系,再进行数据的传输。
进一步地,基于超级节点的P2P直播方法还包括:所述节点退出所述流媒体直播网络。
进一步地,所述服务器处理所述节点加入请求消息完成所述节点加入流媒体直播网络具体为:
服务器根据节点加入请求信息中所述节点要观看的节目,到节目列表中去匹配超级节点;
服务器将匹配成功的所述超级节点的信息返回给所述节点,所述节点根据所述超级节点的信息,向所述超级节点发送所述节点加入请求消息,所述超级节点响应该节点加入请求消息以将所述节点作为普通节点加入流媒体直播网络,并向所述节点返回所管理的普通节点的信息。
进一步地,所述匹配超级节点的过程具体为:
将所述节点的标志值与服务器列表中的超级节点的标志值进行比较,如果相同,则节点与该超级节点处于同一个物理网络中或者在物理上相近完成匹配。
进一步地,所述节点选择与自己在物理上相近的其他节点建立伙伴关系的过程具体为:
所述节点向超级节点发送建立伙伴关系请求;
超级节点根据所述建立伙伴关系请求返回自己的伙伴信息;
所述节点收到超级节点返回的伙伴信息后,从中选择与自己在物理上相近的节点并请求作为其伙伴;
被请求节点判断有足够的带宽并且负载没有超过限定值,则与请求节点建立伙伴关系。
进一步地,在所述节点向超级节点发送建立伙伴关系请求和超级节点根据所述建立伙伴关系请求返回自己的伙伴信息之间还包括:
当超级节点收到建立伙伴关系的请求后,判断与所述节点建立伙伴关系后负载没有超过限定值,并且可用带宽满足所述节点的需求,则和所述节点建立伙伴关系。
进一步地,在所述被请求节点判断有足够的带宽并且负载没有超过限定值,与请求节点建立伙伴关系之后还包括以下步骤:
所述节点判断自己的伙伴数目是否足以满足自己的需求,如果伙伴的数目仍然比较小,所述节点向与自己之间延时小的节点发送建立伙伴关系请求,建立伙伴关系列表。
进一步地,所述节点退出所述流媒体直播网络的过程包括以下步骤:
所述节点向其伙伴和其所属的超级节点发送离开消息,通知所述伙伴和所述超级节点将要离开所述流媒体直播网络;
所述伙伴收到所述离开消息后将所述节点的信息从伙伴列表中删除,所述超级节点收到所述离开消息后,将所述节点的信息从管理的节点列表当中删除,同时通知管理下的其他普通节点以便更新它们的节点列表。
进一步地,所述服务器处理所述节点加入请求消息完成所述节点加入流媒体直播网络具体为:
服务器将所述节点作为超级节点加入到超级节点列表中,并通知所述节点以超级节点的身份加入流媒体直播网络;以及
所述节点以超级节点的身份加入的流媒体直播网络中。
进一步地,所述节点选择与自己在物理上相近的其他节点建立伙伴关系的过程具体为:
当所述节点作为超级节点时,所述超级节点将自己所管理的普通节点中可用带宽较大并且性能好的节点加入到自己的伙伴列表中,与之建立伙伴关系。
进一步地,所述节点选择与自己在物理上相近的其他节点建立伙伴关系的过程具体为:
当所述节点作为超级节点时,所述超级节点向网络中的节点请求建立伙伴关系;
被请求节点判断自己的负载没有超过限定值,且带宽比较充足,和超级节点建立伙伴关系;
被请求节点将已经与自己建立伙伴关系的信息返回给超级节点;
所述超级节点从返回的信息中选择与自己之间延时小的节点发送建立伙伴关系的请求,建立伙伴关系列表。
进一步地,所述超级节点退出所述流媒体直播网络的过程包括以下步骤:
所述超级节点向其伙伴和服务器发送离开消息,通知伙伴和服务器自己将要离开网络,所述伙伴收到所述离开消息后将所述超级节点的信息从伙伴列表中删除,服务器收到所述离开消息后,在该超级节点管理下的普通节点列表中选取一个性能好的作为新的超级节点;
服务器将其他普通节点的信息发送给新的超级节点以使其来构建节点列表;
所述超级节点向所述普通节点发送通知消息通知它们由新的超级节点来管理;
普通节点根据所述通知消息更新自己节点列表当中的超级节点信息。
本发明采用了服务器与超级节点两层管理模式,充分的利用了客户端的性能,尽量使数据在底层物理网络上相近的普通节点之间进行传输,降低了服务器与超级节点的负担,减少了带宽的消耗,同时本发明将节点的管理与数据的传输进行了分离,使维护更加容易。本发明中超级节点与普通节点都只需要管理那些自己需要的节点信息,并能够很好的动态的适应网络的变化,具有良好的可扩展性。
附图说明
图1为本发明基于超级节点的P2P直播方法所使用的P2P直播系统的结构图;
图2为本发明基于超级节点的P2P直播方法的流程图;
图3为详细介绍节点加入阶段的两种情况的流程图;
图4为描述超级节点与普通节点建立伙伴关系的过程;
图5为节点与伙伴节点之间的数据传输流程图。
具体实施方式
如图1所示为本发明基于超级节点的P2P直播方法所使用的P2P直播系统,本发明的P2P直播系统是由服务器1,超级节点2(Super Node,SN)和普通节点3(Ordinary Node,ON)组成的三层体系结构。其中,如图所示普通节点3可以为位于局域网内。
服务器1主要完成媒体数据的分发,管理超级节点2,处理新节点的请求信息功能。数据分发对视频流媒体数据进行分段处理,并记录相关的分段信息,将流媒体数据传输给请求的节点。管理超级节点包括与超级节点进行通信和对超级节点列表进行管理,服务器维护一个超级节点列表,这个列表首先根据节点观看的节目对节点进行分类,对于观看同一个节目的节点再根据在网络上所处的物理位置将节点进行分类,将那些性能好的节点设为超级节点,每个超级节点管理那些在物理位置上与它相近的普通节点。服务器动态的管理这个列表,会定期的根据节点的性能从所有的节点当中选取超级节点进行替换,根据节点的加入退出动态的更新超级节点列表并维护所有节点的信息。服务器会根据自己的负载情况进行负载控制使自己的负载不会过重,从而有效的为系统提供服务。对于新加入节点的请求,服务器会根据节点所观看的节目以及所处的地理位置进行匹配,向新节点返回一个匹配的超级节点,通知其向返回的超级节点请求加入该超级节点管理的覆盖网络当中去。如果没能匹配的超级节点,服务器会通知其以超级节点的身份加入到网络当中。
超级节点2主要完成数据传输,管理普通节点3,伙伴列表管理,新节点加入请求信息的处理功能。数据传输与服务器的数据分发功能类似,不同的是超级节点除了向其他节点提供数据传输外也像普通的客户端一样进行数据的下载进行播放。超级节点维护两个表,一个是自己管理的普通节点列表,一个是伙伴列表,伙伴是指那些与自己观看同一个节目并与自己进行数据交换的节点。对于普通节点列表超级节点会根据节点的加入退出等操作动态的进行更新并将这些更新信息通知给服务器以便服务器进行节点列表的更新。对于伙伴列表超级节点也会在必要的时候对其进行更新,比如说在一定的时间段内没有找到需要的某个数据段,这时会认为自己的伙伴节点当中没有自己所请求的数据,这时就需要进行伙伴列表的更新。当有新的节点向超级节点发出请求时,超级节点会将节点的相关信息加入到自己的列表当中,通知请求节点以普通节点身份加入自己管理的覆盖网络。
普通节点3主要完成数据传输,伙伴节点列表管理功能,通信管理功能。其中数据传输和伙伴节点列表的管理功能与超级节点类似。通信管理主要是和超级节点进行通信,通知超级节点一些更新信息。P2P网络当中的节点的加入与离开是相当的频繁的,为了保证节点确实是存在网络当中的,每个普通节点都会定期的向超级节点发送自己的存活信息,当节点正常离开时也会向超级节点发送离开网络的信息,使超级节点能够及时的更新节点列表对节点进行有效的管理。
如图2所示为本发明基于超级节点的P2P直播方法的流程图。如图所示该方法包括步骤10:节点向服务器发送期望节目的节点加入请求信息,服务器处理所述节点加入请求消息完成所述节点加入流媒体直播网络;以及步骤20:所述节点成功的加入到流媒体直播网络之后,所述节点选择与自己在物理上相近的其他节点建立伙伴关系,再进行数据的传输。
即该基于超级节点的P2P直播方法首先可分为三个阶段,第一阶段为节点加入阶段即步骤10所示的内容,该节点加入阶段包括两种情况,一种为服务器根据节点加入请求信息中所述节点要观看的节目,到节目列表中去匹配超级节点;服务器将匹配成功的所述超级节点的信息返回给所述节点,所述节点根据所述超级节点的信息,向所述超级节点发送所述节点加入请求消息,所述超级节点响应该节点加入请求消息以将所述节点作为普通节点加入流媒体直播网络,并向所述节点返回所管理的普通节点的信息。另一种为:服务器将所述节点作为超级节点加入到超级节点列表中,并通知所述节点以超级节点的身份加入流媒体直播网络;以及所述节点以超级节点的身份加入的流媒体直播网络中。第二阶段为伙伴关系建立阶段,第三阶段为数据传输阶段。第二阶段和第三阶段即步骤20所示内容。
具体参见图3,下面详细介绍节点加入阶段的两种情况。如图所示,
步骤301:节点向服务器发送节点加入请求信息;
请求信息的内容包括请求节点的IP地址、监听的端口号、节点的hashID值、节点的带宽、处理器速度、内存、节点请求的节目。其中节点的hash ID值是由IP地和端口通过hash算法计算出来的,用来唯一标识节点,节点的带宽,处理器速度和内存用来计算节点的性能。
步骤302:与超级节点的匹配;
服务器根据节点要观看的节目到相应的节目列表当中去匹配超级节点,全球互联网根据网络服务提供商信息和地理信息分为多个层次,分别表示ISP,城市、小区(或者高校),建筑。这些信息可以从免费的或者商用的IP地址到网络位置信息的转换数据库中得到,根据得到的这些信息为每个节点产生网络一个位置标志值,这个标志值的长度为40位,其中0~15位表示公网和高校编号,16~31位表示城市编号,32~39位表示ISP编号。匹配过程具体是用请求节点的标志值与服务器列表当中超级节点的标志值进行比较,如果相同则认为请求节点与该超级节点在同一个物理网络中或者说在物理上它们是相近的。如果匹配成功则转步骤303,否则执行步骤307;
步骤303:返回匹配的超级节点信息;
服务器将匹配成功的超级节点信息返回给发起请求的节点,返回的信息中包括超级节点的hash ID值,IP地址,监听端口等。同时服务器将请求节点的信息加入到服务器中的该超级节点列表中。
步骤304:节点向超级节点发送节点加入请求消息;
请求节点从服务器返回的超级节点的信息当中取到超级节点的IP地址与端口号,向这个超级节点发送请求消息,消息的内容与向服务器发送的请求一样。
步骤305:超级节点处理请求:
超级节点判断节点所处的网络环境,如果检测到请求节点是处于公网即步骤3051:是否处于防火墙后,如是处于公网,则执行步骤3053:超级节点将发起请求的节点信息加入到自己的节点列表中,否则节点是处于防火墙后的节点,执行步骤3052:超级节点通知其进行NAT穿越,打开相关的服务端口,判断NAT穿越是否成功,如果成功穿越,则执行步骤3053,超级节点将发起请求的请求节点的信息加入到自己的节点列表当中,否则执行步骤3054,拒绝请求节点加入,加入失败。
步骤306:返回普通节点信息;
超级节点向发起请求的节点返回它所管理的普通节点的信息,这些普通节点的信息为以后建立伙伴关系做准备,请求节点以普通节点的身份加入的网络中去,执行步骤309;
步骤307:服务器将请求节点作为超级节点加入到超级节点列表中,通知请求节点以超级节点的身份加入网络;
步骤308:请求节点以超级节点的身份加入的网络中;
步骤309:加入过程结束。
在最开始的时候,网络中只有服务器,当第一个节点请求加入网络时,服务器会根据节点请求的节目将该节点作为超级节点加入到节点列表当中,并通知节点以超级节点身份加入到网络,这时候媒体数据只有在服务器与这个节点之间进行传输。对于以后的新节点的加入过程都是一样的。
下面介绍该P2P直播方法的第二阶段—伙伴关系建立阶段:
当节点成功的加入到网络之后,节点需要先建立伙伴关系再进行数据的传输。所谓的伙伴是指那与自己观看相同的节目的并且愿意与自己进行数据交换的节点,在本发明中节点不是与网络中所有的观看同一个节目的节点建立伙伴关系,因为网络的规模很大,网络中观看同一个节目的节点很多,一个节点并不需要与所有的节点进行数据的交换即可以满足自己的需求。节点在建立伙伴关系的过程中会通过选择机制来尽量选择那些与自己在物理上相近的节点作为自己伙伴进行数据的交换,这样大大的减少了服务器与超级节点的压力,减小了底层物理传输的带宽与延时。
在上述过程中,发起节点加入请求消息的节点,在加入流媒体直播网络时,可以以超级节点方式加入,也可以以普通节点方式加入。当发起请求的节点加入流媒体直播网络后,需要建立伙伴来进行数据交换。下面详细描述超级节点与普通节点建立伙伴关系的过程,如图4所示:
步骤400:判断节点类型分为普通节点和超级节点,其中普通节点建立过程包括:
步骤401:发送建立伙伴关系请求。
所述节点首先向自己所属的超级节点发送建立伙伴关系的请求。因为服务器将网络中的节点已经按照节目对节点进行了分类,所以在同一个超级节点管理下的普通节点与超级节点观看的都是同一个节目,这样普通节点可以直接向超级节点请求建立伙伴关系。
步骤402:超级节点判断是否建立伙伴关系
超级节点是普通的用户,除了提供服务外还要做一些自己的事情,所以不能够将超级节点的所有的硬件资源都用来提供服务,本发发明的目标是使超级节点提供服务而不影响超级节点的正常工作,让超级节点自己感觉的是并没有消耗太多的资源。所以在实践中对超级节点的负载要进行有效的控制,使超级节点的负载值限定一个范围内。
当超级节点收到建立伙伴关系的请求后,判断自己的负载与可用带宽情况,如果与请求节点建立伙伴关系后负载没有超过限定值,并且可用带宽比较充足可以满足节点的需求,则执行步骤403:和请求节点建立伙伴关系,否则就不与节点建立伙伴关系,执行步骤404。
步骤404:超级节点返回自己的伙伴信息
无论请求节点与自己所属的超级节点是否建立了伙伴关系,此时请求节点的伙伴数目是不足以满足需求的,所以超级节点会将已经与自己建立伙伴关系的信息返回给请求节点,与超级节点建立伙伴关系的节点可能有服务器、其他超级节点和自己管理的普通节点,为了保证数据尽量的物理上相近的节点之间进行交换,超级节点会优先选择自己管理的普通节点返回给请求节点。
步骤405:节点收到超级节点返回的伙伴信息后,进行选择与自己在物理上相近的被请求节点作为伙伴;
请求节点在收到超级节点返回的节点信息后,并不是立即向它们发出建立伙伴关系的请求,而是进行一定的选择以保证伙伴与自己之间是相近的。选择的过程是请求节点检查自己与这些节点之间的延迟,排除那些延迟比较大的节点,向剩下的节点发送建立伙伴关系的请求。
步骤406:被请求节点判断是否建立伙伴关系
与超级节点一样也要对普通节点的负载进行一定的控制,接收到请求的节点同样检查自己的负载与带宽情况,如果有足够的带宽并且负载没有超过限定值,就与请求节点建立伙伴关系,否则将与自己已经建立伙伴关系的节点信息返回给请求节点。
在上述过程可以完成普通节点建立伙伴关系。
步骤407:伙伴数目是否足够
经过上述过程请求节点已经和一些节点建立了伙伴关系,这些伙伴在物理上与请求节点是相近的。此时请求节点会判断自己的伙伴数目是是否足以满足自己的需求,如果伙伴的数目仍然比较小,请求节点会向自己所属的超级节点的其他伙伴中那些与自己延时小的节点发送建立伙伴关系请求。
步骤408:建立伙伴关系列表
重复上述过程,即重复执行步骤401至步骤407,请求节点最终形成自己的伙伴关系列表,这些伙伴在物理上是相近的,可以使传输延迟比较小。
其中,超级节点建立过程包括:
超级节点建立伙伴关系的过程和普通节点建立伙伴关系的过程有很多相似的地方,这些地方将不再详细的描述,主要对那些不同的地方进行描述,具体的建立过程包括两种,一种与自己管理的节点建立伙伴关系;另一种为:与网络中的某个节点建立伙伴关系,具体如图4所示,包括如下步骤:
步骤410:与自己管理的节点建立伙伴关系
超级节点将自己所管理的普通节点当中那些可用带宽比较大并且性能好的节点加入到自己的伙伴列表当中,与之建立伙伴关系。
步骤411:发送建立伙伴关系请求
超级节点首先向网络中的某个节点请求建立伙伴关系,对于超级节点来说这个节点最初的时候是服务器,对于本发明的方法中服务器主要是向超级节点进行数据的传输,给普通节点的数据传输是很少的。
步骤412:判断是否建立伙伴关系
被请求节点判断自己的负载与带宽情况,如果负载没有超过限定值,带宽比较充足,则执行步骤415被请求节点与超级节点建立伙伴关系;如果负载比较大或带宽不够,就不与超级节点建立伙伴关系,执行步骤413。
步骤413:被请求节点返回自己的伙伴信息
被请求节点将已经与自己建立伙伴关系的信息返回给超级节点。
步骤414:超级节点将返回的节点信息当中,排除那些与自己延时比较大的,向剩下的节点发送建立伙伴关系的请求,具体过程同步骤405-408,形成伙伴关系列表,重复上述过程,超级节点最终形成自己的伙伴关系列表,这些伙伴在物理上是相近的。
在建立伙伴关系之后,节点就可以向伙伴节点请求数据进行数据的交换了。参见图5示出了第三阶段—数据传输阶段的流程图。
本发明对于数据的管理采用缓存映射BM(Buffer Map)方式,这是现有的P2P流媒体普遍采用的一种数据管理方式。该方式中将视频流媒体数据分割成大小相同的数据片断,用一个缓存映射来存储相关片断的信息,说明自己对于某个数据片断的拥有情况,节点之间交换数据是通过检查彼此的BM来进行的。具体实现中每个节点都会缓存一段时间的数据,BM用一个bit来表示节点对于一个数据片断拥有的情况,1表示节点拥有这个数据片断,0表示没有这个数据片断。
本阶段节点根据需要的流媒体数据片断来对其伙伴节点进行数据片断的查询请求,被请求的伙伴节点会根据BM当中的信息查看自己是否拥有这个数据片断,如果拥有就会返回信息通知请求节点自己拥有这个数据片断,事实上拥有某个数据片断的伙伴节点往往不只一个,这样从哪个节点获取这个数据片断节点会进行选择,为了保证数据片断在截止时间之前获得,节点会选择那些与自己的延迟小的节点来进行数据交换。
如图5所示节点与伙伴节点之间的数据传输流程图,本阶段的具体步骤如下:
步骤501:形成数据片断集合
建立伙伴关系之后,节点开始请求节目,此时节点会形成一个所需的媒体数据片断相关信息的集合,因为节点需要的数据片断会随着时间的前进而不断的变化,获取到的数据片断信息会从这个集合里删除,而新的请求数据片断信息会加入到这个集合。
步骤502:节点发起数据请求
节点首先在这个集合当中选取一个数据片断然后,发起数据请求在伙伴节点当中进行查找。
步骤503:伙伴节点返回响应
伙伴节点根据节点请求的数据片断来对查看自己的BM,如果发现自己拥有这个数据片断,便向请求节点发送一个响应,告知节点自己拥有这个数据片断,如果没有这个数据片断则返回不拥有该片断的响应。
步骤504:节点选取伙伴节点
请求节点判断拥有请求数据片断的节点的数目,如果拥有该片断的节点数目大于一个,则执行步骤505在这些节点当中选取与自己延时最小的节点,如果只有一个节点转步骤506,如果没有拥有这个数据片断的节点转步骤508。
步骤506:节点进行数据传输
请求节点向选取的节点发送数据传输的请求,被选取的节点将拥有的这个数据片断传给数据请求节点。
步骤507:节点进行更新集合
请求节点收到该数据片断后从集合中将该数据片断信息删除,并根据时间信息将新的需要的数据片断的信息加入的集合当中,转步骤502。
步骤508:未查找到数据片断的处理
对于每个数据片断本发明会记录最开始发出查询请求时间,以此来跟踪数据片断从最开始查询所经过的时间。当没有找到数据片断的拥有者,判断这个时间是否超过了规定时间T如20秒,如果发现超过了这个值,则执行步骤508认为在节点的伙伴当中没有这个数据片断的拥有者,从而节点进行伙伴列表的更新,然后转步骤502,如果没有超过这个值,则直接转步骤502等待下一次查询。
本发明通过引入超级节点来分担服务器的控制负载,使服务器能够更好的为系统提供有效的媒体数据分发,系统中超级节点会管理那些与自己在物理网络上相近的节点,这样就可以使得在用户数目比较多的情况下用户基本上从那些与自己在物理上相近的用户上获得数据,从而降低了服务器的连接压力以及数据传输的延迟,这样可以大大减少底层网络带宽的耗费,提高服务质量的性能。
本发明基于超级节点的P2P直播方法除了上述三个阶段之外,还包括节点离开流媒体直播网络这个阶段。下面将介绍节点离开流媒体直播网络阶段的详细过程。该过程包括:普通节点和超级节点正常或异常的离开网络。
普通节点的正常离开过程简单,离开的节点向其伙伴和其所属的超级节点发送离开的消息,通知它们自己将要离开流媒体直播网络,伙伴节点收到此消息后将该节点的信息从自己的伙伴列表当中删除,超级节点收到此消息后将该节点的信息从管理的节点列表当中删除,同时通知管理下的其他普通节点以便它们更新自己的节点列表。此时超级节点并不向服务器发送节点的离开信息,因为在P2P网络中节点随时都可以离开,而节点离开也比较频繁,为了减轻服务器在节点管理方面的开销超级节点采用在向超服务器发送心跳信息时同时发送节点列表的更新信息。
超级节点的正常离开首先其伙伴和向服务器发送离开的消息,通知它们自己将要离开网络,伙伴收到此消息后将该超级节点的信息从伙伴列表中删除,服务器收到此消息后会在该超级节点管理下的普通节点列表当中选取一个性能好的作为新的超级节点来接管这些普通节点,同时通知选择的节点向超级节点的转换。服务器将其他普通节点的信息发送给新的超级节点以使其来构建节点列表,超级节点收到这些信息后会向管理的普通节点发送消息通知它们由新的超级节点来管理,普通节点会根据这个消息更新自己节点列表当中的超级节点信息,以后服务器与这些普通节点便与新的超级节点进行通信。
节点的异常离开与正常离开的主要区别是节点离开的发现,发现节点离开后的处理与正常离开节点直接通知超级节点或者服务器后的处理过程是一样的,所以这里只对节点异常离开的发现来进行描述。
普通节点的异常离开,普通节点的异常离开在两种情况下会被发现。在本发明中普通节点要定期的向超级节点发送自己的存活信息,而超级节点保存了自己管理的每个普通节点的最后发送存活信息的时间,超级节点会定期的检查这个时间,如果发现某个节点长时间没有发送存活信息就认为该节点已经离开了网络。另一种情况是伙伴节点连续向某个节点发送数据请求而没有得到回应就认为这个节点已经离开网络,这时会通知超级节点此节点已经离开的消息,超级节进行探测如果没有响应则确定该节点已经离开网络。
超级节点的异常离开的发现与普通节点的离开的发现有些类似,超级节点会定期的向服务器发送自己的存活信息,这样服务器可以发现超级节点的离开,超级节点与普通节点一样与伙伴节点之间进行数据的交换,其伙伴也会发现超级节点的导演离开。另外普通节点会动态的向超级节点发送更新伙伴列表的请求,如果超级节点没有响应就向服务器发送该超级节点离开网络的消息。服务器会进行相应的更新处理。
通过以上的处理能够及时的发现网络中的动态信息而进行有效的更新,从而可以动态的适应网络的变化,使得网络受到节点的退出的影响很小。
因此,本发明使数据在底层物理网络上相近的普通节点之间进行传输,减少了数据转发过程中的跳数以及时延;又由于本发明采用了分层的系统架构,从而降低了主服务器负担,减少了带宽的消耗;同时本发明将节点的管理与数据的传输进行了分离,使维护更加容易。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (10)

1.一种基于超级节点的P2P直播方法,其特征在于包括:
节点向服务器发送期望节目的节点加入请求信息,服务器处理所述节点加入请求消息完成所述节点加入流媒体直播网络;以及
所述节点成功的加入到流媒体直播网络之后,所述节点选择与自己在物理上相近的其他节点建立伙伴关系,再进行数据的传输。
2.根据权利要求1所述的基于超级节点的P2P直播方法,其特征在于还包括:所述节点退出所述流媒体直播网络。
3.根据权利要求1或2所述的基于超级节点的P2P直播方法,其特征在于所述服务器处理所述节点加入请求消息完成所述节点加入流媒体直播网络具体为:
服务器根据节点加入请求信息中所述节点要观看的节目,到节目列表中去匹配超级节点;
服务器将匹配成功的所述超级节点的信息返回给所述节点,所述节点根据所述超级节点的信息,向所述超级节点发送所述节点加入请求消息,所述超级节点响应该节点加入请求消息以将所述节点作为普通节点加入流媒体直播网络,并向所述节点返回所管理的普通节点的信息。
4.根据权利要求3所述的基于超级节点的P2P直播方法,其特征在于所述匹配超级节点的过程具体为:
将所述节点的标志值与服务器列表中的超级节点的标志值进行比较,如果相同,则节点与该超级节点处于同一个物理网络中或者在物理上相近完成匹配。
5.根据权利要求4所述的基于超级节点的P2P直播方法,其特征在于所述节点选择与自己在物理上相近的其他节点建立伙伴关系的过程具体为:
所述节点向超级节点发送建立伙伴关系请求;
超级节点根据所述建立伙伴关系请求返回自己的伙伴信息;
所述节点收到超级节点返回的伙伴信息后,从中选择与自己在物理上相近的节点并请求作为其伙伴;
被请求节点判断有足够的带宽并且负载没有超过限定值,则与请求节点建立伙伴关系。
6.根据权利要求5所述的基于超级节点的P2P直播方法,其特征在于在所述节点向超级节点发送建立伙伴关系请求和超级节点根据所述建立伙伴关系请求返回自己的伙伴信息之间还包括:
当超级节点收到建立伙伴关系的请求后,判断与所述节点建立伙伴关系后负载没有超过限定值,并且可用带宽满足所述节点的需求,则和所述节点建立伙伴关系。
7.根据权利要求5或6所述的基于超级节点的P2P直播方法,其特征在于在所述被请求节点判断有足够的带宽并且负载没有超过限定值,与请求节点建立伙伴关系之后还包括以下步骤:
所述节点判断自己的伙伴数目是否足以满足自己的需求,如果伙伴的数目仍然比较小,所述节点向与自己之间延时小的节点发送建立伙伴关系请求,建立伙伴关系列表。
8.根据权利要求7所述的基于超级节点的P2P直播方法,其特征在于所述节点退出所述流媒体直播网络的过程包括以下步骤:
所述节点向其伙伴和其所属的超级节点发送离开消息,通知所述伙伴和所述超级节点将要离开所述流媒体直播网络;
所述伙伴收到所述离开消息后将所述节点的信息从伙伴列表中删除,所述超级节点收到所述离开消息后,将所述节点的信息从管理的节点列表当中删除,同时通知管理下的其他普通节点以便更新它们的节点列表。
9.根据权利要求1或2所述的基于超级节点的P2P直播方法,其特征在于所述服务器处理所述节点加入请求消息完成所述节点加入流媒体直播网络具体为:
服务器将所述节点作为超级节点加入到超级节点列表中,并通知所述节点以超级节点的身份加入流媒体直播网络;以及
所述节点以超级节点的身份加入的流媒体直播网络中。
10.根据权利要求9所述的基于超级节点的P2P直播方法,其特征在于所述节点选择与自己在物理上相近的其他节点建立伙伴关系的过程具体为:
当所述节点作为超级节点时,所述超级节点将自己所管理的普通节点中可用带宽较大并且性能好的节点加入到自己的伙伴列表中,与之建立伙伴关系。
CNB2007100534297A 2007-09-29 2007-09-29 一种基于超级节点的p2p直播方法 Expired - Fee Related CN100558042C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2007100534297A CN100558042C (zh) 2007-09-29 2007-09-29 一种基于超级节点的p2p直播方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2007100534297A CN100558042C (zh) 2007-09-29 2007-09-29 一种基于超级节点的p2p直播方法

Publications (2)

Publication Number Publication Date
CN101127619A true CN101127619A (zh) 2008-02-20
CN100558042C CN100558042C (zh) 2009-11-04

Family

ID=39095552

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2007100534297A Expired - Fee Related CN100558042C (zh) 2007-09-29 2007-09-29 一种基于超级节点的p2p直播方法

Country Status (1)

Country Link
CN (1) CN100558042C (zh)

Cited By (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010075813A1 (zh) * 2009-01-04 2010-07-08 中国移动通信集团公司 一种流媒体数据传输方法、系统及服务器
CN101895958A (zh) * 2010-03-30 2010-11-24 华为终端有限公司 一种移动网络中自组建路由的方法及装置
CN101282231B (zh) * 2008-05-27 2011-02-16 中山大学 一种基于P2P网络的FBStream流媒体直播系统
CN102006234A (zh) * 2010-12-09 2011-04-06 工业和信息化部电信传输研究所 一种用于优化p2p网络流量的方法和装置
CN102014167A (zh) * 2010-12-16 2011-04-13 国家广播电影电视总局广播科学研究院 一种基于p2p方式的数据分享系统
CN102104622A (zh) * 2010-12-16 2011-06-22 上海一言网络科技有限公司 网络多媒体终端信息发布方法
CN102420696A (zh) * 2011-08-17 2012-04-18 大唐移动通信设备有限公司 一种动态组网方法、指挥中心节点及系统
CN102624884A (zh) * 2012-02-29 2012-08-01 上海聚力传媒技术有限公司 一种用于接收p2p资源的方法、装置和设备
CN102833163A (zh) * 2012-08-23 2012-12-19 桂林电子科技大学 对等网络流媒体点播服务质量保证方法及系统
CN101938508B (zh) * 2009-07-01 2013-01-02 中国电信股份有限公司 对等网络流媒体直播系统中延时减小的方法和系统
CN103167047A (zh) * 2011-12-12 2013-06-19 工业和信息化部电信传输研究所 一种dns服务器资源记录动态更新的方法
CN103167028A (zh) * 2013-02-21 2013-06-19 胡凤兵 节省传输带宽并能增大并发量的用户收敛方法
CN103561037A (zh) * 2013-11-11 2014-02-05 西安诺瓦电子科技有限公司 建立显示终端群组的方法、远程控制显示终端的方法及系统
CN103905544A (zh) * 2014-03-25 2014-07-02 华为技术有限公司 一种集群存储系统及集群存储系统中的节点分配方法
CN104717249A (zh) * 2013-12-12 2015-06-17 北京神州泰岳软件股份有限公司 远程操作应用发布的方法、代理服务器和系统
CN104937902A (zh) * 2012-12-14 2015-09-23 微软技术许可有限责任公司 P2p网络中的内容源选择
CN105072159A (zh) * 2015-07-17 2015-11-18 杭州施强网络科技有限公司 一种p2p组网中的节点管理列表结构及其管理方法
CN105827650A (zh) * 2016-05-20 2016-08-03 浙江宇视科技有限公司 一种媒体流转发方法及装置
CN106028067A (zh) * 2016-06-15 2016-10-12 南京纳加软件有限公司 一种p2p直点播系统
CN106302726A (zh) * 2016-08-15 2017-01-04 浪潮(北京)电子信息产业有限公司 一种分布式集群数据的管理节点的监控方法及模块
CN107018181A (zh) * 2017-03-23 2017-08-04 西安电子科技大学 基于流媒体直播系统的p2p网络构建方法
CN108206834A (zh) * 2018-04-04 2018-06-26 深圳怡化电脑股份有限公司 中心服务请求的处理方法、装置和系统
CN108322487A (zh) * 2017-01-16 2018-07-24 深圳市优朋普乐传媒发展有限公司 p2p网络中节点选择方法及装置与节点更新方法及装置
US10129334B2 (en) 2012-12-14 2018-11-13 Microsoft Technology Licensing, Llc Centralized management of a P2P network
CN109218762A (zh) * 2018-09-06 2019-01-15 百度在线网络技术(北京)有限公司 多媒体资源播放方法、装置、计算机设备及存储介质
CN109379765A (zh) * 2018-11-14 2019-02-22 广州虎牙科技有限公司 一种蜂窝网络拉流方法、装置、设备和存储介质
US10284641B2 (en) 2012-12-14 2019-05-07 Microsoft Technology Licensing, Llc Content distribution storage management
CN110071942A (zh) * 2019-05-20 2019-07-30 湖南康通电子股份有限公司 数字广播系统的组网直播流分发方法、装置及存储介质
US10391387B2 (en) 2012-12-14 2019-08-27 Microsoft Technology Licensing, Llc Presenting digital content item with tiered functionality
CN111526375A (zh) * 2019-02-01 2020-08-11 广州虎牙信息科技有限公司 资源分发方法及装置
CN111541905A (zh) * 2020-04-17 2020-08-14 广州虎牙科技有限公司 一种直播方法、装置、计算机设备和存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100452734C (zh) * 2005-11-17 2009-01-14 中国科学院计算技术研究所 基于全局Internet拓扑知识的P2P应用构建方法
CN101030866A (zh) * 2006-03-02 2007-09-05 北京锐科天智科技有限责任公司 分布式网络可控传输方法及硬件装置
CN100364281C (zh) * 2006-03-24 2008-01-23 南京邮电大学 基于对等网络的分布式流量管理方法

Cited By (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101282231B (zh) * 2008-05-27 2011-02-16 中山大学 一种基于P2P网络的FBStream流媒体直播系统
WO2010075813A1 (zh) * 2009-01-04 2010-07-08 中国移动通信集团公司 一种流媒体数据传输方法、系统及服务器
CN101938508B (zh) * 2009-07-01 2013-01-02 中国电信股份有限公司 对等网络流媒体直播系统中延时减小的方法和系统
CN101895958A (zh) * 2010-03-30 2010-11-24 华为终端有限公司 一种移动网络中自组建路由的方法及装置
CN102006234A (zh) * 2010-12-09 2011-04-06 工业和信息化部电信传输研究所 一种用于优化p2p网络流量的方法和装置
CN102014167A (zh) * 2010-12-16 2011-04-13 国家广播电影电视总局广播科学研究院 一种基于p2p方式的数据分享系统
CN102104622A (zh) * 2010-12-16 2011-06-22 上海一言网络科技有限公司 网络多媒体终端信息发布方法
CN102420696A (zh) * 2011-08-17 2012-04-18 大唐移动通信设备有限公司 一种动态组网方法、指挥中心节点及系统
CN103167047A (zh) * 2011-12-12 2013-06-19 工业和信息化部电信传输研究所 一种dns服务器资源记录动态更新的方法
CN102624884B (zh) * 2012-02-29 2016-02-17 上海聚力传媒技术有限公司 一种用于接收p2p资源的方法、装置和设备
CN102624884A (zh) * 2012-02-29 2012-08-01 上海聚力传媒技术有限公司 一种用于接收p2p资源的方法、装置和设备
CN102833163A (zh) * 2012-08-23 2012-12-19 桂林电子科技大学 对等网络流媒体点播服务质量保证方法及系统
CN102833163B (zh) * 2012-08-23 2015-03-04 桂林电子科技大学 对等网络流媒体点播服务质量保证方法及系统
US10391387B2 (en) 2012-12-14 2019-08-27 Microsoft Technology Licensing, Llc Presenting digital content item with tiered functionality
US10284641B2 (en) 2012-12-14 2019-05-07 Microsoft Technology Licensing, Llc Content distribution storage management
US10129334B2 (en) 2012-12-14 2018-11-13 Microsoft Technology Licensing, Llc Centralized management of a P2P network
CN104937902A (zh) * 2012-12-14 2015-09-23 微软技术许可有限责任公司 P2p网络中的内容源选择
US9781056B2 (en) 2012-12-14 2017-10-03 Microsoft Technology Licensing, Llc Content source selection in a P2P network
CN103167028A (zh) * 2013-02-21 2013-06-19 胡凤兵 节省传输带宽并能增大并发量的用户收敛方法
CN103561037B (zh) * 2013-11-11 2016-08-17 西安诺瓦电子科技有限公司 建立显示终端群组的方法、远程控制显示终端的方法及系统
CN103561037A (zh) * 2013-11-11 2014-02-05 西安诺瓦电子科技有限公司 建立显示终端群组的方法、远程控制显示终端的方法及系统
CN104717249B (zh) * 2013-12-12 2018-04-27 北京神州泰岳软件股份有限公司 远程操作应用发布的方法、代理服务器和系统
CN104717249A (zh) * 2013-12-12 2015-06-17 北京神州泰岳软件股份有限公司 远程操作应用发布的方法、代理服务器和系统
CN103905544A (zh) * 2014-03-25 2014-07-02 华为技术有限公司 一种集群存储系统及集群存储系统中的节点分配方法
CN105072159A (zh) * 2015-07-17 2015-11-18 杭州施强网络科技有限公司 一种p2p组网中的节点管理列表结构及其管理方法
CN105072159B (zh) * 2015-07-17 2018-09-18 杭州施强教育科技有限公司 一种p2p组网中的节点管理列表结构及其管理方法
CN105827650A (zh) * 2016-05-20 2016-08-03 浙江宇视科技有限公司 一种媒体流转发方法及装置
CN106028067A (zh) * 2016-06-15 2016-10-12 南京纳加软件有限公司 一种p2p直点播系统
CN106302726B (zh) * 2016-08-15 2019-05-28 浪潮(北京)电子信息产业有限公司 一种分布式集群数据的管理节点的监控方法及模块
CN106302726A (zh) * 2016-08-15 2017-01-04 浪潮(北京)电子信息产业有限公司 一种分布式集群数据的管理节点的监控方法及模块
CN108322487A (zh) * 2017-01-16 2018-07-24 深圳市优朋普乐传媒发展有限公司 p2p网络中节点选择方法及装置与节点更新方法及装置
CN107018181A (zh) * 2017-03-23 2017-08-04 西安电子科技大学 基于流媒体直播系统的p2p网络构建方法
CN107018181B (zh) * 2017-03-23 2019-10-25 西安电子科技大学 基于流媒体直播系统的p2p网络构建方法
CN108206834A (zh) * 2018-04-04 2018-06-26 深圳怡化电脑股份有限公司 中心服务请求的处理方法、装置和系统
CN108206834B (zh) * 2018-04-04 2021-04-13 深圳怡化电脑股份有限公司 中心服务请求的处理方法、装置和系统
CN109218762A (zh) * 2018-09-06 2019-01-15 百度在线网络技术(北京)有限公司 多媒体资源播放方法、装置、计算机设备及存储介质
CN109218762B (zh) * 2018-09-06 2019-11-26 百度在线网络技术(北京)有限公司 多媒体资源播放方法、装置、计算机设备及存储介质
CN109379765A (zh) * 2018-11-14 2019-02-22 广州虎牙科技有限公司 一种蜂窝网络拉流方法、装置、设备和存储介质
CN111526375A (zh) * 2019-02-01 2020-08-11 广州虎牙信息科技有限公司 资源分发方法及装置
CN110071942A (zh) * 2019-05-20 2019-07-30 湖南康通电子股份有限公司 数字广播系统的组网直播流分发方法、装置及存储介质
CN111541905A (zh) * 2020-04-17 2020-08-14 广州虎牙科技有限公司 一种直播方法、装置、计算机设备和存储介质
CN111541905B (zh) * 2020-04-17 2022-05-20 广州虎牙科技有限公司 一种直播方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN100558042C (zh) 2009-11-04

Similar Documents

Publication Publication Date Title
CN100558042C (zh) 一种基于超级节点的p2p直播方法
US20230164397A1 (en) Distributed election-based end-to-end content distribution network system and distribution method
EP2288085B1 (en) P2p based method, device and system for playing media
US9325786B2 (en) Peer-to-peer interactive media-on-demand
CN102355448B (zh) 云流媒体数据传输方法及系统
CN100461740C (zh) 一种客户端节点网络拓扑构造方法及流媒体分发系统
CN101938508B (zh) 对等网络流媒体直播系统中延时减小的方法和系统
Rejaie et al. A framework for architecting peer-to-peer receiver-driven overlays
CN101141459A (zh) 使用http与p2p相结合实现数据传输或流媒体传输的方法
CN101729273A (zh) 一种流媒体分发系统、方法及装置
WO2008025294A1 (fr) Système, dispositif et procédé par connexion pair à pair de flux multimedia
CN101610162A (zh) 一种基于对等存储网络提供内容的方法、系统和设备
CN103200273B (zh) 基于物理位置的内容副本一致性维护方法
CN101588287B (zh) 对等网络数据调度和下载的方法、装置和系统
CN101355468A (zh) 一种p2p流媒体信息发布的方法
CN104954866A (zh) 一种流媒体数据直播中播放点动态控制方法
CN104735044A (zh) 一种流媒体直播方法及系统
CN103095727A (zh) P2p资源定位方法
CN108833554B (zh) 一种面向大规模网络的实时高可靠消息分发系统及其方法
Cheng et al. RINDY: a ring based overlay network for peer-to-peer on-demand streaming
CN101873248A (zh) 一种p2p流媒体传输方法和装置
CN107800567B (zh) 一种混合模式的p2p流媒体网络拓扑模型的建立方法
CN101436946B (zh) 在对等共享网络内进行数据请求调度的方法
Jia et al. Modelling of P2P-based video sharing performance for Content-oriented community-based VoD Systems in Wireless Mobile Networks
KR100592667B1 (ko) 컨텐츠 분배 관리 시스템에서의 컨텐츠 복제 방법

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20091104

Termination date: 20120929