直播P2P技术2-低延迟模型
低延迟模型
由上一篇文章我们知道:网状拓扑虽最大化利用了所有节点的资源却无法降低数据延迟,而树状拓扑尽管数据传输效率高,延迟低,但只利用了少部分节点的带宽资源,不适应高码率的直播P2P网络。
那么如何在高码率的直播中实现延迟低的可用P2P网络呢?
其实可以将树、网状拓补有效地结合起来,也就是使节点在全局上属于对等关系,而在一定程度上又属于树中的父子关系。这样既保证了每个节点都参与数据下载和上传过程,使得单个节点平均上、下行带宽要求降低,又保证节点之间数据交换快速高效。称这种结构为:树网状结合拓扑。结构如下图1.所示。

为了方便讨论树网状网络拓扑,作如下定义:
- 数据全集:整个直播数据片段构成的集合
- 数据集:数据片段的集合,互不相交,且并集构成整个直播数据的全集
- 节点基本数据集:原始分配给每一个节点从服务器下载的数据集
- 节点数据集:节点基本数据集与从其他节点订阅的数据集的并集
每一个节点被分配一个基本数据集的下载任务,数据集的数量全局固定可知,节点数据集相同的节点不产生任何关系,数据集不同的节点可在不同的数据集上产生不同的订阅。
节点之间控制消息和数据消息过程如下图2.所示。

