自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

TCP/IP

TCP, QUIC 传输优化

  • 博客(2412)
  • 资源 (4)
  • 收藏
  • 关注

原创 闲谈IPv6系列文章集锦

本文总结一个目录提纲,只要是给自己看的,记录一下哪些东西已经总结过了。闲谈IPv6-6to4隧道和ISATAP隧道: https://blog.csdn.net/dog250/article/details/88644797闲谈IPv6-说说IPv6地址分配和BGP: https://blog.csdn.net/dog250/article/details/88430415闲谈IPv6...

2019-03-18 22:38:43 42830 41

原创 网络带宽霸权的终结

多应用取代单一应用,丰富的移动互联,连接一切的世界,人们再也不满足于在单一交互上花太久的时间,交互变得频繁,但受限于每天周期只有 24 小时,只要网络的终端还是人(AI 也一样,受限于算力,总之极限都是能量),内容的消化就是守恒的,交互变多意味着每次交互数据量变少,这打破了原有的流量模式,进而改变了传输形态。交互稀疏,每次交互的流量就更大,倾向于流式传输,长流,大象流,电影下载就是此类,反之,交互密集,每次交互的流量就小,倾向于短流,消息交互,游戏,直播连麦,远程登陆属此类。

2025-12-27 09:45:00 1125

原创 也谈谈字节的 veRoCE

没现成的就想不到,有现成的就随机组合,总能组合成对的,一招鲜,吃遍天。我一向是个行者游士,于八方没利害,不开大会,不提派驰,没作品,就只说我看到的,我看到的是客观,我说的我看到的却是主观,所以我的观点是直观的。只要确保计算资源在网格(网格,不是网络)上分布是均匀的,同样用一套趋向目标的随机规则就可以保证流量是均匀的,flow-based fairness 这问题本身就消失了,看,多么简单,我们几千年就是这么自然而然生活的,堵车是为什么,是你们故意要把车聚在一起的啊,然后你们再去治堵,是不是活该。

2025-12-27 07:15:00 649

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

是的,以前我真的就是摊开到纸上肉眼看,字面意义的纸上,打印机打出来的,辅助手抄,于是诞生了我那经典的 1000 个 if 分支,效果杠杠的。我准备连续观察两个月的数据,跨度从秒,分钟,一刻钟,小时,日,周,半月一直到月,可是这么多值保存在哪里呢,没有任何连接可以持续这么久,同时我也不想为每个跨度只保存一个某种均值(若保存均值,只需保存 8 个值即可),我想全部保存下来,摊开一张纸上来立体直观看,我只相信我的眼睛以及我的脑子的判断。华夏创新都知道的吧,但没几个能学明白它们的,但拙劣的模仿者倒是不在少数。

2025-12-26 20:45:00 254

原创 TCP/IP 到 Torus 街坊的重构

典型的网格拓扑实例如日本富岳超算,IBM Blue Gene 多是多维 Torus,可将它看作城市小区,街坊,而传统网络则类似分级公路(主干道,快速路,高速路等),可直观看到区别,街坊关注交互和交互的目标,买菜,散步,串门等,而分级道路则关注通达,通勤,旅行等。头道街,二道街,二十道街,经一路,纬一路,经五路,纬六路,东,西,南,北大街,北桥,南桥,我总说数据中心网络是主板总线的延伸,而 TCP/IP 广域网类似分级道路,请道法自然,看看我们身边存在了几千年的网络形态,什么结构适合什么任务。

2025-12-20 08:45:00 9483 1

原创 HTTP 2.0 的真正革命

本质上 capacity-seeking 也由此导致,你不能干巴巴眼睁睁看着并行资源长期空闲,就必须让串行流尽可能粗壮,这里有两个相互决定,早期终端单线程处理结构决定了流式传输协议行为,后期流式传输结构反过来制约终端的并行处理能力,决定了终端串行处理以及奇技淫巧的行为,悲观讲,二者错配,用发展的眼光,这是螺旋上升的必然。有知识不一定有文化,会做并不意味着懂,作为工程的网络,做过的都会做,但就像流水线工人精通每一步操作,却对来龙去脉一无所知也不关心一样,做网络的多数也并不关心 why。

