[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f9cC7YlecWLDQHuLrIsXrbX8xWqYr0qO6a-0of1ERQEQ":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":36,"sourceUrl":37,"status":38,"seoTitle":7,"seoDescription":9,"canonicalUrl":35,"isFeatured":39,"sno":40,"sortOrder":41,"publishedAt":42,"updatedAt":43,"createdAt":43},"6e75ce51-3bb5-415e-a6b7-0f8f0d5ceeb7","article","QUIC：为什么 HTTP\u002F3 选择在 UDP 上重新造一套传输协议？","quic-secure-multiplexed-transport","QUIC 在 UDP 之上重新提供可靠传输、TLS、多流复用、流量控制与连接迁移，减少队头阻塞并适应移动网络变化。","QUIC 是一种建立在 UDP 之上的现代传输协议，但它并不是简单地“把 TCP 换成 UDP”。它重新设计了连接建立、可靠传输、加密、多路复用和连接迁移，希望减少传统传输协议在移动网络和高延迟链路上的固定成本。\n\n最直观的变化是流。一个 QUIC 连接里可以承载多个相互独立的流；某个流丢包时，其他流不必像 HTTP\u002F2 over TCP 那样等待同一条字节流恢复。这减少了队头阻塞。QUIC 还把 TLS 1.3 握手纳入连接建立流程，通常可以更快完成安全协商。\n\nUDP 只提供数据报承载，不负责可靠性、顺序和拥塞控制，所以 QUIC 自己补上了这些机制。它会确认数据、重传丢失包、控制发送窗口，并区分连接级和流级的流量。连接还可以使用连接 ID 标识，而不是把四元组作为唯一身份，这使手机从 Wi-Fi 切到蜂窝网络时有机会继续保持连接。\n\n这些灵活性带来实现复杂度。QUIC 加密了大量传输元数据，中间设备不再像过去那样容易观察和处理；服务器要管理连接 ID、密钥更新、0-RTT 的重放风险、流量控制和拥塞控制。UDP 被限速或阻断的网络，也可能让 QUIC 退回其他协议。\n\n理解 QUIC 的关键不是记住“HTTP\u002F3 使用 UDP”，而是看到一套位于应用与网络之间的新边界：它利用 UDP 获得部署灵活性，再在用户空间重新提供可靠、安全、可迁移的传输语义。HTTP\u002F3 因此可以把请求流与连接管理组合得更贴近现代网络。\n\nQUIC 还把连接级流量控制与流级流量控制分开：一个流不能无限占用整个连接，连接也不能因为某个流的窗口太小而完全失去推进。对于浏览器加载多个资源、实时应用和服务间 RPC，这种粒度让应用可以把优先级和取消动作表达得更清楚。\n\n资料来源：[RFC 9000：QUIC: A UDP-Based Multiplexed and Secure Transport](https:\u002F\u002Fdatatracker.ietf.org\u002Fdoc\u002Frfc9000\u002F)","\u002Fuploads\u002F2026-09-26\u002Fb317480b-56cb-4e21-bc2b-cf378482a7a5.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},"144abe77-0dc6-4f66-a176-20bddb1c0bfa","编程","coding",{"id":28,"name":29,"slug":30},"7c76bfc2-f80f-4ee0-a95d-27bd8708b434","技术","slug",{"id":32,"name":33,"slug":34},"a202d639-99a6-488a-a712-4d4c6ffd7e15","开发","dev",null,"RFC 9000：QUIC: A UDP-Based Multiplexed and Secure Transport","https:\u002F\u002Fdatatracker.ietf.org\u002Fdoc\u002Frfc9000\u002F","published",false,51,0,"2026-09-27T00:00:00.000Z","2026-09-26T16:26:13.928Z",[45,54,62],{"id":46,"type":6,"title":47,"slug":48,"summary":49,"coverUrl":50,"authorName":14,"sno":51,"publishedAt":52,"createdAt":53},"4ce57934-2b23-41a1-800e-bb2d8ab36684","Wasm Component Model：不同语言写的模块怎样用同一套接口协作？","wasm-component-model-wit-interfaces","WebAssembly Component Model 用有类型的接口描述组件如何交换数据与调用功能，WIT 则帮助表达这些接口。本文用模块化电器说明跨语言组合的意义，也指出它不代表程序脱离运行时就能在任何环境原样运行。","\u002Fuploads\u002F2026-10-17\u002F0eb1c88d-dc1f-486d-8194-54f72dd215ec.jpg",45,"2026-10-17T00:00:00.000Z","2026-10-17T03:08:52.474Z",{"id":55,"type":6,"title":56,"slug":57,"summary":58,"coverUrl":59,"authorName":14,"sno":51,"publishedAt":60,"createdAt":61},"07fe8e6e-82b0-46cc-9015-c6d027564430","pidfd：进程号会被重用，怎样才能稳定指向一个进程？","linux-pidfd-stable-process-reference","Linux pidfd 用文件描述符稳定引用一个进程，避免退出后的 PID 被重用而误操作新进程。本文介绍它的等待、信号用途和版本边界。","\u002Fuploads\u002F2026-10-06\u002F699e59f8-693f-47cb-87b1-c51764d1a679.jpg","2026-10-06T00:00:00.000Z","2026-10-06T07:51:27.054Z",{"id":63,"type":6,"title":64,"slug":65,"summary":66,"coverUrl":67,"authorName":14,"sno":51,"publishedAt":42,"createdAt":68},"15988123-6303-4ab1-ba01-dcc41f36329f","Futex：Linux 的锁为什么大多数时候根本不需要进内核？","futex-fast-userspace-locking","Futex 把无竞争时的锁操作留在用户态，只有真正需要睡眠和唤醒时才进入内核，是 Linux 高性能锁的关键低层构件。","\u002Fuploads\u002F2026-09-26\u002F90e98cc8-e57b-4dea-afc7-2afe7550d483.jpg","2026-09-26T16:25:54.119Z"]