tencent cloud

动态加速配置参考

下载
聚焦模式
字号
最后更新时间: 2026-06-12 16:36:44

一、概述

动态加速是指 SDK 持续监测网络质量,只在网络变差时自动建议开启加速,网络恢复后建议关闭。这样可以在保障体验的同时节省加速流量成本。动态加速的核心问题只有两个:什么时候开?什么时候关?本文档目标旨在帮助理解动态加速的策略配置逻辑,以及不同场景下加速参数的选择和调整。

二、核心概念

1. 三个关键维度

配置动态加速前,需要理解三个相互独立但有推荐搭配关系的维度:
动态加速的场景分别有游戏、实时音视频、直播推流;
模式可选择多发选收模式(双发)、实时模式(RTC)、聚合模式;
动态加速策略包括探测启动策略、快启动策略、动态回源策略和建议关闭策略。

2. 场景与模式的推荐搭配

以下是经过验证的推荐搭配(非强制),一般按推荐模式搭配效果最佳:
场景
推荐模式
原因
典型客户
游戏(FPS/MOBA)
多发选收(双发)
小包业务,追求极低延迟
对战类手游
实时音视频
实时模式(RTC)
音视频流对连续性要求高
语音通话
视频会议
直播推流
聚合模式
大带宽需求,聚合多通道
游戏
户外直播

三、策略详解

四个策略覆盖了动态加速从开启到关闭的完整判断链路:
策略
解决什么问题
触发后行为
网络持续变差,需要开加速。
回调客户端后由客户决定。
网络突然恶化,紧急需要加速。
回调客户端后由客户决定。
加速链路比直连还差。
SDK 自动回退到直连。
网络恢复,加速不再必要。
回调客户端后由客户决定。
注意:
策略配置独立于模式。不同场景和模式的区别主要体现在策略参数的推荐值不同,策略逻辑本身是通用的。

1. 探测启动策略

SDK 持续监测网络质量,当指标在一段时间内持续超出阈值时,回调给客户端建议开启加速。属于渐进式检测,适合发现网络正在恶化的趋势。判断逻辑:在【时间窗口】内,平均时延超过阈值、或抖动超过阈值、或丢包率超过阈值(三者满足任一),即触发回调。通俗地说,过去 X 秒内,延迟太高/抖动太大/丢包太多,就建议开加速。下表为参数推荐值。
参数
含义
游戏场景
实时音视频
推流场景
时间窗口
观察时间段
8s
8s
建议全时开启(无需配置)
时延阈值
平均延迟超此值触发
60ms
80ms
-
抖动阈值
延迟波动超此值触发
15ms
20ms
-
丢包阈值
丢包率超此值触发
5%
5%
-
说明:
游戏场景阈值更低是因为游戏对延迟极度敏感(60ms 即可感知卡顿),需要更早触发。推流场景因为带宽需求大且持续,建议全时开启,无需探测触发。

2. 快启动策略

与探测启动互补,探测启动是8秒窗口的趋势判断,快启动是2秒窗口的紧急判断。当网络突然急剧恶化时(如进电梯、Wi-Fi 断开),快启动能更快触发。两个策略同时生效,任一触发即回调。判断逻辑:在【时间窗口】内,时延超过【时延阈值】即触发。注意快启动只看时延一个指标(不看抖动和丢包),窗口更短、阈值更高,专门用于捕捉突然变差。下表为参数推荐值。
参数
含义
游戏场景
实时音视频
推流场景
时间窗口
检测窗口时长
2s
2s
建议全时开启
时延阈值
延迟超此值触发
80ms
100ms
-
探测启动和快启动的对比如下:
对比
探测启动
快启动
窗口 / 指标
8s / 时延+抖动+丢包
2s / 仅时延
触发阈值
较低(灵敏)
较高(防误触)
定位
发现持续变差的趋势
捕捉突然恶化的突变

3. 动态回源策略