2025-12-20 07:15:00 8155

原创 以城区停车场问题开始

如图,任意停车场,步行进入环城河公园步道,一圈 6.5 公里,慢跑需 35~45 分钟,如果停在现厂,盒马停车场,徒步不到 20 分钟即可到达西门吊桥,上去就到了西大街,途中沿河看柳,尽是公园美景,岂不是更好的选择?只有远距离出行才关注时间和吞吐,轿车后备箱拉不了多少行李时就会考虑托运,物流,甚至干脆租一辆面包,皮卡,但逛街却不在乎时间,因为收获在途中,这个区别涉及各种网络的传输协议的设计,不得不细察。本周就着这个话题,回到我的本行,网络传输技术,但不管网络传输还是出行,结构决定行为。

2025-12-19 15:26:53 9720

原创 终于有人掀 TCP/IP 了

总之,在一个受控的,规则的好网络(DCN 大多符合),要用最大胆但最简单的策略处理传输(例如 NACK-GBN,ECN,Credit),反之,再一个分布式的,不规则的尽力而为网络(比如广域网),则要用最保守谨慎的策略(例如 SACK),哪怕复杂一些的策略处理传输,背后的理念是没有免费的午餐,捡自家的特产来交易。再次申明我的观点,TCP/IP 并不适合所有场景,点名就是不适合数据中心,特别是 AI 集群等高性能场景,它需要有自己的通信生态,彻底脱离 TCP/IP。浙江温州皮鞋湿,下雨进水不会胖。

2025-12-13 08:45:00 12021

原创 LLM(大语言模型)和高尔顿板

既然 LLM 本质上是个概率机,而那些涌现出来的神奇效果又被各种矩阵,张量,非线性函数绕晕了头,而我们连自己头脑也同样不了解,再加上程序员看不起哲学,既然一切成了一团迷雾,概率的事还要概率自身来解释,而高尔顿板就是一个现成的概率机,所以用它来可视化概率导致的神奇效果的原理,显然高尚。下面实验所有代码均在。在我的世界观中,我们既是高尔顿板中的小球,受概率支配,又是调整钉子的训练者,能改变概率,还是观察结果的记录者,使概率坍缩,在这看来,量子力学就是世界的公设,基于此,我们是在发现世界,还是在训练世界。

2025-12-13 07:45:00 8713

原创 世界的本质是概率,没有因果

Cosmos 和近代科学孤立分析空间,时间,物质,能量以及物理定律相互作用的 Universe 不同,它强调秩序与和谐的哲学和诗意,源自古希腊,本意为 “秩序”,与“混沌”相对,常带有系统,美丽,宏伟,和谐,统一的审美或哲学内涵,在古希腊归纳,演绎传统之前,世界也是天人合一的整体,本文更多倾向于 Cosmos 思想。时间在物理上可被测量,但它并非一定就是一个实在的物理量,如上图所示,时间的度量本质上是 “具有反演对称性的钟摆嘀嗒”,这是一种典型的,常用的正交量测量,存在的是 L,R 的位置,而不是时间。

2025-12-12 21:45:00 13024 2

原创 让算法去学习,而不是去启发

从大的方面讲,双 11 备战,12306 承担海量并发连接访问,并不是靠什么牛逼的算法调度资源,而是双 11,长假等,它就在那里,时间段固定,在此之前足够久,资源早就被人为配置好了,从修改配置,切换线路到搬机器上架上电,这难道不比启发式算法来得高效,但在多数编程者眼里,这不值得一提。算法,就是一篇作文,时间,地点,事件,等等其它维度,或者说就是一个世界模型,足够多的状态映射到多够多的维度,建模,调参学习,无非如此,对于类似传输优化判定,WiFi 切换这种特定场景的调优,就是写一篇命题作文。

