基于 p2p 技术的流媒体直播 系统研究与实现

40
基基 P2P 基基基基基 基基 基基基基基 答答答 答答答 答答答 答答

Upload: neci

Post on 12-Jan-2016

140 views

Category:

Documents


0 download

DESCRIPTION

基于 P2P 技术的流媒体直播 系统研究与实现. 答辩人:周红敏 导 师:孙名松 教授. 内容提要. 课题研究背景 PolyTV 系统设计 系统实现的关键技术 系统测试与评价 总结与展望 发表论文. 课题研究背景. 中国 P2P 流媒体发展阶段分析. 课题研究背景. 存在的问题. 目前基于 P2P 技术的流媒体直播系统已经有多种实现 ( 如 PPLive, PPStream, QQLive, UUSee 等 ) ,然而现有系统仍然有一些必须解决的问题,包括:组播结构不稳定、异构节点适应性差、数据调度效率低、控制开销大以及 NAT 穿越等问题 。 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 基于 P2P 技术的流媒体直播 系统研究与实现

基于 P2P 技术的流媒体直播系统研究与实现

答辩人:周红敏

导 师:孙名松 教授

Page 2: 基于 P2P 技术的流媒体直播 系统研究与实现

内容提要

课题研究背景 PolyTV 系统设计 系统实现的关键技术 系统测试与评价 总结与展望 发表论文

Page 3: 基于 P2P 技术的流媒体直播 系统研究与实现

中国 P2P 流媒体发展阶段分析

课题研究背景

Page 4: 基于 P2P 技术的流媒体直播 系统研究与实现

存在的问题 目前基于 P2P 技术的流媒体直播系统已经

有多种实现 ( 如 PPLive, PPStream, QQLive, UUSee 等 ) ,然而现有系统仍然有一些必须解决的问题,包括:组播结构不稳定、异构节点适应性差、数据调度效率低、控制开销大以及 NAT 穿越等问题 。

设计了一套完整的面向大规模网络的 P2P流媒体直播系统—— PolyTV

课题研究背景

Page 5: 基于 P2P 技术的流媒体直播 系统研究与实现

内容提要 课题研究背景 PolyTV 系统设计 系统实现的关键技术 系统测试与评价 总结与展望 发表论文

Page 6: 基于 P2P 技术的流媒体直播 系统研究与实现

Central Server

ProgramServer1

ProgramServer2

C1

C1

C1

Cnew

P2P Join

redirect

Interactive data

database

billing

Web server

C2

C2

C2

3rd party

EPG(electronic

program guide)

PolyTV 系统设计与实现

Page 7: 基于 P2P 技术的流媒体直播 系统研究与实现

Peer 节点系统架构流 媒 体 播 放 器

应用层组播网

成员管理

伙伴管理

调度器

缓冲区管理

Peer节点 Peer节点 Peer节点

缓冲区

图 4-3 PolyTV 节点系统架构图

PolyTV 系统设计与实现

Page 8: 基于 P2P 技术的流媒体直播 系统研究与实现

内容提要 课题研究背景 PolyTV 系统设计 系统实现的关键技术 系统测试与评价 总结与展望 发表论文

Page 9: 基于 P2P 技术的流媒体直播 系统研究与实现

系统实现的关键技术 应用层组播网的构建

1. 新节点加入算法2. 节点管理与维护3. 节点退出策略

缓存策略 数据调度算法 P2P 网络中 NAT 的穿越

系统实现的关键技术研究

Page 10: 基于 P2P 技术的流媒体直播 系统研究与实现

新节点加入算法1. 新节点 A 加入时,首先与源节点联系 ;

2. 源节点从自己的 mCache 中随机地选择一个节点 P 作为 A 的代理节点 ;

3. A 再与 P 联系,并获取 P 的 mCache 中的节点作为自己 mCache 中初始节点 ;

4. A 再与这些初始成员节点建立伙伴关系。如果定时器到时还没有收到源节点发来的代理节点信息,则重新发送请求。

5. 当新节点收到代理节点信息时,向代理节点发送 mCache 请求,代理节点将本地的mCache 打包后发送给新节点,新节点收到mCache 信息后,在本地建立同样的 mCache 信息。

至此,新节点加入流程完成。

系统实现的关键技术研究 - 应用层组播网的构建

P

C2C1A

新节点

Page 11: 基于 P2P 技术的流媒体直播 系统研究与实现

节点管理与维护1. 节点间的成员关系主要通过每个节点的 mCache 来体

现。2. 每一个节点周期性的生成一个成员消息 (Membership

Message) 来说明自己是一个活跃节点成员消息的格式为 <seq_num, id, num_partner, time_to_live>

