×

【安全课堂】UPD流控的原理
  

新手642743 5603

{{ttag.title}}
UPD流控的原理




一、背景

对于国内一些P2P流媒体应用,通过控制上行流量的方法才能较好的控制住下行流量,通过对线路整体负载的监控,也能实现带宽空闲时允许P2P应用多使用带宽,关键业务启动线路带宽繁忙时让P2P应用退让带宽。现有方案的主要缺陷在于流控通过丢包控制下行流量,但是缺乏流控机制的应用不会因为我们的丢包而降低外网流量。

二、实现原理

(1)流控模型与PID算法

对于流控模型,认为到达设备的下行流量的产生源自于内网上行流量的请求,即Vdn(t) = F(Vup(t-t0)),这是一个理想模型,t0是延时。针对这一模型可以使用PID算法构成闭环控制系统:



原始PID算法公式:


第一个单项式是对误差e进行比例计算,用于匹配输入信号与输出信号之间存在的比例关系;第二个单项式是对误差e进行积分计算,用于消除历史累积误差;第三个单项式是微分计算,用于预测未来的变化趋势。

数字系统中需要使用离散量的PID算法,令t=kT,T为离散量采样周期,k为自然数,离散PID算法公
式:


实际应用中,离散式需要存储历史误差用于积分,且计算直接产生的u(kT)容易出现突变,造成系统严重抖动,因此使用增量式,每次计算u(kT)的增量即可,以T=1为周期,离散PID增量式:



缩放比例tuning= ,参数sensitive用于调节灵敏度,可以在误差e较大时提高sensitive,加快调节速度,误差e较小时降低sensitive,提高稳定性。

(2)通道缩放控制

对于基于令牌桶的HTB算法,通过扣除令牌数来限制发包速率,要缩放通道带宽只需要缩放扣除的令牌数即可,例如以前需要扣除tok个令牌,缩放后需要扣除的令牌数


(3)PID参数的自适应调整


PID算法应用的关键在于P、I、D三个参数的选取,在预研的过程中对60KB/s,200KB/s,400KB/s的线路进行了测试,发现(kp, kp, kd)=(50,20,5)是一组效果较好的经验值。

这三个参数的选取与被控制系统自身特性有关,不同的内网应用、不同的线路带宽可能有差异,通常PID算法应用可以使用遗传算法、粒子群算法等群体智能,但流控没办法搞大批量流控设备计算,最主要的还是不同的部署场景是有个体差异的,所以采用了一种类似于A*的搜索算法,在(p,i,d)三维空间搜索某个最佳点。

设定一个估值函数fitness,每个自适应周期对P、I、D三个参数之一进行加或减步长的操作,然后在周期结束后计算新的fitness,如果fitness减小了,说明适应效果好,于是沿着当前调节方向继续增或减步长的操作;如果fitness增大了,说明适应效果不好,于是回滚上一步操作,翻转调节方向并换一个参数继续调节。

fitness的设定需要描述期望的控制效果:误差最小,抖动最小。所以可以用误差的离散系数加上抖动的离散系数表示,离散系数是标准方差与平均值的比值,为了省去计算平均值的麻烦,可以取控制目标值。

(4)充分利用空闲带宽及向关键业务退让带宽


设定被控通道最小带宽为min_bw,最大带宽为max_bw(可接近线路带宽),按照线路实际流量root_chn动态调整被控通道带宽obj_bw,使线路实际流量在80%~90%的最大带宽间浮动:

当root_chn > 90%的线路带宽时,obj_bw= (obj_bw * 3 + min_bw) / 4;
当root_chn < 80%的线路带宽时,obj_bw= (obj_bw * 3 + max_bw) / 4;

三、实现效果

1 从200KB的线路带宽测试中发现,加入参数自适应的PID动态流控后,被控制的P2P通道的抖动在30%左右,当P2P通道与线路带宽以及其他通道的相对比重较小时,P2P抖动的影响也较小,流控效果好;当P2P通道占50%的线路带宽时,流控效果较差。

2 对于带宽避让,从400KB线路测试发现对p2p的动态流控可以在1分钟以内退让大部分带宽,2分钟以内完成退让。

3 如果多个通道内的流量没有关联,同时控制多个通道的效果和控制单个的效果相同,没有区别。

4 开启动态流控后,下行速率会在目标附近抖动,从测试情况看,抖动后的有效流量依然在100KB以上,所以内网视频体验不受影响。

打赏鼓励作者,期待更多好文!

打赏
暂无人打赏

Sangfor_闪电回_朱丽 发表于 2016-4-29 09:10
  
上网行为管理流控效果还是很不错的,原来有高招~
来自月球 发表于 2016-4-29 13:26
  
好高深的样子,了解下。谢谢分享
sowkd 发表于 2019-5-8 10:22
  
今天天气真好啊,心情也美美的!
发表新帖
热门标签
全部标签>
技术盲盒
西北区每日一问
安全效果
每日一问
干货满满
新版本体验
【 社区to talk】
技术笔记
功能体验
技术咨询
产品连连看
标准化排查
GIF动图学习
2023技术争霸赛专题
每周精选
信服课堂视频
通用技术
自助服务平台操作指引
秒懂零信任
技术晨报
安装部署配置
答题自测
原创分享
升级&主动服务
社区新周刊
POC测试案例
畅聊IT
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
安全攻防
上网策略
测试报告
日志审计
问题分析处理
流量管理
每日一记
运维工具
云计算知识
用户认证
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
SDP百科
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
排障笔记本
产品预警公告
玩转零信任
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
深信服技术支持平台
社区帮助指南
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
2024年技术争霸赛
北京区每日一练
场景专题
故障笔记
排障那些事
高手请过招
高频问题集锦
全能先锋系列
云化安全能力

本版达人

新手68983...

本周分享达人

零和一网络

本周提问达人