2025-12-06 09:45:00 7624

原创 从伪共享到多核与 cacheline 的角力模型

参数 0.2 控制并行效率衰减,较小值意味较好扩展性,此项为递增凹函数,一阶导 > 0,二阶导 < 0,符合并行扩展性直观,初始扩展性好,边际收益递减。描述 cacheline 大小影响,类似并行项,小 m 时近似线性增长,反映缓存增加提升性能,随 m 增大边际收益递减,终趋于饱和,参数 0.15 控制缓存效益衰减,其值略小于并行项参数 0.2,反映系统中缓存效率饱和较并行效率饱和更缓,这正是使用多级 cache 的理由,因为这确实比分解代码更简单,此项使模型能捕捉内存子系统影响。

2025-12-06 08:15:00 11961

原创 大模型知识蒸馏技术

进一步思考,“知识蒸馏” 其实是我们最拿手的传统教育模式,在古代,背会唐诗三百首,不会写也会偷,在当代,虽然我们的思维方式不是那么异想天开,但我们的考试成绩秒杀全宇宙,这背后都是对范式的记忆和应用,即,将知识的范式当作知识本身来学习,因此才得以弯道超车,省却了大量时间,这岂不就是大模型蒸馏。这个过程中,我是大模型,女儿是小模型,我由于 30 多年的积累训练,早就有了各种解题范式,而她不需要重复这 30 的过程,只需要记住我的范式即可。,这使得在温度 T 变化时,梯度的尺度相对稳定,有利于优化。

2025-12-05 16:45:02 10492

原创 CORDIC 算法杂感

它展示了,在计算机科学中,除了从顶层数学理论降维打击来设计算法之外,还存在着另一条古法路径,从底层的计算介质的特性(如 FPGA,GPU)出发,通过极致的精巧设计,孕育出与之完美契合的算法,这种算法可能没有普适的理论美感,但在其特定的应用领域内,它就是经理。CORDIC 是一种非常巧妙且高效的算法,用于在数字电路中计算三角函数,双曲函数等数学函数,它的核心优势在于只使用简单加法,位移,查数组等操作,避免了复杂运算,非常适合在硬件资源有限的系统中实现。算术和数学的区别非常大,这里说不完,总之不能混为一谈。

2025-11-29 08:45:00 13229

原创 重读 VJ 拥塞控制后的思考

首先,ACK 能返回,意味着网络是畅通的,其次,返回 ACK 的数量度量了网络被腾出的空间。早期的网络实际上是一个受控仲裁网络,类似令牌网,它既复杂又低效,显然这不是设计者的初衷,也因此它的规模无法扩展,利用率不高,反而延迟了问题的暴露,当网络在 1980 年代初过渡到 TCP/IP,起搏于 Unix 和 socket 接口的寒武纪大爆发开始,人们意识到,早期的网络对大规模自组织的依赖会产生意想不到的后果,果不其然,网络很快就拥塞崩溃了。以上就是 VJ 提出慢启动的背景。

2025-11-29 06:15:00 8955

原创 LLM(大语言模型) 的本质是概率

不会类比,不懂共情(这两点一向是被计算机背景的理工群体鄙视的),没有泛化能力,无法举一反三,不会归纳演绎,这才是 AI 的瓶颈,而不是铺天盖地的算力,以及那些以为 scale 就够了的能力,但在本质上,只要 AI 仍然是个概率预测机器,那些 scale up 也好,scale out 也好,都仍然在做概率预测,正如它们名字一样,规模扩大了而已。这个过程最精妙的结果是,在交叉熵损失和 Softmax 函数的完美配合下,损失对于最初输出的 Logits 的梯度,可以简化为一个极其优雅的公式,我在。

