直播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 直播实践>的精彩分享. ...
随机推荐
- Websocket - Websocket原理(握手、解密、加密)、基于Python实现简单示例
一.Websocket原理(握手.解密.加密) WebSocket协议是基于TCP的一种新的协议.WebSocket最初在HTML5规范中被引用为TCP连接,作为基于TCP的套接字API的占位符.它实 ...
- Service Receiver Activity 之间的通信
一.Activity与Service 1. 通过Intent,例子如下: Intent intent = new Intent(this, Myservice.class); // intent .p ...
- Eclipse集成SVN
安装Subversion1.82(SVN)插件 简介 :SVN是团队开发的代码管理工具,它使我们得以进行多人在同一平台之下的团队开发. 解决问题:Eclipse下的的SVN插件安装. 学到 ...
- linux 这是定时任务
1. 编写shell脚本:vim test.sh #/bin/bash echo "hello world" 2.crontab任务配置基本格式: * * * * * comm ...
- TP自适应
最近又要求职了,梳理了下这两年折腾的东西,发现有个产品很可惜,都开发完了,但是没上市.中兴的一款手表,我很喜欢那个金属壳子,结实,拿在手里沉甸甸,可以用来砸核桃. 当时调TP的时候,换了几个厂家,程序 ...
- oracle RMAN复制数据库
列出创建副本数据库的目的 • 选择用于复制数据库的方法 • 使用RMAN 复制数据库 • 使用RMAN 备份复制数据库 • 基于正在运行的实例复制数据库 使用副本数据库 • 使用副本数据库可执行以 ...
- Django-session中间件源码简单分析
Django-session中间件源码简单分析 settings里有关中间件的配置 MIDDLEWARE = [ 'django.middleware.security.SecurityMiddlew ...
- VirtualBox AndroidX86 网络设置
在Virtualbox中,把虚拟机网络设为“网络地址转换(NAT)”模式,高级中控制芯片(T)选择:PCnet-FAST III(Am79C973), 然后启动你的android-x86 4.0虚拟机 ...
- 002-jdk10安装
下载地址: 1.百度云下载地址.(当然也可以官网下载,都一样) 地址:https://pan.baidu.com/s/13oZh_5tXb_Xadg9f-y2Idw 密码:a9h8 安装jdk: 2. ...
- DOM—节点
节点的相关属性 1.nodeType:节点类型.返回的是一个数字,这个数字代表节点类型,只读. 节点类型: 1 — 元素类型:元素节点(标签) 节点类型: 2 — 元素类型:属性节点 节点类型: 3 ...