多网聚合加速 动态加速配置参考

动态加速是指 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),默认30000
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】%,建议关闭加速。
additionalOptions 设置逃生附件选项。

20、4. 建议关闭策略

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

21、4.1 Android SDK

API 描述
StopAccRemind 加速链路【detectWindowTime】内平均时延大于主链路【rttDiffThreshold】%,且抖动大于主链路【jitterDiffThreshold】%,建议关闭加速(触发 onStopMpAcc)。
setDisableSlaveLossDetect 设置禁用从路丢包检测。

setDisableSlaveLossDetect

设置禁用从路检测,针对快切模式,默认不禁用。如果在测量窗口内,从路时延出现100%丢包现象,将会回调 onStopMpAcc 提醒关闭加速。

public MeasureConfig setDisableSlaveLossDetect(boolean disableSlaveLossDetect)

参数说明:

参数 类型 描述
disableSlaveLossDetect boolean true:禁用 false:不禁用

22、4.2 iOS SDK

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

23、五、示例代码

详情请参见 动态加速。

赞 (0)
上一篇 4天前
下一篇 4天前