2025-11-29 00:45:00 13846

原创 谈谈具身智能

人类不如 LLM 学得快,但 LLM 始终还是不能真正理解世界,没有归纳,抽象,类比,泛化的能力,原因就在于它只是一个抽象的语言模型,而语言本身就是抽象,泛化的结果,它不是世界的本质,它只是勾勒世界的轮廓,而世界的本质是物理定律,探知这个本质需要去和物理世界世界接触,而不是仅仅接收对它的语言描述,我非常看好具身智能。物理世界的规则是固定的,学习它即可。依靠与物理世界互动,获得物理因果,用这种因果指导动作,这才是真正意义上的 “理解”,它知道自己的机械手臂拍经理的头,经理的头会碎,这不是概率,这是物理因果。

2025-11-28 14:31:40 10175

原创 为什么缩放点积使梯度更稳定

(buffer 的平方反比律),我是三句话不离本行,AIMD 对 buffer 的占用就是按 n 缩放,所以它随 n 越来越小,与本文结论一致,非常公平地使 “权重会趋近于均匀分布”,公平性是 AIMD 特征,但 softmax 恰恰需要 “选择性聚焦”,而不是公平。通过缩放点积,将 softmax 函数的输入控制在一个合理的动态范围,防止了梯度消失,确保了训练过程的稳定和高效,缩放后的注意力权重分布也更平滑,允许模型同时关注多个相关位置,而不是过度聚焦于单一位置,从而捕获更丰富的上下文信息。

2025-11-22 08:45:00 13408

原创 一个读写锁实现的迭代,优化和回忆

都是很早以前的事了,2008~2009 年,当时我只是觉得 Linux 内核什么都好,初学者,什么都想模仿它,就好像刚学英语时,超市看到包装袋上英文总想发声念一念显得自己懂一样,反倒是多学了一些的时候,才觉得自己啥也不是,也就不好意思再卖弄那一丢丢演技了。反正在当时没有想到 read 临界区的同步覆盖导致 write 饿死,今天能顺手想出来并解决,反倒更加平常心,不想长篇大论了,仅立帖备忘,待日后再进步,再回来鄙视嘲笑。浙江温州皮鞋湿,下雨进水不会胖。

2025-11-22 07:15:00 12570

原创 多头注意力:理解人类语言的混沌和秩序

多数计算机理工背景完全不懂也不在乎混沌系统,复杂系统,也不懂控制论,他们不喜欢 “涌现” 这种词,只要不能量化,解释不清楚的术语,他们就觉得是拿个高级词汇 “糊弄” 一下的玄学,可他们看不起文史,看不起宗教,连玄学是什么依旧也不懂。在他们眼里,只有程序,代码,数学公式才是唯一可以解释世界的东西,我对这种世界观极度反感,且从不参与相关讨论,我崇尚一个随机但可描述的世界,而不是万般因果缠绕的可解释的世界。1 号成员专注于语法,它分析 “经理的皮鞋” 这个短语,建立所属关系,理解 “皮鞋” 是 “经理” 的。

2025-11-21 21:45:00 12933

原创 程序员的幻觉与系统的边界

强调 “不能丢”,“一定要处理”的这帮人显然不明白什么叫做系统的边界,既然他们的系统没有边界,他们也就没有诸如 ”额定容量“ 和 ”当前负载“ 的概念,这在编程者群体非常常见,因为软件分层和解耦的原则总在强调 ”让编程者一心关注业务逻辑,而无需关注底层细节“,就好像底层可以处理任意情况,但他们不知道,底层是一个 ”有容量限制“ 的系统,是的,一切都是系统,遵循 Little’s Law 的系统。某群里又出现了略显无知的讨论,我的结论为 ”在计算机相关专业背景的理工男女眼里,系统是绝对可靠的,无边界的。

2025-11-21 12:34:10 16105 1