3. 每个节点在 mCache 中随机地选择几个节点发送成员消息,收到此消息的节点同样在本地的 mCache 中随机地选择几个节点转发此消息,消息中有 hop 数信息,每次转发将 hop 数减 1 ,直到 hop 数为 0 时不再转发。

4. 节点接收到成员消息后,根据节点 id 判断 mCache 中是否已存在此节点的信息,如果存在此节点信息则更新 time_to_live 时 间 如 果 不 存 在 此 节 点 信 息 则 在mCache 中创建一新项。

5. 每个节点周期性地扫描本地的 mCache ,将每个节点对应的 time_to_live 更新,更新方式采用 time_to_live – (cur_time – last_update_time), 如果发现更新后的 time_to_live 小于 0 ,说明此节点信息已经过期,则将其

从 mCache 中删除。

系统实现的关键技术研究 - 应用层组播网的构建

P

C2C1A

新节点

Page 12: 基于 P2P 技术的流媒体直播 系统研究与实现

节点退出策略 正常退出:节点要离开时,先发送一个离开消

息( Departure message ),此消息格式与成员消息格式相同,只是设置其 num_partner 为- 1 。退出消息的传递也采用 Gossip 协议,接收到退出消息的节点在本地的 mCache 中搜索此节点,如果能找到节点,将此节点删除,同时将此节点退出信息广播出去。如果找不到节点,退出,此消息也不 Gossip 了。

意外退出:一个 Partner探测到一个节点失败,则发送离开消息。流程上和正常退出一致。

系统实现的关键技术研究 - 应用层组播网的构建

Page 13: 基于 P2P 技术的流媒体直播 系统研究与实现

缓存策略 缓存策略2 级缓存。第一级用队列,第二级采用循环队列。如图所示,根据调度策略采取非顺序接收数据包,保存在一级缓存里。一级缓存负责整个系统中数据包的传输,包的调度;将有序的数据包保存到自己的二级缓存里,主要负责本地播放。

缓存替换策略一级缓存采用 LRU 替换策略,替换固定时间内访问次数最少的媒体块包。

二级缓存采用先进先出策略替换

• 1 • 4 • 3 • 2 • 5 • 8 • 6 • 10

• 2 • 3 • 4

• 5

• 6

• 7

• 8• 9

• 10

• 11

• 1

• 缓存策略

系统实现的关键技术研究

Page 14: 基于 P2P 技术的流媒体直播 系统研究与实现

缓存策略

系统实现的关键技术研究

从P2P网络邻居节点来的数据包

minseq

音视频解复用

maxseq…… Minseq+i…… Minseq+1

音频解码播放

视频解码播放

进入音视频复解的顺序是从左到右0 1 0 1 1 0

Buffer Map ( BM )

Page 15: 基于 P2P 技术的流媒体直播 系统研究与实现

缓存策略

在 PolyTV 系统中,把流媒体数据分割成长度相同的多个 Transfer frame (TF) 帧,然后放入发送源的缓冲区里面,每帧长度为 TF_len字节,按 TF_sequence_number在缓冲区中顺序存储。在节点缓冲区中 TF帧的可用性用 BM 来记录。 BM另外还记录着当前节点中所存在的最高序列号 maxseq和最低序列号 minseq 的 TF帧。并且设定 BM长度为 maxseq-minseq+1 Bits ,每一个 bit 对应表示 TF帧的可用性,若可用设为 1 ,否则设为 0 。

系统实现的关键技术研究

TF_sync_ byte8 bits

TF_Seq_No24 bits

Reserved3 bits

EoR1 bit

Header pad indi1 bit

PT1 bit

Priority1 bit

RTP Start indi1 bit

RTP Payload

1 bit

Page 16: 基于 P2P 技术的流媒体直播 系统研究与实现

数据调度策略 数据调度的目的就是根据 partner 节点间互相交换的缓冲视图 (BM) 信息,如何尽快地从其他 partner 节点获取媒体数据,不同的调度算法对整个系统的数据分发的性能有很大的影响。

数据调度的主要约束有三个: 1. 播放时间 Deadline 的约束下,媒体数据必须在播放时

间到达之前获得,否则就没有任何意义。 2. 数据调度应充分考虑节点资源的拥有情况和节点服务能力,优先选择较优的节点获取数据。

3. 数据调度应充分考虑 sequence number最小的帧优先保障获取,由此确保数据帧最小的能有先到达播放。

系统实现的关键技术研究

Page 17: 基于 P2P 技术的流媒体直播 系统研究与实现

数据调度策略 -LFSA 为使整个系统的数据分发性能尽可能高。 PolyTV 系统