假设数据集数量为M,直播数据码率为B,则单个节点的最小平均下行带宽Bd,Bu=(B/8)/M,最小平均上行带宽Bu,Bu=(M-1)/M*(B/8)。节点订阅数据集成功后,单个数据块的单挑延迟T,有T=Td,n跳数据块延迟Tn,有Tn=n*Td。理想情况下,每一个节点的最大P2P数据分享率P,有P=(M-1)/M。
跳数越多(树的高度越高),节点的延迟就越大。所以一般可以将直播的数据划分成多一些的数据集,即M值大一些,数据跳数固定为1(每一棵树树高为2)。同时,M越大,P也就越大。
当然,这个模型也有一些缺点。整个P2P网络中,有很多棵基于对数据集订阅产生的树,如果每种数据集的订阅树总数量不均衡,将会导致订阅树更少的那部分数据集节点上行带宽压力增大。当然这个弱点是可以弥补的,取决于服务器数据集划分算法和客户端节点的数据集任务分配的算法。
总的来说,树网状网络拓扑既有效地利用了每个节点的上下行资源,又能做到PUSH模型的低延迟数据推送,很适合于低延迟的直播P2P场景。
直播P2P技术2-低延迟模型的更多相关文章
- 直播P2P技术1-技术入门
1. 直播协议 直播协议主要有RTMP,HLS,MPEG-DASH,RTSP,HTTP-FLV等.每种协议都各有长短,比如RTMP延迟低,但诞生于Adobe,依赖于Flash Player,在如今FL ...
- 直播P2P技术3-伙伴节点质量评估及子流订阅
以上模型,暂且称之为W-P2P吧.
- 实时视频直播客户端技术盘点:Native、HTML5、WebRTC、微信小程序
1.前言 2017 年 12 月,微信小程序向开发者开放了实时音视频能力,给业内带来广阔的想象空间.连麦互动视频直播技术在 2016 年直播风口中成为视频直播的标配,然而只有在原生的 APP 上才能保 ...
- P2P技术如何将实时视频直播带宽降低75%?
本文内容来自学霸君资深架构师袁荣喜的技术分享. 1.前言 实时视频直播经过去年的千播大战后已经成为互联网应用的标配技术,但直播平台的成本却一直居高不下,各个平台除了挖主播.挖网红以外,其背后高额的带宽 ...
- 如何实现1080P延迟低于500ms的实时超清直播传输技术<转>
转载地址:http://www.yunweipai.com/archives/9037.html 最近由于公司业务关系,需要一个在公网上能实时互动超清视频的架构和技术方案.众所周知,视频直播用 CDN ...
- 如何实现1080P延迟低于500ms的实时超清直播传输技术
再来当一次技术搬运工,内容来自高可用框架,学霸君工程师袁荣喜的如何实现1080P延迟低于500ms的实时超清直播传输技术. 导语:视频直播是很多技术团队及架构师关注的问题,在实时性方面,大部分直播是准 ...
- 【转】实现1080P延迟低于500ms的实时超清直播传输技术
最近由于公司业务关系,需要一个在公网上能实时互动超清视频的架构和技术方案.众所周知,视频直播用 CDN + RTMP 就可以满足绝大部分视频直播业务,我们也接触了和测试了几家 CDN 提供的方案,单人 ...
- QQ视频直播架构及原理 流畅与低延迟之间做平衡 音画如何做同步?
QQ视频直播架构及原理 - tianyu的专栏 - CSDN博客 https://blog.csdn.net/wishfly/article/details/53035342 作者:王宇(腾讯音视频高 ...
- PrismCDN 网络的架构解析,以及低延迟、低成本的奥秘
5 月 19.20 日,行业精英齐聚的 WebRTCon 2018 在上海举办.又拍云 PrismCDN 项目负责人凌建发在大会做了<又拍云低延时的 WebP2P 直播实践>的精彩分享. ...
随机推荐
- python - while语句/pass/死循环/break/continue/while...else...
程序开发的原则: 写重复代码 是可耻的行为: 1.while 条件: 执行代码... #循环打印0-100count = 0 while count <= 100: print("lo ...
- Java 之 JUC
1. JUC 简介 在 Java 5.0 提供了 java.util.concurrent(简称JUC)包,在此包中增加了在并发编程中很常用的工具类, 用于定义类似于线程的自定义子系统,包括线程池,异 ...
- NoSQL文章
MongoDB Bugsnag的MongoDB分片集群使用经验
- git学习------>从SVN迁移到Git之后,项目开发代码继续在SVN提交,如何同步迁移之后继续在SVN提交的代码到Git?
最近逐步逐步的将公司的项目都从SVN往Git迁移了,但是想团队成员都能够一步到位就迁移到Git是不可能的,因为还有大部分人都还不会Git,所以整个过渡过程估计得大半年. 因此导致虽然项目迁移过来了,但 ...
- 006-Hadoop Hive sql语法详解1-数据结构和Hive表建立
1.认识hive: Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,可以将结构化的数据文件映射为一张数据库表, ...
- NGS中的一些软件功能介绍
1.bowtie 短序列比对工具,blast也是短序列比对工具,速度快,结果易理解. 输入可以是fastq或者fasta文件. 生成比对结果文件sam格式的吧. 2.bwa 转自:https://ww ...
- PAT 1033 To Fill or Not to Fill[dp]
1033 To Fill or Not to Fill(25 分) With highways available, driving a car from Hangzhou to any other ...
- PKU 3020 Antenna Placement(拆点+最小边覆盖)(最大匹配)
题目大意:原题链接 一个矩形中,有N个城市’*’,现在这n个城市都要覆盖无线,若放置一个基站,那么它至多可以覆盖相邻的两个城市.问至少放置多少个基站才能使得所有的城市都覆盖无线? 提示:看清楚题目,' ...
- 清晰讲解LSB、MSB和大小端模式及网络字节序
时隔一个月又回到了博客园写文章,很开心O(∩_∩)O~~ 今天在做需求的涉及到一个固件版本的概念,其中固件组的人谈到了版本号从MSB到LSB排列,检索查阅后将所得整理如下. MSB.LSB? MSB( ...
- vue父子组件传值加例子
例子:http://element-cn.eleme.io/#/zh-CN/component/form 上进行改的 父传子:用prop:子组件能够改变父组件的值,是共享的,和父操作是 ...