原创 GELU 函数如何避免神经元死亡

ReLU 在神经元可能最需要调整时完全剥夺其更新能力(就在于在数学是 0.00001 和 0 天上地下,但在实际中它们相等),仅靠渺茫的外部因素可能救活,GELU 却可以通过保留微弱的梯度以避免数学上的 “乘以 0”,使神经元具备自我调整能力。可见,ReLU 对负输入的输出恒为 0,这是神经元死亡的原因,而 GELU 则对负输入会输出一个小的非零值,这意味着在训练过程中,接收到负输入的神经元仍然可以参与学习,只是贡献程度不如正输入大。但且慢,如果下一个训练输入 x=15,神经元岂不是被救活了吗?

2025-11-15 09:15:00 9581

原创 交叉熵(Cross Entropy)及其应用实例

最近看大模型相关的论文和书籍,发现了宝藏,这里面全都是我感兴趣的单点,概率统计学,非线性,GPU 并行的切割方向,负反馈,矩阵,函数图像…当模型对某个类别的预测概率高于真实概率时,梯度为正,提示应该降低相应的 logit,当预测不足时,梯度为负,提示应该增加 logit。影响更大,两者偏离越大,损失越大,直观上看,交叉熵更重视出类拔萃者,而忽略了卑微者,这就是一种有意义的 “拔优”,涌现正基于这种非线性操作。在概率分布上下文,它度量 K 个概率分布的均匀性,越尖锐,事件越确定,值越小。完美承解决这个问题。

2025-11-15 08:30:00 14765

原创 MPTCP 松弛调度,求可用而舍最优

在广域网,虽然带宽越来越高,但终端移动化,IoT 也在横向接入到每一个角落,一方面受能耗约束,计算资源却在向云中心集中,少量进入边缘计算节点,互联网越来越不对称,传输内容也在逐步改变,大吞吐让位于高体验,这需要一个非常稳定的时延,另一方面,受越来越多的严格可预测约束,稳定的时延比单纯低却抖动更吸引人,最后,受限于应用自限制,广域网上单纯传输大块数据,越来越既无必要,也不明智,更不道德。我这算法是应对三大运营商覆盖不重叠的区域,不至于没有信号的软件方案,应用保持 TCP 连接,不至于断线重连。

2025-11-15 07:45:00 9875

原创 信息守恒下的涌现与 AI 传输质量观测

在做法上,我可能会用实际流量样本训练 DCN 本身,在它能为拥塞控制给出建议之前,实际的流量或人为注入的流量(例如 incast)最为输入,人工的,传统算法的或 SDN 的决策作为目标,都是该 AI DCN 的学习样本,该 AI DCN 就像一个神经网络本身一样收敛,涌现出应对任何流量模式的即时应对措施,在我看来这就算一种即时的 “在线推理”。不管怎样,信息守恒,只是难以暴露,依赖大模型的涌现能力,发现隐藏在流量本身的,靠人工以及传统算法无法发现的 “模式” 信息,才能给出更加有效的应对策略。

2025-11-14 21:45:00 14045

原创 控制论与网络传输协议

总有些经理试图优化 AIMD,常见的包括线性减,乘性增,甚至直接弃用 AIMD,这种做法破坏了控制论的基本假设,这些优化专家有所不知,AIMD 并不是针对单独流起作用的,它是全局的,换句话说,AIMD 是整个广域网生态系统上的控制器,AIMD 正如同生态系统的 Lotka-Volterra 方程那般起作用,维持着系统的稳定。单体的恢复可能只是雪崩的开始而不是故障的结束。值得注意的是,不管是前馈系统,还是反馈系统,反馈都是滞后的,它永远滞后于系统即时的动态变化,这意味着前馈,反馈系统必然是震荡的。

2025-11-08 09:15:00 14959

原创 AI 网络与传输协议