中的采用最少优先调度算法— LFSA (Least-first Scheduling Algorithm) 采用以下的原则:

1. 序列号最小的帧优先获取; 2. 稀少数据优先。在系统中,如果某个数据片断的提供者越少,资源则越紧俏,其就越难满足播放时间; Deadline 的要求,应在确保原则 1 的基础上优先获取资源分布较为紧俏的数据片断;

3. 对于拥有同一数据片段的两个以上 partner ,则选择服务能力强的 partner 请求数据;

4. 对数据调度中表现不良的 partner 节点予以更新替换。

系统实现的关键技术研究

Page 18: 基于 P2P 技术的流媒体直播 系统研究与实现

数据调度策略 算法描述: 1. 如果一个 TF帧有较小的 TF_sequence_number且仅有一个提供

者,则请求它;否则,它将被插入 buffered_data集合; 2. 在调度的每个循环中,首先考虑 buffered_data 中的 TF帧然后

才考虑其它的; 3. 如果一个 TF帧对应有多个潜在的提供者,则带有最小 req_num

的提供者将被选中; 4. 如果仍有两个或多个提供者带有相同的 req_num ,那么和当前

节点的 IP 地址最匹配的节点将被选中。 在以上描述中, req_num 是预先定义好的一个变量,并初始化为 0 。

对于每个节点而言,当有其它伙伴节点从它请求一个 TF帧时,req_num 加 1 。当它成功发送出去一个 TF帧时, req_num 减 1 。通过这种策略,调度算法将基于流媒体数据的实际传输状态来调整,并且根据 LFSA ,每个节点总是能快速地从有能力提供数据的伙伴获取数据。换句话说,有足够资源 ( 如网络带宽 ) 的伙伴节点总是能提供更多的数据给其它节点。

系统实现的关键技术研究

Page 19: 基于 P2P 技术的流媒体直播 系统研究与实现

与 DONet 模型中调度策略的比较

图 4-6 调度算法性能比较

系统实现的关键技术研究

Page 20: 基于 P2P 技术的流媒体直播 系统研究与实现

P2P 网络中 NAT 的穿越 几种解决方案

Connection reversal

STUN

TURN

A Novel Solution Based on ICMP

系统实现的关键技术研究

Page 21: 基于 P2P 技术的流媒体直播 系统研究与实现

STUN 方案穿越情况NAT 1

F R PR S SR

NAT

2

F

R

PR

S

SR

F: Full Cone NATR: Restricted Cone NATPR: Port Restricted Cone NATS : Symmetric NATSR: Symmetric Random NAT

STUN: Applicable

STUN: Not applicable

系统实现的关键技术研究

Page 22: 基于 P2P 技术的流媒体直播 系统研究与实现

A Novel Solution Based on ICMP终端2 终端1

Symmetric NAT 2(Random)

Symmetric NAT 1(Regular)Router

12

3 4

P10P20

IP=140 IP=130 IP=140 IP=120 IP=110

TTL = 0

图 4-8 新方法穿越 NAT 的过程

图 4-9 ICMP 数据包 payload 中校验和状态

Page 23: 基于 P2P 技术的流媒体直播 系统研究与实现

使用新方案后情况

NAT 1

F R PR S SR

NAT

2

F

R

PR

S

SR

F: Full Cone NATR: Restricted Cone NATPR: Port Restricted Cone NATS : Symmetric NATSR: Symmetric Random NAT

STUN: Applicable

STUN: Not applicable

STUN: Applicable( for new solution)

系统实现的关键技术研究

Page 24: 基于 P2P 技术的流媒体直播 系统研究与实现

内容提要 课题研究背景 PolyTV 系统设计 系统实现的关键技术 系统测试与评价 总结与展望 发表论文

Page 25: 基于 P2P 技术的流媒体直播 系统研究与实现

系统实现界面

图 5-1 测试结构图

系统测试与评价

Page 26: 基于 P2P 技术的流媒体直播 系统研究与实现

系统实现界面

系统测试与评价

Page 27: 基于 P2P 技术的流媒体直播 系统研究与实现

系统实现界面

系统测试与评价

Page 28: 基于 P2P 技术的流媒体直播 系统研究与实现

测试环境的搭建

流媒体分发服务器 WEB服务器P2P交互服务器视频采集

Peer节点 Peer节点

节目信息 XML视频流

P2P交互信息

P2P交互信息

媒体流

图 5-1 测试结构图

系统测试与评价

Page 29: 基于 P2P 技术的流媒体直播 系统研究与实现

测试结果分析与评价 (1)

图 5-2 不同规模下控制负载与伙伴数的关系