保护机制——加速开启后,如果加速链路本身出现严重问题(比直连还差),SDK 自动将流量回退到直连主链路,避免加速反而更卡。与建议关闭策略的区别:动态回源是 SDK 自动执行的保护动作(不等客户决定),建议关闭则是通知客户由客户自行决定。触发条件如下(满足任一即自动回源)。
条件
判断规则
通俗含义
条件一完全失联
加速链路连续丢包达到【连续丢包次数】,且主链路未同时失联。
加速链路断了,但直连还通,应立即回退。
条件二延迟极高
加速链路连续【连续高延迟包数】个包的延迟≥【单包延迟上限】ms。
没断但延迟已高到不可接受。
条件三持续比直连差
【评估窗口】内,加速平均延迟 > 主链路×【延迟比例阈值】%,且加速平均延迟 >【最低延迟阈值】ms。
长期观察走加速还不如直连,且延迟确实不低。
说明:
条件三为什么需要最低延迟阈值?——避免误判。例如主链路10ms、加速12ms 虽然超过110%,但12ms 本身完全可接受,不应回源。加上最低阈值(66ms)可过滤此类情况。
各场景参数推荐值如下。
条件
参数
游戏(多发选收)
实时音视频(RTC)
条件一
连续丢包次数
4个包
4个包
条件二
连续高延迟包数
4个包
不启用
单包延迟上限
400ms
-
条件三
评估窗口时长
60秒
60秒
延迟比例阈值
110%
110%
最低延迟阈值
66ms
66ms
推流/聚合模式
仅启用条件一(连续丢包次数=4),不启用条件二、三
说明:
实时场景不启用条件二,因 RTC 协议自身有重传机制。聚合模式不启用时延类条件(二、三),因聚合天然会有较高延迟。

4. 建议关闭策略

当加速不再必要或物理条件不支持时,SDK 回调建议客户端关闭加速。客户端可选择接受或忽略。
触发条件如下(满足任一即回调建议)。
条件
判断规则
通俗含义
条件一仅剩单网卡
设备仅剩一个网卡可用,等待【等待时长】秒后建议关闭。
多发需要至少两个网卡,只剩一个时加速无意义。
条件二完全无网
设备无可用网卡,则立即建议关闭。
没网了加速自然要关。
条件三效果长期不佳
【质量评估窗口】内加速时延 > 主链路×【时延比例阈值】%,且 抖动 > 主链路×【抖动比例阈值】%。
长期加速效果不如直连,关了省成本。
条件四副链路全挂
【测量窗口】秒内副链路全部丢包。
所有副网卡访问超时,加速无意义。
各场景参数推荐值如下。(推流/聚合模式:仅启用条件一(等待10秒)和条件二(立即触发),不启用条件三、四。聚合模式不建议用时延条件做关闭判断。)
条件
参数
游戏(多发选收)
实时音视频(RTC)
条件一
等待时长
10秒
10秒
条件二
(立即触发)
-
-
条件三
质量评估窗口
300秒
300秒
时延比例 / 抖动比例
100% / 80%
100% / 80%
条件四
测量窗口
不启用
10秒

四、设置接口

1. 探测启动策略

测速配置对象,通过设置此参数,实现动态加速效果。

1.1 Android SDK

API
描述
setRTT
设置时延阈值
setLoss
设置丢包率阈值
setJitter
设置抖动阈值
setTime
设置滑动窗口测量时间
setRTT
设置时延阈值,当滑动窗口内终端实际网络时延大于设置的时延阈值时,会回调 onStartMpAcc 接口。
public MeasureConfig setRTT(int RTT)
参数说明:
参数
类型
描述
RTT
int
延迟阈值(毫秒)
setLoss
设置丢包率阈值,当滑动窗口内终端实际网络丢包大于设置的丢包阈值时,会回调 onStartMpAcc 接口。
public MeasureConfig setLoss(int loss)
参数说明:
参数
类型
描述
loss
int
丢包率百分比阈值(0-100)
setJitter
设置抖动阈值,当滑动窗口内终端实际网络抖动大于设置的抖动阈值时,会回调 onStartMpAcc 接口。
public MeasureConfig setJitter(int jitter)
参数说明:
参数
类型
描述
jitter
int
网络抖动阈值(毫秒)
setTime
设置滑动窗口测量时间。
public MeasureConfig setTime(int time)
参数说明:
参数
类型
描述
time
int
测量时长,单位:ms

1.2 iOS SDK

