【视频直播场景下P2P对等网技术①】挑战与形式化分析

我在熊猫直播亲自主持的最后一个项目,就是要试图通过P2P对等网技术来切实降低互联网视频直播的流量成本,对此有一些数据上&经验的积累和检验。很遗憾没有机会看到最后的结果,但也希望我们的经验能够帮助这个行业本身的成长,所以在此分享给大家。接下来的几篇文章,我将就P2P的设计、验证与经验,与大家一一分享。


让我们来设想一下场景:某赛事总决赛,数百万人同时在看比赛直播,这时一个新的观众刚打开直播,那么从这几百万人中选取哪些来建立P2P连接来拉直播流比较高效稳定呢?

接下来我们来分析一下这里面的约束条件:

  1. 该对等网络规模很大,有数百万个节点;
  2. 直播的业务场景表示每个正常观看的节点获取到的信息是相同的(不同于点播,直播视频流的时间轴是对齐的,至少是我们希望对齐的)(考虑到容错机制,至少是等价的);
  3. 每个节点的上行带宽是有限的,也就是说它能分享出去的流的份数是有限的;
  4. 每个节点都有一定概率随时掉线,为了增加视频流的稳定性,拉流应该有一定的冗余度
  5. 我们需要知道这个新的节点与网络中另外数百万个节点建立连接的性能和成本

基于上面的条件,我们做形式化定义如下:

  1. 设图 G G G是一个有序三元组, G = ( V ( G ) , E ( G ) , ω G ) G=(V(G),E(G), \omega_G) G=(V(G),E(G),ωG​),
  2. 其中 V ( G ) V(G) V(G)是图G的顶点集 ,内部的元素称为图 G G G的顶点(Vertex)
  3. E ( G ) E(G) E(G)是与 V ( G ) V(G) V(G)不相交的边集,内部的元素称为图 G G G的边(Edge)
  4. 对 ∀ v ∈ V \forall v \in V ∀v∈V, 记 d o ( v ) d_o(v) do​(v)表示以顶点 v v v为起点的边的条数; 记 d i ( v ) d_i(v) di​(v)表示以顶点 v v v为终点的边的条数

基于上面分析,约束条件的形式化描述为:

  1. ∀ v ∈ V , d i ( v ) ≥ A 1 且 d i ( v ) ≤ A 2 \forall v \in V, d_i(v)\geq A_1 且 d_i(v)\leq A_2 ∀v∈V,di​(v)≥A1​且di​(v)≤A2​,即要满足视频流正常播放,需要同时有至少 A 1 A_1 A1​路流。同时,记 ρ = A 2 A 1 \rho=\frac{A_2}{A_1} ρ=A1​A2​​为系统设计冗余度
  2. ∀ v ∈ V , ∃ d o ( v ) ≤ B v \forall v \in V, \exists d_o(v)\leq B_v ∀v∈V,∃do​(v)≤Bv​,等价于节点 v v v最大上行带宽。
  3. ω G \omega_G ωG​是联通性能函数, ∀ ( u , v ) ∈ E , ∃ ω ( u , v ) ∈ R + \forall (u,v)\in E, \exists \omega(u,v)\in R^+ ∀(u,v)∈E,∃ω(u,v)∈R+,称为这条边的联通性能。

带入场景,假设节点 F F F加入目标对等网络前一刻的网络有 m m m个顶点,则此时的核心问题是在 m m m个顶点中选 A 2 A_2 A2​个符合约束条件的且总联通性能 ∑ 1 A 2 ω ( v ) \sum_1^{A_2}\omega(v) ∑1A2​​ω(v)最大的组合给新加入的节点 F F F拉流。

顺着这个场景分析,我们看看要让新加入的节点 F F F获得最好的收视效果,还需要在解决哪些核心问题。

  1. 对于 ∀ ( u , v ) ∈ E \forall (u,v) \in E ∀(u,v)∈E,如何度量其联通性能,也即 ω ( u , v ) \omega(u,v) ω(u,v)是一个挑战。这需要了解运营商复杂的网络拓扑才能预测。
  2. 对于 G = { V , E , Ω } G=\{V,E,\Omega\} G={V,E,Ω},令 m = ∣ V ∣ m=|V| m=∣V∣, 则对于新加入的节点 F F F来说,有 C m A 2 C_m^{A_2} CmA2​​种可能的组合。考虑到 m m m可能会比较大(几百万),所以对于每个新节点的加入,计算量还是比较大的。

基于业务场景,考虑到 G G G中业已建立的连接不能因为新节点的加入而重构,可见对于整个 G G G来说,新节点 F F F按照最佳策略加入后形成的 G ′ G' G′也是全局最优的,这显然符合贪心算法的构造过程。

