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

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

几乎所有号称基于学习的,基于历史的拥塞控制算法都是在利用局部性原理,比如简单的移动指数平均,企图用刚刚逝去的历史启动现在,你会看到,即便历史已经表明 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 吐给专门的数据分析服务,但它没有干净利索的损失函数进行反哺,不过这也算是大模型之前的传统方法了,显然没有大模型清爽。

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

相关推荐
进阶小白猿5 小时前
Java技术八股学习Day36
学习
四维碎片7 小时前
【Qt】UDP跨平台调试工具
qt·学习·udp
好奇龙猫7 小时前
【人工智能学习-AI入试相关题目练习-第十八次】
人工智能·学习
程序员辣条7 小时前
AI产品经理:2024年职场发展的新机遇
人工智能·学习·职场和发展·产品经理·大模型学习·大模型入门·大模型教程
wanping158259923418 小时前
AI Agent(学习六-FAISS 持久化到磁盘(重启不丢记忆))
人工智能·学习·faiss
知识分享小能手8 小时前
SQL Server 2019入门学习教程,从入门到精通,SQL Server 2019数据库的操作(2)
数据库·学习·sqlserver
鄭郑9 小时前
STM32学习笔记--I2C封装与OLED(2026.2.1)
笔记·stm32·学习
酒鼎10 小时前
学习笔记(4)HTML5新特性(第3章)- WebSocket
笔记·学习·html5
梁辰兴10 小时前
计算机网络基础:TCP 的拥塞控制
tcp/ip·计算机网络·php·tcp·拥塞控制·计算机网络基础·梁辰兴
-Springer-10 小时前
STM32 学习 —— 个人学习笔记2-2(新建工程)
笔记·stm32·学习