[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$ff4I1Zqh7KPImHkStLTGhQpLsikeg9GpbBZUYAQmxWPo":3},{"item":4,"related":44},{"id":5,"type":6,"title":7,"slug":8,"summary":9,"body":10,"coverUrl":11,"productScreenshots":12,"productLinks":13,"authorName":14,"authorUrl":15,"authorSubject":16,"category":17,"tags":22,"sourceLabel":35,"sourceName":35,"sourceUrl":36,"status":37,"seoTitle":7,"seoDescription":9,"canonicalUrl":38,"isFeatured":39,"sno":40,"sortOrder":41,"publishedAt":42,"updatedAt":43,"createdAt":43},"3aa50ea8-e421-4088-baa4-addf108ab453","article","CoDel：路由器怎么知道排队太久，而不是只看队伍多长？","codel-active-queue-management-delay","CoDel 是一种主动队列管理算法，关注数据包在队列里等待了多久，而非只盯着缓存中有多少字节。本文解释它如何识别持续排队、缓解 bufferbloat，同时保留短暂突发流量，并提醒它不能凭空增加链路带宽。","家里网络卡顿时，很多人会先怀疑带宽不够。但有时测速显示链路并不慢，视频会议却因路由器缓存排队而延迟很高。这种现象叫 bufferbloat：大缓存把数据包留得太久，吞吐看似稳定，交互却变迟钝。CoDel（Controlled Delay）是一种主动队列管理方法，核心关注“包等了多久”。\n\n## 队伍人数不如等待时间重要\n\n传统直觉容易把队列长度当作拥塞指标：缓存里包多，就认为网络堵。但同样数量的数据包，在高速链路上可能很快发完，在慢速链路上却会让后续流量等很久。CoDel 观察数据包从进入队列到离开的 sojourn time（驻留时间），更直接地估计用户感受到的排队延迟。\n\nCoDel 会关注一段时间内的最低驻留时间，而不是只看某个瞬间的尖峰。短暂突发可能是正常现象：路由器先接住一批包，稍后就迅速清空；持续很久的低延迟基线抬高，则更像长期积压。算法结合目标延迟、观察区间和控制循环，在持续排队时逐渐丢包，或在支持时用 ECN 标记，提醒发送端减速。\n\n这像超市收银台：突然来了一群顾客，不代表柜台长期失灵；但如果每个人都排很久，即便队伍看上去不算长，也说明服务系统有持续压力。CoDel 不是看到一阵拥挤就清空队伍，而是尝试识别长期延误。\n\n## 它不能创造带宽\n\nCoDel 控制的是队列导致的额外延迟，不会提高物理链路速率，也不能直接修复无线信号差、路由绕远或服务器过载。它需要部署在真正能控制瓶颈排队的位置；如果拥塞发生在别的设备或运营商网络里，本地算法很难改变那里的队列。\n\nRFC 8289 将 CoDel 描述为实验性队列管理框架。实践中它常与公平排队组合，例如 FQ-CoDel，让不同流量不至于互相拖累。具体体验仍受接入链路、设备实现、流量类型及上行与下行瓶颈影响。\n\n理解 CoDel 的重点是：网络性能不止看“带宽够不够”，还要看数据包排队造成的等待时间。它通过管理持续队列，努力在链路利用率和交互延迟之间取得平衡；它不是加速器，而是避免缓存把本该快速抵达的数据困在路上的交通调度员。\n\n来源：[IETF RFC 8289：Controlled Delay Active Queue Management](https:\u002F\u002Fwww.rfc-editor.org\u002Frfc\u002Frfc8289.html)","\u002Fuploads\u002F2026-10-17\u002Fb8ba9016-d909-4083-b279-104bd9a49e3c.jpg",[],[],"Foundit","https:\u002F\u002Ffoundit.cn","foundit-ai-editorial",{"id":18,"name":19,"slug":20,"description":21},"6179d3b6-dc34-4483-9ded-3cd9f1b37a47","科普","abbreviation","介绍各领域新兴概念",[23,27,31],{"id":24,"name":25,"slug":26},"7c76bfc2-f80f-4ee0-a95d-27bd8708b434","技术","slug",{"id":28,"name":29,"slug":30},"4c2bbea6-eab7-40a8-8447-1de478ff7749","分析","analyse",{"id":32,"name":33,"slug":34},"a202d639-99a6-488a-a712-4d4c6ffd7e15","开发","dev","IETF RFC 8289","https:\u002F\u002Fwww.rfc-editor.org\u002Frfc\u002Frfc8289.html","published",null,false,48,0,"2026-10-17T00:00:00.000Z","2026-10-17T03:08:46.821Z",[45,54,62],{"id":46,"type":6,"title":47,"slug":48,"summary":49,"coverUrl":50,"authorName":14,"sno":51,"publishedAt":52,"createdAt":53},"9ccde95c-d754-4808-91f7-488f392e3eeb","你的品牌在AI眼里到底存不存在？这套系统说了算","automated-geo-monitoring-system","靠手动抽查来验证GEO效果，本质上是在跟概率玩游戏。赢一次，不代表能一直赢。","\u002Fuploads\u002F2026-08-07\u002Fdf111c0d-f14a-4b2a-8347-141e96b71654.jpg",1,"2026-08-07T00:00:00.000Z","2026-08-07T04:31:30.843Z",{"id":55,"type":6,"title":56,"slug":57,"summary":58,"coverUrl":59,"authorName":14,"sno":60,"publishedAt":42,"createdAt":61},"9865c835-21fc-4f74-b154-19c054173557","fscrypt：只给手机里的某个文件夹加密，系统怎么做到？","linux-fscrypt-file-based-encryption","Linux fscrypt 在支持的文件系统中为目录树、文件内容和文件名提供文件级加密。它与整盘加密保护的范围不同，也不会隐藏所有文件系统元数据；本文从解锁密钥说到备份与恢复的边界。","\u002Fuploads\u002F2026-10-17\u002Fdec803fe-0da3-4a9e-8ffc-47427cf599d6.jpg",41,"2026-10-17T03:08:37.641Z",{"id":63,"type":6,"title":64,"slug":65,"summary":66,"coverUrl":67,"authorName":14,"sno":68,"publishedAt":69,"createdAt":70},"56d3ebcb-170a-4f96-9134-ae85fb65542b","DANE\u002FTLSA：DNSSEC 能否帮助验证网站的 TLS 证书？","dane-tlsa-dnssec-tls-authentication","DANE 使用 DNS 中的 TLSA 记录发布与 TLS 服务证书或公钥相关的约束，并依赖 DNSSEC 验证记录来源。本文解释它如何补充信任路径，以及为什么它不等于所有网站都能抛弃 CA。","\u002Fuploads\u002F2026-10-13\u002F8c7d9bf5-62c6-47d4-b8eb-c4db7a21fa61.jpg",42,"2026-10-13T00:00:00.000Z","2026-10-13T02:13:55.563Z"]