CPU,带宽,内存的能力代表计算,传输,存储的博弈三角,当 GPU 解放了算力后,协议软件倾向于网卡硬件化,但硬件与软件属于时空正交,本不适合实现复杂 “代码”,同时内存墙也会拖慢整个算力集群,网卡存储空间注定不能太大,在 Linux kernel TCP 中可轻易实现的 RBTree,SACK,在硬件上实现将得不偿失,虽然数据中心丢包率很低,但 SACK 却是千年一用但不能没有的机制,这一直制约着数据中心传输协议的发展。回顾迄至今日传输协议的控制机制,目的只有一个,即保证端可处理传输的信息。

2025-11-08 07:30:00 16397

原创 大模型的秘密:从三元一次方程组到 KV Cache

写这篇文章有四个理由。周一下午一个僵死一年的传输优化群突然有人问 BBR 的问题,没什么人接话;我每周五晚上到周日早晨都会写网络方面的随笔记录并分享在 pyq,经常有人评论 AI 如何,我颇为不屑;周四早上看,已经很少有我精通的了;我并不好奇当今几乎所有的招聘以及各个技术群的话题都与大模型相关,我担心的是如果不去擦点边,将来会很艰难,甚至群里瞎扯淡都插不上话,所以我花了点时间浏览了。

2025-11-07 21:45:00 12171

原创 降低时延和抖动:并行传输和重排

TCP 的 receive-queue 就是一个软件 PIFO,具体体现在它基于红黑树的 out-of-order queue, 我前面提到软件惯用的方式就是红黑树,硬件在另一端,硬件的方法是连续内存的 Bitmap,Packet-map,大阵列,线卡,完全意义上的空间换时间,这是否意味着硬件几乎无法在可接受的成本约束内实现理想的 PIFO。在我们承认网络是个统计复用系统后,尽量管理它的统计特征使其可控,管理它的方差使其更加确定,在始发站做的尽可能多,而不是在网络转发途中识别和干预特定流量,这就是高尚的。

2025-11-01 09:45:00 14553

原创 降低时延与抖动:软件硬化与不确定性管理

以太网,它从早期 CSMA/CD 一直到如今 400Gbps,800Gbps,无论在传输带宽还是在覆盖地理范围,以太网都表现出规模可扩展性特征,成功的背后还是它源自于广域网的简单,保守,悲观的假设,如今,在早期基础上,在数据中心,它正在逐步变得复杂,信任,乐观。总结一下,若要降低时延,降低时延抖动,别从软件入手,软件是时延的原因而非解决方案,端到端区间中任意环节,无论在主机协议栈,还是在交换机,只要引入软件行为,比如排序,重组,调度,都将引入时延,相反,要尽量把软件展开成硬件。综上,这就是时延的根源。

2025-11-01 07:45:00 17328

原创 iptables u32 match 对字节后退的支持

这么多年过去了,我还是一如既往不会编程,还是只能改几行代码,这种能力迫使我思考最简单的方案,而不是为了展现高尚的编程能力把问题复杂化,精巧的事总是懒人才做。但由于 u32 match 只能 u32 4 字节对齐,如果 packet 拥有 1,2,3 个字节的 payload,上述指令依然会 match fail,故而剥夺了炫技的机会,为了炫技,我才修改了代码。所以说,抛开炫技因素,这个问题更直接的解法不是像我这样修改代码,而是 u32 match 改成 u8 match,就可以匹配任意 offset 了。

2025-10-31 21:45:00 11864

原创 CDN 技术原理图解

以上几乎就是 CDN 的核心技术概览了,剩下的多数是资源规划与预算,运维,运营工具的开发和维护,运营支撑平台的构建,配置管理,监控与告警,计费与客户平台,产品管理与商业化等,这部分工作比技术本身要重要得多,也正是因为这些工作更加重要,才使 CDN 成为劳动密集型产品。我从事多年 CDN 优化工作,但却几乎没写过 CDN 的文章,今天补一篇,本周这篇文章包含两方面内容,mermaid 的学习和 CDN 的科普,本文先侧重静态 CDN,至于动态 CDN,涉及选路,以后有机会再说。先说说 mermaid。

