InfoQ|阿里淘系自研标准化协议库 XQUIC 首次公开:直播高峰期卡顿可降低 30%( 三 )
本文插图
图 4. XQUIC 内部的连接状态机设计(参考 TCP)XQUIC 拥塞控制算法模块我们将 XQUIC 传输层的内部设计放大 , 其中拥塞控制算法模块 , 是决定传输行为和效率的核心模块之一 。
本文插图
图 5. XQUIC 拥塞控制算法模块设计为了能够方便地实现多套拥塞控制算法 , 我们将拥塞控制算法流程抽象成 7 个回调接口 , 其中最核心的两个接口 onAck 和 onLost 用于让算法实现收到报文 ack 和检测到丢包时的处理逻辑 。 XQUIC 内部实现了多套拥塞控制算法 , 包括最常见的 Cubic、New Reno , 以及音视频场景下比较流行的 BBR v1 和 v2 , 每种算法都只需要实现这 7 个回调接口即可实现完整算法逻辑 。
为了方便用数据驱动网络体验优化 , 我们将连接的丢包率、RTT、带宽等信息通过埋点数据采样和分析的方式 , 结合每个版本的算法调整进行效果分析 。 同时在实验环境下模拟真实用户的网络环境分布 , 更好地预先评估算法调整对于网络体验的改进效果 。
面向业务场景的传输优化XQUIC 在 RPC 请求场景降低网络耗时 15% , 在短视频场景下降低 20% 卡顿率 , 在直播场景高峰期降低 30% 卡顿率、提升 2% 秒开率(相对于 TCP) 。 以下基于当下非常火热的直播场景 , 介绍 XQUIC 如何面向业务场景优化网络体验 。
优化背景部分用户网络环境比较差 , 存在直播拉流打开慢、卡顿问题 。
本文插图
图 6. 某节点丢包率和 RTT 统计分布这是 CDN 某节点上统计的丢包率和 RTT 分布数据 , 可以看到 , 有 5% 的连接丢包率超过 20% , 0.5% 的连接 RTT 超过 500ms , 如何优化网络较差用户的流媒体观看体验成为关键 。
秒开卡顿模型
本文插图
图 7. 直播拉流模型直播拉流可以理解为一个注水模型 , 上面是 CDN 服务器 , 中间是播放器缓冲区 , 可以理解成一个管道 , 下面是用户的体感 , 用户点击播放时 , CDN 不断向管道里注水 , 当水量达到播放器初始 buffer 时 , 首帧画面出现 , 然后播放器以一定速率排水 , 当水被排完时 , 播放器画面出现停顿 , 当重新蓄满支持播放的水后 , 继续播放 。
我们假设 Initial Buffer(首帧)为 100K(实际调整以真实情况为准) , 起播时间 T1 < 1s 记为秒开 , 停顿时间 T2 > 100ms 记为卡顿 。
1. 优化目标
- 提升秒开:1s 内下载完 100K
- 降低卡顿:保持下载速率稳定 , 从而保持管道内始终有水
- 提升秒开核心 -- 快
- 高丢包率用户:加快重传
- 高延迟用户:减少往返次数
- 降低卡顿核心 -- 稳
- 优化拥塞算法机制 , 稳定高效地利用带宽
- 基于路径时延(如 Vegas、Westwood)
- 基于丢包(如 Cubic、NewReno)
推荐阅读
- 阿里|阿里焦虑,饿了么推“百亿补贴”,外卖市场狼烟再起
- |BATJ罕见联手!一公司被百度京东腾讯阿里联合申诉,怎么了?
- 阿里巴巴|高水平的管理者都遵守的6条管理圣经,读懂这些,管理越来越顺
- 百度|百度网盘龟速下载?阿里进军网盘市场:不限速下载!
- 互联网|阿里CCO推“网购新人服务计划”提供直播教学服务
- 阿里巴巴|闲鱼开启“百日专项行动”,整治潜在擦边球商品
- 互联网|京东停用申通发货,阿里拒绝接入京东物流是“分手”主因?
- 京东|电商财报“三国杀”:拼多多用户年底超阿里?
- 广电|阿里、国网入股“新广电” 千亿级巨头呼之欲出
- 阿里|阿里“收网”?
