基于历史学习的拥塞控制算法

华夏创新都知道的吧,但没几个能学明白它们的,但拙劣的模仿者倒是不在少数。

几乎所有号称基于学习的,基于历史的拥塞控制算法都是在利用局部性原理,比如简单的移动指数平均,企图用刚刚逝去的历史启动现在,你会看到,即便历史已经表明 RTT 事实上一直在上下波动,这种启发式算法给出的永远是一个单独的预测值,你觉得这个值能准确到哪去。

曾经 Linux 内核有个 net.ipv4.tcp_no_metrics_save = 0 参数,但几乎没什么卵用,你仿照它的实现在里面再多增加几个 metric,依然没什么卵用,因为你不懂长程依赖的发现要在不同跨度错开,但一说傅里叶级数你就又懂了。

依然是用历史去启发现在,只不过是用不同时间跨度的同比替代单一环比,难道不是这种策略更能精确刻画历史的每一个细节吗,所有的尺度同比数据就摆在那里,就像傅里叶展开一样,你将看到整个历史在任意精度下的全貌,而不只是一个值,事实上,可以认为同比是大跨度的环比。

你会发现,用 n 个跨度的移动指数平均跟踪 RTT,可以快速发现长程依赖的规律,接下来你就知道什么时间段设置什么 cwnd 了,就是这么简单。

我准备连续观察两个月的数据,跨度从秒,分钟,一刻钟,小时,日,周,半月一直到月,可是这么多值保存在哪里呢,没有任何连接可以持续这么久,同时我也不想为每个跨度只保存一个某种均值(若保存均值,只需保存 8 个值即可),我想全部保存下来,摊开一张纸上来立体直观看,我只相信我的眼睛以及我的脑子的判断。

是的,以前我真的就是摊开到纸上肉眼看,字面意义的纸上,打印机打出来的,辅助手抄,于是诞生了我那经典的 1000 个 if 分支,效果杠杠的。如今不用那么麻烦了,结合一个大模型即可,喂养的数据就是各个跨度的 RTT,cwnd 信息,在学习过程中将历史全部塑造在神经网络的权重中,历史存在整个模型。接下来,只需要把当前度量喂进去,一个推理结束,cwnd 就出来了,准不准不说,肯定会越来越准的。简单拿 sigmoid(rtt/bw) + sigmoid(丢包率) 做损失函数,复杂的自己想。

还有一种方法,参考阿里的 TCPRT,实时或周期性通过 relayfs 将数据通过类似 kalfka 吐给专门的数据分析服务,但它没有干净利索的损失函数进行反哺,不过这也算是大模型之前的传统方法了,显然没有大模型清爽。

浙江温州皮鞋湿,下雨进水不会胖。

相关推荐
一尘之中20 分钟前
指挥控制中心与指控系统:概念、应用、厂商与DDS技术全景
学习·架构·ai写作
一条破秋裤39 分钟前
测试A学习顺序
学习
传奇开心果编程1 小时前
【Jetpack Compose基础语法学与练】第8课 rememberSaveable,页面旋转/系统重建保留状态
android·学习·ui·kotlin·android jetpack
迪丽热爱1 小时前
多媒体应用16-830(补)
学习
潜心一志3 小时前
HALCON软件——基础语法
学习·计算机视觉
babe小鑫3 小时前
信息与计算科学专业应届生面试 怎么证明自己能解决业务问题
学习·r语言·excel
天国梦4 小时前
实测天学网AI作文批改:三篇作文,语法纠错与语篇逻辑的真实表现
人工智能·学习
m4Rk_4 小时前
【论文阅读】Agent 记忆机制(75):TiMem——用时间记忆树实现长期记忆的层级巩固
论文阅读·人工智能·学习·开源·github
外收内放4 小时前
Python与AI应用(项目开发实战:AI智能伴侣第三版)
python·学习·ai编程
pddqjd5 小时前
顺德区中考美术集训画室概念释义与核心服务要点梳理
学习