系统测试与评价

Page 30: 基于 P2P 技术的流媒体直播 系统研究与实现

测试结果分析与评价 (2)

图 5-3 不同规模下流畅度与伙伴节点数的关系

系统测试与评价

Page 31: 基于 P2P 技术的流媒体直播 系统研究与实现

测试结果分析与评价 (3)

图 5-4 不同规模下缓冲区填充率与伙伴节点数的关系

系统测试与评价

Page 32: 基于 P2P 技术的流媒体直播 系统研究与实现

测试结果分析与评价 (4)

掉线率 主观评价

10% 播放正常,无影响

20% 播放正常,无影响

30% 播放基本正常,偶尔出现图像停顿

40% 播放一段时间后画面停顿,需要缓冲一定时间方可恢复

50% 播放频繁停顿,无法忍受

60% 无法播放

表 5-1 不同掉线率情况下图像质量的主观评价

系统测试与评价

Page 33: 基于 P2P 技术的流媒体直播 系统研究与实现

内容提要 课题研究背景 PolyTV 系统设计 系统实现的关键技术 系统测试与评价 总结与展望 发表论文

Page 34: 基于 P2P 技术的流媒体直播 系统研究与实现

创 新 点1. 对现有应用层组播的构造方案进行了改进。该方案以流媒体应用为核心,通过 Gossip协议维护异构节点的拓扑结构,以动态节点选择提高了拓扑的稳定性。

2. 提出了一种新的 NAT 穿越方法,该方法可以穿越对称型 NAT ,有效提高了 P2P网络中节点资源的利用率。

Page 35: 基于 P2P 技术的流媒体直播 系统研究与实现

创 新 点3. 提出一种自适应的数据调度算法— LFSA 。该算法考虑了节点负载、网络延迟等因素来解决了数据调度效率低的问题。

4. 设计并实现了面向大规模网络的 P2P 流媒体直播系统— PolyTV ,该系统可以在互联网上进行大规模的视频直播。

Page 36: 基于 P2P 技术的流媒体直播 系统研究与实现

下一步工作1. 有效结合 DHT 技术 使用 DHT 构造 P2P 网络,

在数据传输过程中,对不同数据分片采用基于优先级的调度策略,可以保证流媒体播放的实时性。

2. 使用 TCP 协议构造覆盖网 在最初的设计中, P2P 网络的构建是基于 UDP 协议设计开发的,但由于 UDP 协议存在不可靠性,导致用户数量较多时登录困难。针对此问题,今后将使用 TCP协议完成覆盖网构造与维护,但同时带来了 NAT 穿越的问题, TCP 穿越 NAT 的问题必须解决。

Page 37: 基于 P2P 技术的流媒体直播 系统研究与实现

下一步工作3. 结合多描述编码技术 借助于高速容错信道编码

( 容错保护 ) 算法和多描述编码等技术,使得在任何情况下,当前节点从所有其它节点接收到的数据都可有效用于解码,从而在充分利用整个网络资源的前提下,可以最大化音视频媒体的解码重构信号质量。

4. 测试系统的设计与实现 如何有效地控制结点和收集报告,将会是一个挑战,因为无论是启动或升级程序,还是收集实验结果,所有的结点都将会集中地完成登录,上传或下载操作。

Page 38: 基于 P2P 技术的流媒体直播 系统研究与实现

内容提要 课题研究背景 PolyTV 系统设计 系统实现的关键技术 系统测试与评价 总结与展望 发表论文

Page 39: 基于 P2P 技术的流媒体直播 系统研究与实现

攻读硕士期间发表的学术论文1. 孙名松,周红敏,唐亮. 一种自适应的 P2P 流媒体数据

调度算法 [J].计算机应用, 2008 , (3).2. 周红敏,孙名松,唐亮.基于网络编码的 P2P 流媒体直

播系统研究 [J].计算机技术与发展, 2008 , (6).3. 孙名松,唐亮,周红敏. P2P 点播系统的客户端磁盘缓

存策略研究 [J].计算机工程, 2008 , (12).4. LIN KEZHENG, SHI JING, ZHOU HONGMIN. Improved

Unblocking Images Watermarking Algorithm Based on DWT and SVD[C]. Interna- tional Conference on Broadband Network & Multimedia Technology (ISTP No. BGW30), Beijing, 2007: 140-144.

5. 师 晶,林克正,周红敏.基于视频帧的彩色水印嵌入算法研究 [J].哈尔滨理工大学学报, 2008 , (6).

Page 40: 基于 P2P 技术的流媒体直播 系统研究与实现

恳请各位评审专家批评指正 谢谢大家!