【视频直播场景下P2P对等网技术①】挑战与形式化分析相关推荐

  1. 【视频直播场景下P2P对等网技术②】任意两节点的联通性能评估

    [视频直播场景下P2P对等网技术②]任意两节点的联通性能评估 如上文([视频直播场景下P2P对等网技术①])所述,当一个新的节点 F F F加入现有的网络 G G G的时候,若 m = ∣ V G ∣ ...

  2. RTC在大规模直播场景下的技术分析

    RTC是延时非常低的CDN服务,RTC在一对一或者一对几的通话已经是非常成熟的服务了,现在很多应用都已经这么做了.大家如果有这种场景的可以直接往上走,已经没有什么技术障碍了. 我们今天聊的场景是一个对 ...

  3. 优酷智能档在大型直播场景下的技术实践

    作者 | 阿里文娱高级技术专家 肖文良 本文为阿里文娱高级技术专家肖文良在[阿里文娱2019双11猫晚技术沙龙]中的演讲,主要内容为如何通过优酷智能档,降低用户卡顿尤其是双11直播场景下,提升用户观看 ...

  4. 阿里技术分享:电商IM消息平台,在群聊、直播场景下的技术实践

    本文由淘宝消息业务团队李历岷(花名骨来)原创分享,首次发表于公众号"淘系技术",有修订和改动. 1.引言 本文来自淘宝消息业务团队的技术实践分享,分析了电商IM消息平台在非传统IM ...

  5. 实时音频混音技术在视频直播场景中的实践

    最近半年,视频直播领域中产生不少创新玩法,其中包括K歌直播和合唱直播.这些创新玩法都用到实时音频混音技术.今天我们来聊一下混音技术的实现,及其在创新玩法中的应用. \\ 混音的应用场景 \\ 混音,顾 ...

  6. 微博直播场景下,如何实现百万并发的答题互动系统

    内容来源:2018 年 09 月 07 日,新浪微博系统开发工程师陈浩在"RTC2018 实时互联网大会"进行<微博直播场景下百万并发的消息互动系统>演讲分享.IT 大 ...

  7. 从CV到ML 直播场景下新技术的应用

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/82392646 本文来自花椒 ...

  8. 视频会议场景下的弱网优化

    疫情将远程办公,视频会议推上了风口的同时,同样也为视频会议平台的运作带来了更多的挑战.蓝猫微会创始人兼CEO 邓昀泽在LiveVideoStack线上分享中针对视频会议系统优化中弱网定义,算法评估及技 ...

  9. 边缘计算在视频直播场景的应用与实践

    9月24日,火山引擎开发者社区第九期 Meetup 圆满落幕,来自腾讯云.七牛云.火山引擎的技术专家从抖音同款 RTC 能力.直播系统架构.边缘计算服务.视频云存储等方面为大家详细介绍直播创新玩法下的 ...

最新文章

  1. sqlmap mysql案例_sqlmap简单mysql注入演示附截图
  2. boost::histogram::algorithm::reduce用法的测试程序
  3. Consul入门04 - Consul集群 1
  4. 终端编译opengl程序编译运行_ubuntu编译opengl和demo之二(glfw版本)
  5. LeetCode 88. 合并两个有序数组 golang
  6. 信安精品课:第7章访问控制技术原理与应用精讲笔记
  7. 送货只服京东“特快送”:航空快件可送达近300个城市
  8. Mysql学习总结(61)——MySQL优化之DBA级优化整理汇总
  9. oracle10g生成awr报告,oracle 10g awr报告生成步骤及awr报告分析
  10. java遍历字符串_Java后端开发算法基础面试题分享,你离大厂也许就差这份面试题
  11. 《CCNA学习指南:Cisco网络设备互连(ICND1)(第4版)》——第1章网络功能
  12. oracle的sql的语法解析,oracle SQL解析步骤小结
  13. 经济学有必要学python吗_学习经济学用啥软件
  14. hp打印机一直显示正在打印中_安装惠普打印机出现“新设备现已连接”一直不动怎么办?...
  15. 答题小程序学习,题库答题类小程序,云开发+cms做后台,有错题集,积分排名,做题进度
  16. 阿里云物联网平台mqtt测试工具
  17. Docker原理及常见命令
  18. echarts地图api series_ECharts地图绘制和钻取简易接口详解
  19. Internal error. Please report to https://code.google.com/p/android/issues
  20. 宽依赖和窄依赖_Spark --【宽依赖和窄依赖】

热门文章

  1. 《可可西里》:一只被人类轮奸的藏羚羊
  2. java 打印表格文件
  3. 什么是ISBN码及其如何制作
  4. SpringBoot+Vue项目实现身体健康诊疗系统
  5. element-ui 获取当前行的 id
  6. 转: 大年三十整理的asp.net资料!(经典)
  7. 大数据在金融领域的应用案例解析
  8. c语言万年历闹钟程序,C语言万年历的源程序
  9. 在ubuntu中构建mingw-w64 for windows
  10. SpringBoot+Vue项目大学生网络教学平台的设计与实现