2025-10-25 08:15:00 12031

原创 计算和传输之间的权衡

而传输时延在直观上一方面决定于距离,另一方面决定于存储 IO,在上述引文中,我将 DRAM 存储行为最终归结为了一系列步骤的计算,而计算则是空间展开的压缩,空间则被距离度量,这就完全统一到距离引发的熵的度量了,传输,存储,计算只是展开方式不同罢了,归于一处都是熵增,都是能耗,而数传输的距离正相关性最大,也就最不可扩展。传输的成本真的很高,我此前提到过,最好不要做传输,非要传输的话就尽可能少传输,尽可能传浅加工数据,优先本地计算,甚至本地猜测,传输优选压缩,字典,都是减少传输数据量的方法。

2025-10-25 07:45:00 13682

原创 TCP pure ACK 的不可扩展性问题

stream 在广域网及其成功。TCP pure ACK 频率的不可扩展性说的是,TCP 段的到达和 ACK 的发送是耦合的,因此到达越快,ACK 越频,随着带宽提高越发频繁的 pure ACK 是吞噬处理资源的元凶,它与带宽的提高形成负反馈,阻碍了 TCP 吞吐的进一步提高。随带宽越来愈大,越来越频的 ACK 榨干 CPU 时,不是设计更好的转发程序,也不是更换更快的处理器,而是要从根本原因入手,即 TCP pure ACK 频率的不可扩展性,所有类似的 “随规模扩大而增长的因素” 都是不可扩展的。

2025-10-24 23:15:00 16305 1

原创 浅谈伪共享

如果你不想让 gap 那么大的空间浪费掉,你可以将它组织成 “铁定不会和 a,b 同时访问的变量”,但懂这个的又有多少,你要是这么安排了,读代码的会莫名其妙,但他们但凡将变量换个地方,性能就会下降,没人能排查出原因,然后就是加班,开会…也不限于网络收发,所有频繁的,快速的子系统,例如调度器,内存管理,均可引入类似思路,目前也有很多相关派池,虽擅长并关注,但不是我的领域,就不赘述了。依照以上宗旨,你就瞄着内核网络数据结构去拆吧,拆一个合并一个就能提一个派池,多提几个派池就能当经理。

2025-10-19 10:38:18 13201

原创 互联网“拥堵税”:拥塞暴露机制和审计

经常说的拥塞控制是端到端拥塞控制,如 TCP Reno/CUBIC,BBR,这类算法完全是自觉算法,不具备任何强制性,这便提供了一个 “不做” 的机会,若不是 Linux 内核有门槛且拥塞控制一般内置在 Linux 内核(或 Windows 内核)中,互联网或许早就由于人们为了抢占带宽而绕开拥塞控制而早早崩溃了,或者形成一种博弈均衡而不至于崩溃,但不管怎样,只要能 “不做”,互联网就不会畅通。可以说,RFC7713 展示 ConEx 是一个典型的要么严格实施,要么百无一用的标准,这是它的内在性质决定的。

2025-10-18 10:15:00 11976

原创 QoE 驱动 AIMD 拥塞控制

全受吞吐控制,一旦发生丢包,则 delivery rate 下降则视为拥塞,则降 cwnd 缓解,若偶然噪声丢包,则 delivery rate 未必下降,则 cwnd 继续遵循 AIMD 逻辑做 AI,这便是一个 loss-based 算法了,顺带还解决了历史上的甄别问题。值得注意的是,不同应用需要不同的权重,比如文件下载只需要关注吞吐,其它因素的权重为 0,这就回归到了常规的 AIMD,因为丢包后的吞吐一定会下降,又如视频会议,在线游戏相对直播而言,时延更重要,而直播的卡顿率,码率更重要。

