直播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 通过文件路径获取文件hash值
import hashlib import os,sys def CalcSha1(filepath): with open(filepath,'rb') as f: sha1obj = hashli ...
- 爬虫之Xpath详解
XPath介绍 XPath 是一门在 XML 文档中查找信息的语言.XPath 可用来在 XML 文档中对元素和属性进行遍历. XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 ...
- Linux命令(基础3)
关机重启 reboot poweroff ============================ linux命令分类 1.针对不同文件的管理命令 1.1 目录 FHS 文件系统层次化标准 绝对路径: ...
- 图解HTTP之HTTPS详解
背景:随着越来越多的主流网站已经使用了HTTPS,作为服务器端开发者,就必须了解HTTPS的优势与劣势. 在HTTP协议中有可能存在信息窃听或身份伪装等问题,而使用HTTPS通信机制可以有效地防止这些 ...
- (C++) Assertion failed: !"Bad error code", file VMem.c, line 715
(C++) Assertion failed: !"Bad error code", file VMem.c, line 715 Misc error. myInterface F ...
- 搜狗员工用百度算什么,谷歌员工当着老板的面用bing,结果悲剧了!
之前看到一篇文章,写的是搜狗的员工遇到问题时,用百度,结果网友的评论真是亮瞎眼.今天,W3Cschool小师妹将为大家分享一个类似的故事,那就是谷歌员工当着老板的面,竟然用BING. 这位谷歌员工称, ...
- PKU 1573 Robot Motion(简单模拟)
原题大意:原题链接 给出一个矩阵(矩阵中的元素均为方向英文字母),和人的初始位置,问是否能根据这些英文字母走出矩阵.(因为有可能形成环而走不出去) 此题虽然属于水题,但是完全独立完成而且直接1A还是很 ...
- PV、TPS、QPS是怎么计算出来的?
PV=page viewTPS=transactions per secondQPS=queries per secondRPS=requests per second RPS=并发数/平均响应时间 ...
- Python的socket网络编程(一)
(注:本文部分内容摘自互联网,由于作者水平有限,不足之处,还望留言指正.) 先写首诗,抒抒情. 一. 食堂.校园 见过你那么多次 卑微的我 只敢偷偷瞄上一眼 心扑通 扑通 春天真好 不是么 二. 学子 ...
- input 虚拟键盘
if (!Element.prototype.scrollIntoViewIfNeeded) { Element.prototype.scrollIntoViewIfNeeded = function ...