CN104038492A - 基于p2p技术的流媒体分发方法 - Google Patents
基于p2p技术的流媒体分发方法 Download PDFInfo
- Publication number
- CN104038492A CN104038492A CN201410255362.5A CN201410255362A CN104038492A CN 104038492 A CN104038492 A CN 104038492A CN 201410255362 A CN201410255362 A CN 201410255362A CN 104038492 A CN104038492 A CN 104038492A
- Authority
- CN
- China
- Prior art keywords
- partner
- node
- message
- data
- data block
- 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.)
- Pending
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及数据分发技术,其公开了一种基于P2P技术的流媒体分发方法,利用处于防火墙内的节点的上传带宽,加快了流媒体数据复制的速度,进而减少缓冲的时间,并保证了节点之间的准同步回放。本发明的方案概括为:节点加入网络后通过广播BUFFER_MAP消息实现在网络的广度上传输,收到消息的节点根据综合决策判断是否对消息进行转发;并通过广播PROBE_PARTNER消息实现在网络的深度上传输,发现其它伙伴,周期性运行统计伙伴间通信量处理流程,淘汰通信量少的伙伴;在触发调度流程时,基于对新数据块优先调度的原则保证节点的准同步回放,某个节点向目标节点发出数据推送请求后,目标节点执行相应算法来判断是否接受推送数据。本发明适用于流媒体分发。
Description
技术领域
本发明涉及数据分发技术,特别涉及一种基于P2P技术的流媒体分发方法。
背景技术
P2P流媒体直播协议划分为三类:源驱动,接收端驱动和数据驱动,管理覆盖网的方法各不相同:源驱动协议需要为新加入的节点指派父节点,数据从源节点开始,以接力的方式向下层的节点推送;接收端驱动协议在接收者一侧建立树状拓扑,由接收端整合和管理节点以获取流数据;数据驱动的协议一般与网状拓扑的覆盖网结合,节点发现自己需要的数据,并从邻居节点获取这些数据。
上述协议的节点在为邻居提供数据时扮演下载服务器的角色,如果NAT(网络地址转换)或者防火墙不支持内网穿透,位于内网的节点就不能为外网的节点提供数据。
发明内容
本发明所要解决的技术问题是:提出一种基于P2P技术的流媒体分发方法,利用处于防火墙内的节点的上传带宽,加快了流媒体数据复制的速度,进而减少缓冲的时间,并保证了节点之间的准同步回放。
本发明解决上述技术问题所采用的技术方案是:
基于P2P技术的流媒体分发方法,包括以下步骤:
a.节点加入的步骤:
新加入的节点与数据中心通信,获取相关流的详细信息,然后新加入的节点向接入节点发送REQ—JOIN消息,请求加入网络,接入节点给新加入的节点指派一个伙伴作为代理节点,新加入的节点与代理节点通信,获取其伙伴列表进行初始化;
b.缓存信息的发布与校正步骤:
定义节点加入网络至收到第一块数据为启动阶段,处于启动阶段的节点每隔1s向它的伙伴广播一次BUFFER_MAP消息,之后每隔5s广播一次,消息中的剩余转发跳数值初始值为2;
收到消息的节点综合决策是否转发该消息:如果消息源节点已经是自己的伙伴,接收者更新伙伴的BM信息并转发该消息,否则,根据相应决策是否添加该消息的源节点为新伙伴;
如果添加消息的源节点为伙伴或者消息源节点为未能映射的内网节点,则停止该消息的转发,否则,递减消息中的剩余转发跳数值,如果递减后的剩余转发跳数值大于零,则继续转发,如果等于零,则停止转发该消息;
c.伙伴的探测与淘汰步骤:
节点周期性的发布PROBE_PARTNER消息,广播其在网络中的存在,并发现其他的新伙伴,所述PROBE_PART-NER消息每隔10s广播一次,转发的目标伙伴个数为2,消息中的剩余转发跳数值初始值为4;此外,节点周期性运行统计伙伴间通信量处理流程,淘汰通信量少的伙伴;
d.数据调度步骤:
首先,找到合适的数据块:通过算法将资源最稀缺的数据块推送出去,越多伙伴缺少的数据块,获得分值越高,同样分值的数据块,选取较新的;然后,决策目标伙伴:随机选择一个没有该数据块的伙伴,向其发出请求,发出请求后,标记该伙伴已经拥有该数据块;
e.数据推送流程:
节点向目标伙伴发送REQ_PUSH_DATA消息,请求推送数据块;目标伙伴收到该消息后,执行相应算法判断是否接受该数据块,如果目标伙伴决定接收该数据块,则发送ACK_PUSH_DATA消息给请求节点,否则发送DENY_PUSH_DATA的消息来拒绝该数据块的推送。
具体的,步骤a中,所述数据中心为网络的信息中心,用于收集网络中正在广播的流信息以及参与网络的节点信息。
具体的,步骤b中,所述根据相应决策是否添加该消息的源节点为新伙伴的具体方法为:
1)如果消息的源节点是新加入的节点,则添加为伙伴,否则转到2);
2)如果节点的伙伴数目小于最大伙伴数目,添加为伙伴,否则转到3);
3)如果伙伴列表中存在长时间不活跃的节点,删除该不活跃的节点,并添加消息源节点为伙伴;否则,不添加消息源节点为伙伴。
具体的,所述PROBE_PARTNER消息在网络的深度上传输,所述BUFFER_MAP消息在网络的广度上传输。
具体的,步骤d中,节点bufferMap变化或者伙伴bufferMap的变化都会触发数据调度。
具体的,步骤e中,目标伙伴收到该消息后,执行下列算法判断是否接受该数据块:
1)如果该数据块迟于播放时间,拒绝接收;
2)如果正在从别的伙伴处接收该数据块,拒绝接收;
3)如果自己已经缓存该数据块,拒绝接收;
4)如果以上三种情况均不存在,则接收该数据块。
本发明的有益效果是:使用网状覆盖网拓扑和推模式数据分发方法,并结合新数据块优先调度,相比目前的P2P流媒体分发算法,推送算法可以利用处于防火墙内节点的上传带宽,加快流媒体数据复制的速度,进而减少缓冲的时间,并保证了节点之间的准同步回放。
附图说明
图1为本发明中的新数据块优先调度算法示例;
图2为传统技术中旧数据块优先调度算法示例。
具体实施方式
本发明旨在提出一种新的基于P2P技术的流媒体分发方法,可以更有效的结合现有的内容分发系统的部署,推送模式的P2P流媒体分发算法有效地利用了内外上传带宽,减少了BM信息频繁交换消耗的通信带宽,以及利用算法本身在复制分发数据块上的有效性,在各项指标上均优于拉拽算法。而实际的系统测试中,节点的准同步回放也体现了新数据块优先调度的方法的有效性。
下面结合具体实例对本发明的方案进行具体说明:
1、节点加入:
节点标志唯一标志符,nodeID<外网套接字,内外套接字>。外网套接字端口号为零时,节点是未能映射的内网节点。推送算法不区分邻居节点与伙伴节点,每个节点维护自己的伙伴列表(PL)。新加入的节点与数据中心通信,获取相关流的详细信息。数据中心是网络的信息中心,收集网络中正在广播的流信息,以及参与网络的节点信息等。然后,新加入的节点向接入节点发送REQ_JOIN消息,请求加入网络,接入节点是普通节点。接入节点给新加入的节点指派一个伙伴作为代理节点。最后,意图加入的节点与代理节点通信,获取其PL来初始化。PL中的一条记录包含如下信息,<nodeID,lasMt sgSeq。lastUpda-teTime,outByteTemp,inByteTemp,bufferMap>,其中lasMt sgSeq是该伙伴最新的消息编号;lastUp-dateTime记录着节点与该伙伴最后一次交换数据的时间;outByteTemp和inByteTemp则分别记录节点推送给该伙伴的通信量和该伙伴推送过来的通信量。这两个数值会被定期清空,反映最近的通信情况。bufferMap由<firstBlockNum,buffer-MapVec>组成,其中firstBlockNum记录该伙伴缓存的第一个块的序号,bufferMapVec是布尔集合,表示从firstBlockNum开始的相关块的缓存信息,1表示该块存在,0表示该块缺失。
2、缓存信息发布与校正:
节点的BM信息由BUFFER_MAP消息以Gos-sip模式发布,收到该的节点可能会转发该消息。BUFFER_MAP消息带有四个域,<msgSeq,no-deID,TTL,bufferMap>。其中msgSeq是该消息的序号,nodeID是该消息的源节点的标志符,TTL是该消息的剩余转发跳数,bufferMap的结构与1中结构一致,即由<firstBlockNum,buffer-MapVec>组成。我们定义节点加入网络至收到第一块数据为启动阶段。处于启动阶段的节点,每隔1s向它的伙伴广播一次BUFFER_MAP消息,之后每隔5s广播一次,BUFFER_MAP消息的TTL初始值为2。如果消息源节点已经是自己的伙伴,接收者更新伙伴的BM信息并转发该消息,否则执行以下算法来决策是否添加该消息的源节点为伙伴。如果添加消息的源节点为伙伴或者消息源节点为未能映射的内网节点,停止该消息的转发,否则递减TTL值,在TTL值大于零时继续转发该消息。
决策是否添加新伙伴算法:
1)如果消息的源节点是新加入的节点,则添加为伙伴,否则转到2);
2)如果节点的伙伴数目小于最大伙伴数目,添加为伙伴,否则转到3);
3)如果伙伴列表中存在长时间不活跃的节点,删除该不活跃的节点,并添加消息源节点为伙伴;否则,不添加消息源节点为伙伴。
3、伙伴的探测与淘汰:
节点周期性的发布PROBE_PARTNER消息,广播其在网络中的存在,并发现其他的新伙伴。PROBE_PARTNER消息与BUFFER_MAP消息内容一致,处理流程也一致,不同之处是,PROBE_PART-NER消息每隔10s广播一次,转发的目标伙伴个数为2,消息TTL初始值为4。PROBE_PARTNER消息主要在网络的深度上传输,而BUFFER_MAP消息在广度上传输。节点周期性运行统计伙伴间通信量处理流程,淘汰通信量少的伙伴。
4、调度算法:
节点bufferMap变化或者伙伴bufferMap的变化都会触发数据调度。以下的情况会导致buffer-Map的变化:接收到完整的数据块,添加新伙伴,伙伴bufferMap更新,以及5中将提及的数据推送流程的结束。调度算法分为两步,第一步找到合适的数据块,算法尽力将资源最稀缺的数据块推送出去,越多伙伴缺少的数据块,获得分值越高。同样分值的数据块,选取较新的。第二步决策目标伙伴,随机选择一个没有该数据块的伙伴,向其发出请求。发出请求后,标记该伙伴已经拥有该数据块。
步骤1:
找出need credit最大的并且标号最新的数据块,标记为MAX_NEED_BLOCK;
步骤2:
找到目标伙伴;
步骤1中新数据块优先选择算法保证了节点之间准同步回放:
参见图1、图2假设节点B为新加入的节点,t1时刻节点A开始调度数据,并向B传输。新块优先的方法首先调度数据块4(图1所示),而旧块优先的方法则调度数据块1(图2所示)。在t3时刻,A收到新的数据块,新块优先方法调度数据块5,旧块优先的方法继续调度数据块3.t4时刻,B节点缓冲完成开始播放。新数据块优先传输的方法使得A,B节点之间播放时间差为一个数据块的传输延迟。旧数据块优先传输的方法引入的播放时间差与缓冲时间和节点的上传带宽相关。
5、推送流程:
在4中的算法返回数据块号和目标伙伴的no-deID。节点向该伙伴发送REQ_PUSH_DATA的消息,请求推送数据块。目标伙伴收到该消息后,执行以下算法判断是否接受该数据块。
1)如果该块迟于播放时间,拒绝接收;
2)如果正在从别的伙伴处接收该数据块,拒绝接收;
3)如果自己已经缓存该数据块,拒绝接收;
4)如果上述三种情况均不存在,则接收该数据块。
如果目标伙伴决定接收该数据块,发送ACK_PUSH_DATA消息给请求节点,否则发送DENY_PUSH_DATA的消息来拒绝该数据块的推送。数据块传输完成,或者收到DENY_PUSH_DATA消息,则节点重新调用4中的算法来决策下一次传输。
Claims (6)
1.基于P2P技术的流媒体分发方法,其特征在于,包括以下步骤:
a.节点加入的步骤:
新加入的节点与数据中心通信,获取相关流的详细信息,然后新加入的节点向接入节点发送REQ—JOIN消息,请求加入网络,接入节点给新加入的节点指派一个伙伴作为代理节点,新加入的节点与代理节点通信,获取其伙伴列表进行初始化;
b.缓存信息的发布与校正步骤:
定义节点加入网络至收到第一块数据为启动阶段,处于启动阶段的节点每隔1s向它的伙伴广播一次BUFFER_MAP消息,之后每隔5s广播一次,消息中的剩余转发跳数值初始值为2;
收到消息的节点综合决策是否转发该消息:如果消息源节点已经是自己的伙伴,接收者更新伙伴的BM信息并转发该消息,否则,根据相应决策是否添加该消息的源节点为新伙伴;
如果添加消息的源节点为伙伴或者消息源节点为未能映射的内网节点,则停止该消息的转发,否则,递减消息中的剩余转发跳数值,如果递减后的剩余转发跳数值大于零,则继续转发,如果等于零,则停止转发该消息;
c.伙伴的探测与淘汰步骤:
节点周期性的发布PROBE_PARTNER消息,广播其在网络中的存在,并发现其他的新伙伴,所述PROBE_PART-NER消息每隔10s广播一次,转发的目标伙伴个数为2,消息中的剩余转发跳数值初始值为4;此外,节点周期性运行统计伙伴间通信量处理流程,淘汰通信量少的伙伴;
d.数据调度步骤:
首先,找到合适的数据块:通过算法将资源最稀缺的数据块推送出去,越多伙伴缺少的数据块,获得分值越高,同样分值的数据块,选取较新的;然后,决策目标伙伴:随机选择一个没有该数据块的伙伴,向其发出请求,发出请求后,标记该伙伴已经拥有该数据块;
e.数据推送流程:
节点向目标伙伴发送REQ_PUSH_DATA消息,请求推送数据块;目标伙伴收到该消息后,执行相应算法判断是否接受该数据块,如果目标伙伴决定接收该数据块,则发送ACK_PUSH_DATA消息给请求节点,否则发送DENY_PUSH_DATA的消息来拒绝该数据块的推送。
2.如权利要求1所述的基于P2P技术的流媒体分发方法,其特征在于,步骤a中,所述数据中心为网络的信息中心,用于收集网络中正在广播的流信息以及参与网络的节点信息。
3.如权利要求1所述的基于P2P技术的流媒体分发方法,其特征在于,步骤b中,所述根据相应决策是否添加该消息的源节点为新伙伴的具体方法为:
1)如果消息的源节点是新加入的节点,则添加为伙伴,否则转到2);
2)如果节点的伙伴数目小于最大伙伴数目,添加为伙伴,否则转到3);
3)如果伙伴列表中存在长时间不活跃的节点,删除该不活跃的节点,并添加消息源节点为伙伴;否则,不添加消息源节点为伙伴。
4.如权利要求1所述的基于P2P技术的流媒体分发方法,其特征在于,所述PROBE_PARTNER消息在网络的深度上传输,所述BUFFER_MAP消息在网络的广度上传输。
5.如权利要求1所述的基于P2P技术的流媒体分发方法,其特征在于,步骤d中,节点bufferMap变化或者伙伴bufferMap的变化都会触发数据调度。
6.如权利要求1所述的基于P2P技术的流媒体分发方法,其特征在于,步骤e中,目标伙伴收到该消息后,执行下列算法判断是否接受该数据块:
1)如果该数据块迟于播放时间,拒绝接收;
2)如果正在从别的伙伴处接收该数据块,拒绝接收;
3)如果自己已经缓存该数据块,拒绝接收;
4)如果以上三种情况均不存在,则接收该数据块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410255362.5A CN104038492A (zh) | 2014-06-10 | 2014-06-10 | 基于p2p技术的流媒体分发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410255362.5A CN104038492A (zh) | 2014-06-10 | 2014-06-10 | 基于p2p技术的流媒体分发方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104038492A true CN104038492A (zh) | 2014-09-10 |
Family
ID=51469081
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410255362.5A Pending CN104038492A (zh) | 2014-06-10 | 2014-06-10 | 基于p2p技术的流媒体分发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104038492A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1937553A (zh) * | 2006-05-11 | 2007-03-28 | 蓝汛网络科技(北京)有限公司 | 基于流媒体数据帧的对等网络数据调度方法 |
CN101282281A (zh) * | 2007-04-03 | 2008-10-08 | 华为技术有限公司 | 一种媒体分发系统、装置及流媒体播放方法 |
CN102387164A (zh) * | 2010-08-30 | 2012-03-21 | 上海悠络客电子科技有限公司 | 一种p2p网络数据传输的方法 |
EP2104287B1 (en) * | 2007-06-05 | 2013-08-28 | Huawei Technologies Co., Ltd. | A method for client node network topology construction and a system for stream media delivery |
-
2014
- 2014-06-10 CN CN201410255362.5A patent/CN104038492A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1937553A (zh) * | 2006-05-11 | 2007-03-28 | 蓝汛网络科技(北京)有限公司 | 基于流媒体数据帧的对等网络数据调度方法 |
CN101282281A (zh) * | 2007-04-03 | 2008-10-08 | 华为技术有限公司 | 一种媒体分发系统、装置及流媒体播放方法 |
EP2104287B1 (en) * | 2007-06-05 | 2013-08-28 | Huawei Technologies Co., Ltd. | A method for client node network topology construction and a system for stream media delivery |
CN102387164A (zh) * | 2010-08-30 | 2012-03-21 | 上海悠络客电子科技有限公司 | 一种p2p网络数据传输的方法 |
Non-Patent Citations (3)
Title |
---|
冯玉财等: "改进的P2P流媒体模式推送调度算法", 《第六届全国几何设计与计算学术会议论文集》 * |
冯玉财等: "改进的P2P流媒体模式推送调度算法", 《第六届全国几何设计与计算学术会议论文集》 * |
周卫等: "推送模式的P2P流媒体分发算法", 《科学技术与工程》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11197140B2 (en) | Methods and devices for content distribution | |
US8949436B2 (en) | System and method for controlling peer-to-peer connections | |
US20140082135A1 (en) | Apparatus and method for providing content, and system for providing content with the said apparatus | |
CN107295600B (zh) | 一种车载网络中的数据传输方法 | |
US8059669B2 (en) | Tree-type broadcast system, reconnection process method, node device, node process program, server device, and server process program | |
CN101567796B (zh) | 一种内容分片的多媒体网络及其业务方法 | |
US8134937B2 (en) | Distributed content storage system, content storage method, node device, and node processing program | |
CN110012300A (zh) | 视频直播方法及装置 | |
CN108541044A (zh) | 用于加入邻近感知网络设备群的方法及设备 | |
CN101626399B (zh) | 一种音乐在线播放的调度及控制方法 | |
JP2008011147A (ja) | 通信システム、コンテンツデータ送信可否決定方法、ノード装置、及びノード処理プログラム等 | |
KR101035903B1 (ko) | 미디어 스트리밍을 위한 피투피 오버레이 네트워크 구조 및 피투피 오버레이 네트워크의 관리 방법 | |
KR101212122B1 (ko) | 무선 센서 네트워크에서 싱크노드의 방송 메시지를 이용한 라우팅 방법 | |
US11265790B2 (en) | Methods and network entities for handover | |
CN104038492A (zh) | 基于p2p技术的流媒体分发方法 | |
US20160112535A1 (en) | Method for generating group of content cache and method for providing content | |
KR20180131965A (ko) | 클러스터 간의 데이터 송수신 방법 및 장치 | |
KR102095563B1 (ko) | Mac 주소를 이용하는 이더넷 네트워크 장치 및 방법 | |
JP2012173995A (ja) | 受信端末およびその制御プログラム | |
EP2981027B1 (en) | Resource management for stream reservations | |
US10956942B2 (en) | Synchronization of play of targeted media content with time slots in radio broadcast signal | |
CN101977148B (zh) | 内容分发网络节点媒体服务器之间数据交互的方法及系统 | |
JP2008085678A (ja) | コンテンツ配信システム、コンテンツ配信方法、コンテンツ配信システムにおける端末装置及びそのプログラム | |
Asaduzzaman et al. | CliqueStream: Creating an efficient and resilient transport overlay for peer-to-peer live streaming using a clustered DHT | |
CN103634332B (zh) | 一种基于p2p的流媒体传输方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140910 |