2025-10-18 08:00:00 12243

原创 Linux TCP 最新的 ECN patch:从 ECN nonce 到 Accurate ECN

ECN 基于全链路的信任,它假设 receiver 会诚实 echo 它收到的拥塞信号,但一个 “恶意” 或 “自私” 的 receiver 可能会选择不报告该拥塞信号,因为如果它不报告拥塞,发送端就不会降速,从而可能为这个 receiver 维持更高的吞吐,这种行为显然损害了网络公平性。为一些莫须有的问题,引入协议复杂性以及处理协议僵化问题的代价是巨大的,如此会让 TCP 不再实用,反而充满了自导自演的故事,为想象的问题制造解法,就像现在好多大厂并不太懂网络的经理们制造的数据中心传输协议一样。

2025-10-12 09:00:00 17764

原创 TCP 重传的简化与 Reno 兼容性之辩

为什么最初不能没有 RTO,因为最初没有快速重传,为什么有了快速重传之后还是不能没有 RTO,因为早期快速重传无法区分原始数据和重传数据,只能 oneshot,重传一次后还是要 RTO,不然会重传风暴,那么有了 RACK呢,这就可通过时间序甄别数据发送和确认的顺序,不必区分原始数据和重传数据了,RTO就不再必要,RTO不再必要的内中逻辑是,in order 可以依靠 RACK/TLP,而 out of order 不会 delayed ack。问题的始终都在于重传谁,把这个问题解决了就行,其它的都是手段。

2025-10-12 08:15:00 12826

原创 时延抖动的物理本质

那些搞端到端算法的总幻想一种启发式算法能消除抖动,那些搞数据中心传输的整天折腾什么 lossless,pfc,都是扯淡,我早就重复过多次,信息的不确定性导致这些根本就无法等价实现,但 google 的 swift 是个正确的路,它旨在更加精确区分时延的组分,可即使这样它也只能走到那么远,换句话说,swift 只是区分了抖动的尺度,将主机这个统计复用系统和网络这另一个统计复用系统分开了而已,各自内部的信息依然是不确定的。此外,时间的本质即熵增,那么时延抖动的本质就是熵增的不确定性,即信息的缺失。

2025-10-05 17:16:49 13390

一个iptables的stateless NAT模块实现

如果你在寻找Linux上配置诸如Cisco设备上的static双向NAT的方法,这个或许就是你想要的; what?你觉得它完不成PAT?是的,它不行。但是想做PAT为何不使用现有的iptables实现呢?它可以自动为你解决元组唯一性问题。不要从概念上分析,事实上,static双向NAT是完全对称的,一对一的 ,也只有在BOX两边的网络在拓扑级别是完全对等的情形下,这种NAT或许才是有用的,Cisco设备经常处在这样的位置,比如一个很大的stub节点的出口位置,比如两个domain的中间位置... 我将名字取为STATIC-2-WAY-NAT,比较长也比较怪,完全不符合UNIX的小写短名传统,我的想法是:这样可以少写很多的帮助信息,因为名字就是自解释的。

2014-12-27

模块化的nf-HiPAC

原版的nf-hipac需要为内核打patch,且只支持较低版本的内核,构建起来相对比较麻烦。 模块化后的nf-hipac可以直接作为内核可加载模块编译,且适配了高版本的Linux内核。为了移植工作简化,去掉了和iptables模块的联动支持!

2014-11-21

关于linux内核以及其他个人体会的文集

本文集是我用将近两年的时间写成的,大多数文章是关于linux内核的,另外还有一些我自己对计算机的理解,还有一些历史,音乐方面的东西。适合于对linux内核思想感兴趣的阅读,文章偏重于对于思想的理解。

2009-09-07

配置文件还有一些other

代码和配置iptables配置文件,还有一些别的东西

2010-04-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除