属性
描述
time
滑动窗口测量时间,单位:ms
rtt
时延阈值,单位:ms
loss
丢包率百分比阈值(0-100)
jitter
抖动阈值,单位:ms

2. 快启动策略

通过设置快启动窗口时间和快启动时延阈值实现快启动。

2.1 Android SDK

API
描述
setQuickTime
设置快启动窗口时间
setQuickRtt
设置快启动时延阈值
setQuickRtt
设置快启动时延阈值,此接口主要针对时延陡增场景,当快启动窗口内终端实际网络时延大于设置的快启动时延阈值时,会回调 onStartMpAcc 接口。
public MeasureConfig setQuickRtt(int quickRtt)
参数说明:
参数
类型
描述
quickRtt
int
快启动时延阈值,单位:ms
setQuickTime
设置快启动窗口测量时间。
public MeasureConfig setQuickTime(int quickTime)
参数说明:
参数
类型
描述
quickTime
int
快启动窗口时间,单位:ms

2.2 iOS SDK

属性
描述
quickTime
快启动窗口时间,单位:ms
quickRtt
快启动时延阈值,单位:ms

3. 动态回源策略

逃生回源自定义对象,如果业务未设置 AdditionalOptions,SDK 会采用默认逃生逻辑(触发 onAccException),如果业务已设置,则 SDK 逃生逻辑以业务设置为主。

3.1 Android SDK

API
描述
PacketLossEscape
加速链路连续【packetLossCount】失联,触发逃生。
MaxRttEscape
加速链路连续【maxRttCount】ping 值大于等于【rttThreshold】ms,触发逃生。
RttExceptionEscape
加速链路【detectWindowTime】ms 平均 ping 值大于主链路【rttDiffThreshold】%,并且 acc 平均时延大于【accBenchmarkRtt】ms,触发逃生。
StopAccRemind
加速链路【detectWindowTime】内平均时延大于主链路【rttDiffThreshold】%,且抖动大于主链路【jitterDiffThreshold】%,建议关闭加速(触发 onStopMpAcc)。
setAdditionalOptions
设置逃生回源自定义选项。
setAdditionalOptions
设置逃生回源自定义选项。
public MeasureConfig setAdditionalOptions(AdditionalOptions additionalOptions)

3.2 iOS SDK

属性
描述
packetLossEscape
加速链路连续【packetLossCount】失联。
maxRttEscape
加速链路连续【maxRttCount】ping 值大于等于【rttThreshold】ms。
rttExceptionEscape
加速链路【detectWindowTime】平均 ping 值大于主链路【rttDiffThreshold】%,并且 acc 平均时延大于【accBenchmarkRtt】ms,触发逃生。
stopAccRemind
加速链路【detectWindowTime】内平均时延大于主链路【rttDiffRate】%,且抖动大于主链路【jitterRate】%,建议关闭加速,建议关闭加速(触发 onStopMpAcc)。
additionalOptions
设置逃生回源自定义选项。

4. 建议关闭策略

该策略一般不需要修改配置,采用默认值。如需修改在 StopAccRemind 进行修改。

4.1 Android SDK

API
描述
StopAccRemind
加速链路【detectWindowTime】内平均时延大于主链路【rttDiffThreshold】%,且抖动大于主链路【jitterDiffThreshold】%,建议关闭加速(触发 onStopMpAcc)。
setDisableSlaveLossDetect
设置禁用从路丢包检测。
setDisableSlaveLossDetect
设置禁用从路检测,针对快切模式,默认不禁用。如果在测量窗口内,从路时延出现100%丢包现象,将会回调 onStopMpAcc 提醒关闭加速。
public MeasureConfig setDisableSlaveLossDetect(boolean disableSlaveLossDetect)
参数说明:
参数
类型
描述
disableSlaveLossDetect
boolean
true:禁用
false:不禁用

4.2 iOS SDK

属性
描述
stopAccRemind
加速链路【detectWindowTime】内平均时延大于主链路【rttDiffRate】%,且抖动大于主链路【jitterRate】%,建议关闭加速(触发 onStopMpAcc)。
disableSlaveLossDetect
设置禁用从路丢包检测
true:禁用
false:不禁用

五、示例代码

详情请参见 动态加速


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