├── LICENSE ├── README-CN.md ├── README.md ├── awesome-quic-logo.png ├── quic-weekly-2020-10-14-CN.md ├── quic-weekly-2020-10-14.md ├── quic-weekly-2020-10-21-CN.md ├── quic-weekly-2020-10-21.md ├── quic-weekly-2020-10-28-CN.md ├── quic-weekly-2020-10-28.md ├── quic-weekly-2020-11-04-CN.md ├── quic-weekly-2020-11-04.md ├── quic-weekly-2020-11-11-CN.md ├── quic-weekly-2020-11-11.md ├── quic-weekly-2020-11-18-CN.md ├── quic-weekly-2020-11-18.md ├── quic-weekly-2020-11-25-CN.md ├── quic-weekly-2020-11-25.md ├── quic-weekly-2020-12-02-CN.md ├── quic-weekly-2020-12-02.md ├── quic-weekly-2020-12-09-CN.md ├── quic-weekly-2020-12-09.md ├── quic-weekly-2021-01-06-CN.md ├── quic-weekly-2021-01-06.md ├── quic-weekly-2021-04-14-CN.md ├── quic-weekly-2021-04-14.md └── yomo-quic-weekly-social-graph.jpg /LICENSE: -------------------------------------------------------------------------------- 1 | Creative Commons Legal Code 2 | 3 | CC0 1.0 Universal 4 | 5 | CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE 6 | LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN 7 | ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS 8 | INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES 9 | REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS 10 | PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM 11 | THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED 12 | HEREUNDER. 13 | 14 | Statement of Purpose 15 | 16 | The laws of most jurisdictions throughout the world automatically confer 17 | exclusive Copyright and Related Rights (defined below) upon the creator 18 | and subsequent owner(s) (each and all, an "owner") of an original work of 19 | authorship and/or a database (each, a "Work"). 20 | 21 | Certain owners wish to permanently relinquish those rights to a Work for 22 | the purpose of contributing to a commons of creative, cultural and 23 | scientific works ("Commons") that the public can reliably and without fear 24 | of later claims of infringement build upon, modify, incorporate in other 25 | works, reuse and redistribute as freely as possible in any form whatsoever 26 | and for any purposes, including without limitation commercial purposes. 27 | These owners may contribute to the Commons to promote the ideal of a free 28 | culture and the further production of creative, cultural and scientific 29 | works, or to gain reputation or greater distribution for their Work in 30 | part through the use and efforts of others. 31 | 32 | For these and/or other purposes and motivations, and without any 33 | expectation of additional consideration or compensation, the person 34 | associating CC0 with a Work (the "Affirmer"), to the extent that he or she 35 | is an owner of Copyright and Related Rights in the Work, voluntarily 36 | elects to apply CC0 to the Work and publicly distribute the Work under its 37 | terms, with knowledge of his or her Copyright and Related Rights in the 38 | Work and the meaning and intended legal effect of CC0 on those rights. 39 | 40 | 1. Copyright and Related Rights. A Work made available under CC0 may be 41 | protected by copyright and related or neighboring rights ("Copyright and 42 | Related Rights"). Copyright and Related Rights include, but are not 43 | limited to, the following: 44 | 45 | i. the right to reproduce, adapt, distribute, perform, display, 46 | communicate, and translate a Work; 47 | ii. moral rights retained by the original author(s) and/or performer(s); 48 | iii. publicity and privacy rights pertaining to a person's image or 49 | likeness depicted in a Work; 50 | iv. rights protecting against unfair competition in regards to a Work, 51 | subject to the limitations in paragraph 4(a), below; 52 | v. rights protecting the extraction, dissemination, use and reuse of data 53 | in a Work; 54 | vi. database rights (such as those arising under Directive 96/9/EC of the 55 | European Parliament and of the Council of 11 March 1996 on the legal 56 | protection of databases, and under any national implementation 57 | thereof, including any amended or successor version of such 58 | directive); and 59 | vii. other similar, equivalent or corresponding rights throughout the 60 | world based on applicable law or treaty, and any national 61 | implementations thereof. 62 | 63 | 2. Waiver. To the greatest extent permitted by, but not in contravention 64 | of, applicable law, Affirmer hereby overtly, fully, permanently, 65 | irrevocably and unconditionally waives, abandons, and surrenders all of 66 | Affirmer's Copyright and Related Rights and associated claims and causes 67 | of action, whether now known or unknown (including existing as well as 68 | future claims and causes of action), in the Work (i) in all territories 69 | worldwide, (ii) for the maximum duration provided by applicable law or 70 | treaty (including future time extensions), (iii) in any current or future 71 | medium and for any number of copies, and (iv) for any purpose whatsoever, 72 | including without limitation commercial, advertising or promotional 73 | purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each 74 | member of the public at large and to the detriment of Affirmer's heirs and 75 | successors, fully intending that such Waiver shall not be subject to 76 | revocation, rescission, cancellation, termination, or any other legal or 77 | equitable action to disrupt the quiet enjoyment of the Work by the public 78 | as contemplated by Affirmer's express Statement of Purpose. 79 | 80 | 3. Public License Fallback. Should any part of the Waiver for any reason 81 | be judged legally invalid or ineffective under applicable law, then the 82 | Waiver shall be preserved to the maximum extent permitted taking into 83 | account Affirmer's express Statement of Purpose. In addition, to the 84 | extent the Waiver is so judged Affirmer hereby grants to each affected 85 | person a royalty-free, non transferable, non sublicensable, non exclusive, 86 | irrevocable and unconditional license to exercise Affirmer's Copyright and 87 | Related Rights in the Work (i) in all territories worldwide, (ii) for the 88 | maximum duration provided by applicable law or treaty (including future 89 | time extensions), (iii) in any current or future medium and for any number 90 | of copies, and (iv) for any purpose whatsoever, including without 91 | limitation commercial, advertising or promotional purposes (the 92 | "License"). The License shall be deemed effective as of the date CC0 was 93 | applied by Affirmer to the Work. Should any part of the License for any 94 | reason be judged legally invalid or ineffective under applicable law, such 95 | partial invalidity or ineffectiveness shall not invalidate the remainder 96 | of the License, and in such case Affirmer hereby affirms that he or she 97 | will not (i) exercise any of his or her remaining Copyright and Related 98 | Rights in the Work or (ii) assert any associated claims and causes of 99 | action with respect to the Work, in either case contrary to Affirmer's 100 | express Statement of Purpose. 101 | 102 | 4. Limitations and Disclaimers. 103 | 104 | a. No trademark or patent rights held by Affirmer are waived, abandoned, 105 | surrendered, licensed or otherwise affected by this document. 106 | b. Affirmer offers the Work as-is and makes no representations or 107 | warranties of any kind concerning the Work, express, implied, 108 | statutory or otherwise, including without limitation warranties of 109 | title, merchantability, fitness for a particular purpose, non 110 | infringement, or the absence of latent or other defects, accuracy, or 111 | the present or absence of errors, whether or not discoverable, all to 112 | the greatest extent permissible under applicable law. 113 | c. Affirmer disclaims responsibility for clearing rights of other persons 114 | that may apply to the Work or any use thereof, including without 115 | limitation any person's Copyright and Related Rights in the Work. 116 | Further, Affirmer disclaims responsibility for obtaining any necessary 117 | consents, permissions or other rights required for any use of the 118 | Work. 119 | d. Affirmer understands and acknowledges that Creative Commons is not a 120 | party to this document and has no duty or obligation with respect to 121 | this CC0 or use of the Work. 122 | -------------------------------------------------------------------------------- /README-CN.md: -------------------------------------------------------------------------------- 1 | ![Awesome QUIC Logo](https://gitee.com/fanweixiao/awesome-quic/raw/main/yomo-quic-weekly-social-graph.jpg) 2 | # Awesome QUIC [![Awesome](https://awesome.re/badge.svg)](https://awesome.re) 3 | 4 | 关于QUIC协议的论文、IETF进展、博客、视频等等 5 | 6 | **QUIC** 的全称是 Quick UDP Internet Connections protocol, 由 Google 设计提出,目前由 IETF 工作组推动进展。其设计的目标是替代 TCP 成为 HTTP/3 的数据传输层协议。熹乐科技在物联网(IoT)和边缘计算(Edge Computing)场景也一直在打造底层基于 QUIC 通讯协议的边缘计算微服务框架 [YoMo](https://github.com/yomorun/yomo),长时间关注 QUIC 协议的发展,遂整理该文集并配以适当的中文翻译,方便更多关注 QUIC 协议的人学习。 7 | 8 | --- 9 | 10 | # QUIC Weekly - 每周一草 11 | 12 | 在线社区:🍖[discord/quic](https://discord.gg/CTH3wv9) 13 | 14 | 维护者:🦖[YoMo](http://github.com/yomorun/yomo) 15 | 16 | ## QUIC Weekly - 20210414期 17 | 18 | * curl之父[@Daniel Stenberg](https://twitter.com/bagder)的新博客《WHERE IS HTTP/3 RIGHT NOW?》:SPEC已经全部完成了,正在排队等待最终的审核,就能拿到RFC版号(比如RFC2616,这个2616就是HTTP/1.1的第一版被assign的RFC number),然后就能发布了。这也就意味着大家可以拿着现在的SPEC(按照Draft-29版本提交的)来写自己的QUIC实现了 19 | * [netray.io](https://quic.netray.io/stats.html) 每周扫描一次IPv4下的QUIC落地速率,他们最近的一次扫描显示已经有210万主机在应用HTTP/3: 20 | ![](https://daniel.haxx.se/blog/wp-content/uploads/2021/04/ietf-quic-support-in-ipv.png) 21 | * 浏览器方面,Chrome和Edge是默认开启QUIC支持的,Firefox也马上要加入这个行列,其他的都需要手工开启(如何在iOS上开启QUIC可参考之前的QUIC-Weekly文章) 22 | ![](https://daniel.haxx.se/blog/wp-content/uploads/2021/04/Screenshot_2021-04-04-Can-I-use-Support-tables-for-HTML5-CSS3-etc.png) 23 | * [@Robin](http://twitter.com/programart) Robin Marx整理的HTTP/3与HTTP/2、HTTP/1.1协议栈的详细对比图片,并且也开源了源文件: [https://github.com/rmarx/h3-protocol-stack](https://github.com/rmarx/h3-protocol-stack) 24 | ![](https://github.com/rmarx/h3-protocol-stack/blob/main/png/protocol-stack-h2-h3-extended.png?raw=true) 25 | * [微软的QUIC协议开源实现](https://github.com/microsoft/msquic) 将HTTP/3的基础能力融合进Windows Server 2022,被用于[SMB over QUIC](https://techcommunity.microsoft.com/t5/itops-talk-blog/smb-over-quic-files-without-the-vpn/ba-p/1183449)功能。该功能是一个相比WebDAV机制更安全的实现,无须再为VPN方案付出额外的费用和复杂的应用机制。也为SMB服务替换掉了TCP/IP和RDMA的传输机制。 26 | 27 | ## QUIC Weekly - 20210106期 28 | 29 | * 微软的QUIC协议实现[MSQUIC v1.0正式发布](https://github.com/microsoft/msquic) 30 | * Web的未来传输通道:[WebTransport Explainer](https://github.com/w3c/webtransport/blob/master/explainer.md) 31 | * [WebTransport](https://w3c.github.io/webtransport/) 的SPEC更新,支持可插拔的协议设计, 开始支持QUIC-TRANSPORT。就像WebSocket一样,但是支持了多通道、 无序传输等特性。 32 | * 史上第一个DNS over QUIC resolver [launched by AdGuard](https://itsecuritywire.com/quick-bytes/worlds-first-dns-over-quic-resolver-launched-by-adguard/) 33 | * [DNS transport: The race is on!](https://centr.org/news/blog/ietf109-dns-transport.html) 34 | * IEEE:[通过基于QUIC的代理功能实现高效的卫星-地面混合传输服务](https://ieeexplore.ieee.org/document/9297334/keywords#keywords) 35 | * [DPIFuzz: 一种用于检测QUIC的DPI模糊策略的差分模糊框架](https://dl.acm.org/doi/pdf/10.1145/3427228.3427662) 36 | * [插件化 QUIC](https://cdn.uclouvain.be/groups/cms-editors-ingi/articles/Pluginzing%20QUIC.pdf) 37 | * [优化协议栈的性能透视: TCP+TLS+HTTP/2 vs. QUIC](https://irtf.org/anrw/2019/anrw2019-final25-acmpaginated.pdf) 38 | * 2018: [WebTransport + WebCodecs at W3C Games Workshop](https://www.w3.org/2018/12/games-workshop/slides/21-webtransport-webcodecs.pdf) 39 | * [qlog 0.4.0 released](https://docs.rs/qlog/0.4.0/qlog/index.html), 包括对记录原始字节时的流式序列化的修复,以及对DATAGRAM帧记录的改进。 40 | 41 | ## QUIC Weekly - 20201209期 42 | 43 | * Wireshark v3.4.1 发布,[增加了很多与 QUIC 相关的更新](https://www.wireshark.org/docs/relnotes/wireshark-3.4.1.html) 44 | * 📢 [draft-ietf-quic-manageability](https://quicwg.org/ops-drafts/draft-ietf-quic-manageability.html) 讨论了 QUIC 传输协议的可管理性,重点讨论影响 QUIC 流量的网络操作的注意事项,比如,要实现 QUIC 的负载均衡,建议参考该文 45 | * 📢 [Applicability of the QUIC Transport Protocol](https://quicwg.org/ops-drafts/draft-ietf-quic-applicability.html) 讨论了QUIC传输协议的适用性,重点讨论了影响通过QUIC开发和部署应用协议的注意事项,比如,实现0-RTT的过程中要注意的安全问题 46 | * [w3c WebTransport](https://w3c.github.io/webtransport/) 在WebIDL中定义了一组ECMAScript API,允许在浏览器和服务器之间发送和接收数据,在底层实现可插拔协议,在上面实现通用API。本规范使用可插拔的协议,QUIC-TRANSPORT 就是这样一个协议,向服务器发送数据和从服务器接收数据。它可以像WebSockets一样使用,但支持多流、单向流、无序传输、可靠以及不可靠传输。 47 | * 📽 Google 的 David Schinaz 的视频 [QUIC 101](https://www.youtube.com/watch?v=dQ5AND4DPyU) 48 | * Netty [发布了支持 QUIC 的 0.0.1.Final](https://netty.io/news/2020/12/09/quic-0-0-1-Final.html) 该 Codec 实现了 IETF QUIC draft-32 版本,基于 qiuche 项目构建 49 | * Cloudflare 的博客 [为 QUIC 加速 UDP 包传输](https://blog.cloudflare.com/accelerating-udp-packet-transmission-for-quic/) 50 | * [PDF: 软件模拟器 QUIC 协议的性能分析](https://www.researchgate.net/publication/343651688_Performance_analysis_of_Google%27s_Quick_UDP_Internet_Connection_Protocol_under_Software_Simulator) 51 | * 📢 [draft-schinazi-masque-h3-datagram-01](https://tools.ietf.org/html/draft-schinazi-masque-h3-datagram-01) QUIC DATAGRAM 扩展为在 QUIC 上运行的应用协议提供了一种发送不可靠数据的机制,同时利用了QUIC的安全和拥塞控制特性。本文档定义了当在 QUIC 上运行的应用协议是 HTTP/3 时,如何通过在 frame payload 的开头添加一个标识符来使用 QUIC DATAGRAM frame。这允许HTTP消息使用不可靠的DATAGRAM帧来传递相关信息,确保这些帧与HTTP消息正确关联。 52 | 53 | ## QUIC Weekly - 20201202期 54 | 55 | * 📽 Robin Marx 的 [QUIC和HTTP/3的队头阻塞:细节](https://calendar.perfplanet.com/2020/head-of-line-blocking-in-quic-and-http-3-the-details/) [中文版Chinese Version](https://github.com/rmarx/holblocking-blogpost/blob/master/README_CN.md) 56 | * 📽 Hussein Nasser 的 [QUIC之路 - HTTP/1.1、HTTP/2、HTTP Pipelining、CRIME、HTTP/2队头阻塞、HPACK都错在了哪](https://www.youtube.com/watch?v=jp8lvtZa1a8) 57 | * [Netty的实验版开始支持QUIC](https://github.com/netty/netty-incubator-codec-quic) makes use of [quiche](https://github.com/cloudflare/quiche) 58 | * [GnuTLS 3.7.0 开始支持 QUIC 支持](https://blogs.gnome.org/dueno/whats-new-in-gnutls-3-7-0/) 59 | 60 | ## QUIC Weekly - 20201125期 61 | 62 | * Wikipedia 上更新了关于 HTTP/3 的章节:[HTTP/3 - Wikipedia](https://en.wikipedia.org/wiki/HTTP/3) 63 | * [IETF-QUIC 的标准依赖树](https://datatracker.ietf.org/wg/quic/deps/svg/) 64 | * Daniel Stenberg 的新 Keynote [HTTP/3 是下一代 HTTP](https://www2.slideshare.net/bagder/http3-is-next-generation-http?qid=5d7f42ff-797b-4e2f-b4b6-ba223a6afb5a&v=&b=&from_search=1) 65 | * QUIC 在 5G 网络中的实验:[QUIC Throughput and Fairness over Dual Connectivity](https://www.ida.liu.se/~nikca89/papers/mascots20a.slides.pdf) 66 | * [Google's cloud gaming platform Stadia is using QUIC](https://www.reddit.com/r/Stadia/comments/dxam9f/protocol_used_to_stream_games_on_stadia_qos/) 67 | * [跟坚哥学QUIC系列:4 - 连接迁移(Connection Migration)](https://zhuanlan.zhihu.com/p/311221111) 68 | * [跟坚哥学QUIC系列:3 - 加密和传输握手](https://zhuanlan.zhihu.com/p/301505712) 69 | * [跟坚哥学QUIC系列:2 - 地址验证(Address Validation)](https://zhuanlan.zhihu.com/p/290694322) 70 | * [跟坚哥学QUIC系列:1 - 版本协商(Version Negotiation)](https://zhuanlan.zhihu.com/p/286328927) 71 | * 📈 [Builtwith 的 QUIC 应用状况监测](https://trends.builtwith.com/Server/QUIC) 72 | 73 | ## QUIC Weekly - 20201118期 74 | 75 | * 📽 Throwback to [乘坐时光机回到2016年7月QUIC工作组的成立会议](https://www.youtube.com/watch?v=aGvFuvmEufs),这次会议是基于 Google 当时的实践经验,讨论 QUIC 是否应该成为 IETF 的标准 76 | * 📽 [Robin Marx 讲述 QUIC 和 HTTP/3 的基本功能,开放了他研究的问题及他再 qlog 和 qvis 这两个调试工具上的进展](https://www.youtube.com/watch?v=SuSpghHP0uI&feature=youtu.be)。 77 | * [lsquic 发布了 v2.24.4](https://github.com/litespeedtech/lsquic), 修复了拥塞控制和 CID 生命周期的相关问题。 78 | * [iOS 14 和 macOS Big Sur 包含了 HTTP/3 实验版本的支持](https://developer.apple.com/videos/play/wwdc2020/10111/?time=701) ,并讲述了如何开启 QUIC 的使用,比如在 macOS Big Sur 上,执行: `defaults write -g CFNetworkHTTP3Override -int 3`就可以了。 79 | * Fastly 的官方博客 [《QUIC 成熟时》](https://www.fastly.com/blog/maturing-of-quic) 80 | * 2020-11-16 发布的 [IETF-109 Slide: Tunneling Internet protocols inside QUIC](https://datatracker.ietf.org/meeting/109/materials/slides-109-intarea-tunneling-internet-protocols-inside-quic-00) Rev.00 版本的发布,意味着 QUIC 在整个现有网络生态兼容性的标准迈出的重要一步,这也是为 RFC 标准发布后整体推进而准备。 81 | 82 | ## QUIC Weekly - 20201111期 83 | 84 | * 📢 关于多路复用技术的WG值得关注 **MASQUE Working Group** [Multiplexed Application Substrate over QUIC Encryption (masque)](https://datatracker.ietf.org/wg/masque/about/) 85 | 86 | ## QUIC Weekly - 20201104期 87 | 88 | * 📢 **load-balancers** [Merged了使用POSIX timestamp的PR,这才对嘛](https://github.com/quicwg/load-balancers/pull/56/files) 89 | * 📢 **load-balancers** [draft-ietf-quic-load-balancers-05出来了,相比draft-04的更新参考这里](https://www.ietf.org/rfcdiff?url1=draft-ietf-quic-load-balancers-04&url2=draft-ietf-quic-load-balancers-05) 90 | * **应用** [水果公司的多通道Multipath transport使用场景](https://github.com/quicwg/wg-materials/blob/master/interim-20-10/Multipath%20transports%20at%20Apple.pdf) 91 | * **最佳实践** [IETF QUIC相比HTTP over TLS 1.3 over TCP有显著提升,YouTube缓冲时间降低9%](https://blog.chromium.org/2020/10/chrome-is-deploying-http3-and-ietf-quic.html) 92 | * **最佳实践** [Facebook在视频领域应用QUIC后请求错误率降低8%,卡顿率降低20%](https://engineering.fb.com/2020/10/21/networking-traffic/how-facebook-is-bringing-quic-to-billions/) 93 | * **最佳实践** [Fastly: QUIC and HTTP/3 2020 最新状态](https://zhuanlan.zhihu.com/p/270650394) 94 | * **最佳实践** [Cloudflare: 通往 QUIC 之路(The Road to QUIC)](https://zhuanlan.zhihu.com/p/268171460) 95 | * **知乎** 深入浅出讲解QUIC协议,包含了最近一年的更新 [QUIC 协议简介](https://zhuanlan.zhihu.com/p/276147925) 96 | * **知乎** QUIC的革新带来了后端处理服务的革新机会:[如何设计一款比JSON性能好10倍的编解码器?](https://zhuanlan.zhihu.com/p/274321939) 97 | * **开源** [QUIC 开源实现列表(持续更新)](https://zhuanlan.zhihu.com/p/270628018) 98 | * **开源** [lsquic 2.24.1 发布,@sumams为其增加了新功能,也包含了一些bug修复 🔧.](https://github.com/litespeedtech/lsquic) 99 | * **工具** [Wireshark 3.4.0发布,支持IETF QUIC](https://www.wireshark.org/docs/relnotes/wireshark-3.4.0.html) 100 | 101 | ## QUIC Weekly - 20201028期 102 | 103 | * 📢 [DNS-over-QUIC](https://tools.ietf.org/html/draft-ietf-dprive-dnsoquic-01): 104 | * 对科学那啥可是个好东西,太敏感,咱也不敢多说... 105 | * **Paper** [基于QUIC的MQTT协议的实现和分析](https://www.researchgate.net/publication/329835020_Implementation_and_analysis_of_QUIC_for_MQTT) 106 | * 在端到端的通讯中,确保可靠和安全通信的基础是Transport和Security协议。对于IoT应用,这些协议必须是轻量级的,毕竟IoT设备通常都是硬件能力受限。不幸的是,目前广为流行的TCP/TLS和UDP/DTLS这两种方式,在建连、时延、连接迁移等方面有很多的不足。这篇论文研究了这些缺陷的根源,展示了如何借助QUIC协议优化IoT场景从而达到更高的网络性能,以IoT领域使用范围较广的MQTT协议为例,团队实现了主要的API和功能,并比较了使用QUIC和TCP构建的MQTT协议在有线网络、无线网络和长距离实验场景(long-distance testbeds)中的差异。 107 | * 测试的结果标明,基于QUIC协议实现的MQTT协议降低建连开销达56% 108 | * 在半连接场景下,对CPU和内存的消耗分别降低了83%和50% 109 | * 因为避免了队头阻塞(HOL Blocking)的问题,数据分发时延降低了55% 110 | * 数据传输速率的抖动也因为QUIC的连接迁移特性得到明显的改善。 111 | * **Article** [HTTP/3: 你需要知道的下一代互联内网协议](https://portswigger.net/daily-swig/http-3-everything-you-need-to-know-about-the-next-generation-web-protocol) 112 | * **Article** [QUIC和物联网IoT](https://calendar.perfplanet.com/2018/quic-and-http-3-too-big-to-fail/) 113 | * IoT设备是应用QUIC协议的一个好场景,因为这些设备通常工作在无线(蜂窝)网络下(Cellular network),且需要快速建连、0-RTT和重传。但是,这些设备CPU能力普遍较弱。QUIC的作者其实多次提到QUIC对IoT应用场景有很大的提升,可惜的是,至今还没有一套为这个场景设计的协议栈(其实有啊:基于QUIC协议的Edge Computing框架: [🦖YoMo](https://github.com/yomorun/yomo/)) 114 | 115 | ## QUIC Weekly - 20201021期 116 | 117 | * 📢 QUIC 协议终于出现在 [IETF last call](https://mailarchive.ietf.org/arch/msg/ietf-announce/py1vC4Iuzq18Je4rwF69029oVOI/) 中。 118 | * 📢 QUIC 草案32文件已出: 119 | * 运输:https://tools.ietf.org/html/draft-ietf-quic-transport-32 120 | * 恢复:https://tools.ietf.org/html/draft-ietf-quic-recovery-32 121 | * TLS:https://tools.ietf.org/html/draft-ietf-quic-tls-32 122 | * HTTP:https://tools.ietf.org/html/draft-ietf-quic-http-32 123 | * QPACK:https://tools.ietf.org/html/draft-ietf-quic-qpack-19 124 | * **Adoption** 现在 Facebook 已经使用 #QUIC + #HTTP3 来处理其全球所有本机应用流量的75%以上!他们从新协议中看到了令人印象深刻的性能提升,尤其是在他们的视频流使用案例中。 [Facebook 如何将 QUIC 带给数十亿人](https://engineering.fb.com/networking-traffic/how-facebook-is-bringing-quic-to-billions/) 125 | * **Adoption** [Node.js 15首次支持 QUIC 和 HTTP/3](https://www.infoworld.com/article/3586354/nodejs-15-debuts-support-for-http3-transport.html)。 126 | 127 | ## QUIC Weekly - 20201014期 128 | 129 | * **Adoption** [Chrome 正在部署 HTTP/3 和 IETF QUIC](https://blog.chromium.org/2020/10/chrome-is-deploying-http3-and-ietf-quic.html) 130 | * 当前最新的 Google QUIC 版本(Q050)与 IETF QUIC 有很多相似之处。但是到目前为止,大多数 Chrome 用户在未启用某些命令行选项的情况下没有与 IETF QUIC 服务器通信。 131 | * Google 搜索延迟减少了2%以上。 YouTube 的重新缓冲时间减少了9%以上,而台式机的客户端吞吐量增加了3%以上,移动设备的客户端吞吐量增加了7%以上。我们很高兴地宣布,Chrome 即将推出对 IETF QUIC(特别是草稿版本 H3-29)的支持。 132 | * 目前,有25%的 Chrome 稳定用户正在使用 H3-29。我们计划在接下来的几周内增加该数字,并继续监控性能数据。 133 | * Chrome 将积极支持 IETF QUIC H3-29 和 Google QUIC Q050,让支持 Q050 的服务器有时间更新到 IETF QUIC。 134 | * **Adoption** Cloudflare 向用户发送电子邮件,通知从本月开始 [H3 将自动启用](https://cloudflare-quic.com/)。 135 | * CDN 最近被误解了。跨站点的浏览器缓存并不是那么重要,重要的是在存在点(POP)进行缓存。这种 POP 与你的终端用户的距离如此之近,可带来性能提升,因为TCP的传输距离很差。QUIC 可以通过改用 UDP 来解决此问题。 [HackerNews](https://news.ycombinator.com/item?id=24745794) 136 | * **TechTalk** Lucas Pardue:[QUIC 和 HTTP/3:开放标准和开放源代码](https://www.digitalocean.com/community/tech_talks/quic-http-3-open-standards-and-open-source-code) (2020年10月27日。) 137 | * **OpenSource** [quiche](https://github.com/cloudflare/quiche/commit/75c62c1fe97578173b74f16717a7fe9f2d34d5b0) 已支持 QUIC 和 HTTP/3 不可靠的数据报。在保证数据的传输不是最重要的情况下,它可以降低延迟。 138 | * [在 Haskell 中开发 QUIC 丢失检测和拥塞控制](https://kazu-yamamoto.hatenablog.jp/entry/2020/09/15/121613)。 139 | --- 140 | 141 | ## IETF进展 142 | 143 | * [draft-ietf-quic-transport-32](https://datatracker.ietf.org/doc/draft-ietf-quic-transport/) QUIC: A UDP-Based Multiplexed and Secure Transport 144 | * [draft-ietf-quic-tls-32](https://datatracker.ietf.org/doc/draft-ietf-quic-tls/) Using TLS to Secure QUIC 145 | * [draft-ietf-quic-invariants-11](https://datatracker.ietf.org/doc/draft-ietf-quic-invariants/) Version-Independent Properties of QUIC 146 | * [draft-ietf-quic-recovery-32](https://datatracker.ietf.org/doc/draft-ietf-quic-recovery/) QUIC Loss Detection and Congestion Control 147 | * [draft-ietf-quic-version-negotiation-01](https://datatracker.ietf.org/doc/draft-ietf-quic-version-negotiation/) Compatible Version Negotiation for QUIC 148 | 149 | ## 学习资源 150 | 151 | ### 1.不在爱了 TCP 💔 152 | 153 | * [为什么TCP是个烂协议](https://zhuanlan.zhihu.com/p/20144829) 154 | * 今天 TCP 烂了怎么办?[如何看待谷歌 Google 打算用 QUIC 协议替代 TCP/UDP?](https://www.zhihu.com/question/29705994) 155 | 156 | ### 2.浅尝 QUIC 科普贴 🎱 157 | 158 | * 知乎腾讯技术官号 [科普:QUIC协议原理分析](https://zhuanlan.zhihu.com/p/32553477) 159 | * [新一代互联网传输协议QUIC浅析](https://zhuanlan.zhihu.com/p/76202865) 160 | 161 | ### 3.真干实践大厂贴 🏌️‍♂️ 162 | 163 | * 腾讯 QUIC 实践 [让互联网更快的协议,QUIC在腾讯的实践及性能优化](https://zhuanlan.zhihu.com/p/32560981) 164 | * 阿里 QUIC 实践 [AliQUIC:场景化高性能传输网络实践](https://developer.aliyun.com/article/643770) 165 | * 七牛 QUIC 实践 [流畅度提高 100%!七牛云 QUIC 推流方案如何实现直播 0 卡顿](https://zhuanlan.zhihu.com/p/33698793) 166 | * 又拍云 QUIC 实践 [QUIC协议详解之Initial包的处理](https://zhuanlan.zhihu.com/p/162914823) 167 | * 华为 QUIC 实践 [Efforts to Improve OTT Video Experience by ICPs](https://www-file.huawei.com/-/media/corporate/pdf/ilab/13-en.pdf) 168 | * Facebook QUIC 实践 [Building Zero protocol for fast, secure mobile connections](https://engineering.fb.com/networking-traffic/building-zero-protocol-for-fast-secure-mobile-connections/) 169 | * Cloudflare QUIC 实践 [The Road to QUIC](https://blog.cloudflare.com/the-road-to-quic/) 170 | * Uber QUIC 实践 [Employing QUIC Protocol to Optimize Uber’s App Performance](https://eng.uber.com/employing-quic-protocol/) 171 | * [Uber Networking: Challenges and Opportunities](https://www.slideshare.net/dhaval2025/uber-mobility-high-performance-networking) 172 | * Fastly QUIC 实践 [Modernizing the internet with HTTP/3 and QUIC](https://www.fastly.com/blog/modernizing-the-internet-with-http3-and-quic) 173 | 174 | ### 4.熬夜充电技术细节贴 🦾 175 | 176 | * [让互联网更快的“快”---QUIC协议原理分析](https://zhuanlan.zhihu.com/p/32630510) 177 | * [QUIC 是如何做到 0RTT 的](https://zhuanlan.zhihu.com/p/142794794) 178 | * [快速理解为什么说UDP有时比TCP更有优势](http://www.52im.net/thread-1277-1-1.html) 179 | * [一泡尿的时间,快速读懂QUIC协议](http://www.52im.net/thread-2816-1-1.html) 180 | 181 | ### 5.墙裂推荐英文贴 🍿 182 | 183 | * 谷歌官方 2014 年发布的视频:[QUIC: next generation multiplexed transport over UDP](https://www.youtube.com/watch?v=hQZ-0mXFmk8) 184 | * Codevel博客文章 [https://medium.com/codavel-blog/quic-vs-tcp-tls-and-why-quic-is-not-the-next-big-thing-d4ef59143efd](https://medium.com/codavel-blog/quic-vs-tcp-tls-and-why-quic-is-not-the-next-big-thing-d4ef59143efd) 185 | * [How Secure and Quick is QUIC? Provable Security and Performance Analyses](https://www.ietf.org/proceedings/96/slides/slides-96-irtfopen-1.pdf) 186 | * [QUIC at 10,000 feet](https://docs.google.com/document/d/1gY9-YNDNAB1eip-RTPbqphgySwSNSDHLq9D5Bty4FSU/edit) 187 | * 🍿 QUIC WG chair [Dr.Lars Eggert](https://eggert.org/) [QUIC: a new internet transport](https://video.fsmpi.rwth-aachen.de/17ws-quic/12107) (🎬 58:39) @2017 188 | * 🍿 Google's [QUIC: next generation multiplexed transport over UDP](https://www.youtube.com/watch?v=hQZ-0mXFmk8) (🎬 51:40) @2014 189 | * F5 Sr Solution Architect Jason Rahm [What is QUIC?](https://www.youtube.com/watch?v=RIFnXaiRs_o) (🎬 08:35) @2018 190 | * Codavel's [QUIC vs TCP+TLS — and why QUIC is not the next big thing](https://medium.com/codavel-blog/quic-vs-tcp-tls-and-why-quic-is-not-the-next-big-thing-d4ef59143efd) 191 | 192 | ### Books 193 | 194 | * [curl](https://curl.haxx.se/)'s author [Daniel Stenberg](https://daniel.haxx.se/)'s new book: [HTTP/3 Explained](https://daniel.haxx.se/http3-explained/) 195 | 196 | ## 框架和开源实现 197 | 198 | ### C/C++ 199 | 200 | | Name | Version | Roles | Handshake | 201 | |-------------------------------|---------------------------------------------------------------|--------------------------------------------------|-------------------------| 202 | | Microsoft's [MsQuic](https://github.com/microsoft/msquic) | draft-27/28/29/30/31/32 | client, server | TLS 1.3 RFC | 203 | | Facebook's [mvfst](https://github.com/facebookincubator/mvfst) | draft-29 | library, client, server | TLS 1.3 | 204 | | Google's [Chromium](https://www.chromium.org/quic/playing-with-quic) | Q043, Q046, Q050, T050, T051, draft-27, draft-29 | library, client, server | QUIC Crypto, TLS | 205 | | [ats](https://cwiki.apache.org/confluence/display/TS/QUIC) (Apache Traffic Server) | draft-29 | client. server | TLS 1.3 | 206 | | LiteSpeed's [lsquic](https://github.com/litespeedtech/lsquic) | Draft-32, Draft-29, Draft-28, Draft-27, Q043, Q046, and Q050. | library, client, server | QUIC Crypto, RFC 8446 | 207 | | [ngtcp2](https://github.com/ngtcp2/ngtcp2) | draft-29, draft-30, draft-31, and draft-32 | library, client, server | TLSv1.3 (RFC 8446) | 208 | | Cloudflare's [nginx-cloudflare](https://github.com/cloudflare/quiche/tree/master/extras/nginx) | draft-27, draft-28, draft-29 | server | TLSv1.3 (RFC8446) | 209 | | [picoquic](https://github.com/private-octopus/picoquic) | draft-32/31/30/29/28/27 | library and test tools, test client, test server | TLS 1.3 (using picotls) | 210 | | [Pluginized QUIC](https://github.com/p-quic/pquic) | draft-29 | library, client, server | TLS 1.3 (using picotls) | 211 | | [quant](https://github.com/NTAP/quant) | draft-33, draft-34, v1 | library, client, server | TLS 1.3 | 212 | | Fastly's [quicly](https://github.com/h2o/quicly) | draft-27 | client, server | TLS 1.3 (final) | 213 | | [nginx-quic](https://hg.nginx.org/nginx-quic/) | draft-27 .. draft-32 | server | TLSv1.3 (RFC8446) | 214 | 215 | ### Rust 216 | 217 | | Name | Version | Roles | Handshake | 218 | |------------------------|------------------------------|-------------------------|-------------------| 219 | | Cloudflare's [quiche](https://github.com/cloudflare/quiche) | draft-27, draft-28, draft-29 | library, client, server | TLSv1.3 (RFC8446) | 220 | | Mozilla/Firefox's [Neqo](https://github.com/mozilla/neqo) | draft-30 | library, client, server | TLS 1.3 | 221 | | [Quinn](https://github.com/djc/quinn) | draft-28 | library, client, server | TLS 1.3 | 222 | 223 | ### Go 224 | 225 | | Name | Version | Roles | Handshake | 226 | |---------|--------------------------|-------------------------|-------------| 227 | | [quic-go](https://github.com/lucas-clemente/quic-go) | always the current draft | library, client, server | TLS 1.3 RFC | 228 | 229 | ### Node.js 230 | 231 | | Name | Version | Roles | Handshake | 232 | |--------------|----------|----------------|-----------| 233 | | [Node.js QUIC](https://github.com/nodejs/quic) | draft-25 | client, server | TLS 1.3 | 234 | 235 | ### Python 236 | 237 | | Name | Version | Roles | Handshake | 238 | |---------|----------|-------------------------|-----------| 239 | | [aioquic](https://github.com/aiortc/aioquic) | draft-29 | library, client, server | TLS 1.3 | 240 | 241 | ### Haskell 242 | 243 | | Name | Version | Roles | Handshake | 244 | |--------------|----------|-------------------------|-----------| 245 | | [Haskell quic](https://github.com/kazu-yamamoto/quic) | draft-29 | library, client, server | TLS 1.3 | 246 | 247 | ### Java 248 | 249 | | Name | Version | Roles | Handshake | 250 | |------|----------|-----------------|-----------| 251 | | [kwik](https://bitbucket.org/pjtr/kwik) | draft-29, draft-30, draft-31, draft-32 | library, client | TLS 1.3 | 252 | 253 | ## Debugging 254 | 255 | * [qvis](https://github.com/quiclog/qvis) QUIC and HTTP/3 visualization tools 256 | * [qlog](https://github.com/quiclog/qlog) This repository contains various programming language integrations for the qlog format. 257 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![Awesome QUIC Logo](https://github.com/fanweixiao/awesome-quic/blob/main/yomo-quic-weekly-social-graph.jpg?raw=true) 2 | # Awesome QUIC [![Awesome](https://awesome.re/badge.svg)](https://awesome.re) 3 | 4 | A collection of various awesome lists for videos, pentesters, libraries and frameworks. 5 | 6 | **QUIC** is the Quick UDP Internet Connections protocol, developed by Google and currently in IETF workgroups for further development. It is being considered for replacing TCP as a transport protocol for HTTP/3. We are building an Open source project for IoT & Edge Computing atop QUIC called 🦖[YoMo](https://github.com/yomorun/yomo/) 7 | 8 | --- 9 | 10 | # QUIC Weekly 11 | 12 | 🍖[discord/quic](https://discord.gg/CTH3wv9) 🦖[YoMo](https://github.com/yomorun/yomo/) 13 | 14 | ## QUIC Weekly - 20210414 15 | 16 | * [@Daniel Stenberg](https://twitter.com/bagder) 's blog: WHERE IS HTTP/3 RIGHT NOW?, said the specifications are all done. They’re now waiting in queues to get their final edits and approvals before they will get assigned RFC numbers and get published as such – they will not change any further. 17 | * netray.io scans the IPv4 address space weekly and checks how many hosts that speak QUIC. Their latest scan found 2.1 million such hosts. 18 | ![](https://daniel.haxx.se/blog/wp-content/uploads/2021/04/ietf-quic-support-in-ipv.png) 19 | * All the major browsers have HTTP/3 implementations and most of them allow you to manually enable it if it isn’t already done so. Chrome and Edge have it enabled by default and Firefox will so very soon 20 | ![](https://daniel.haxx.se/blog/wp-content/uploads/2021/04/Screenshot_2021-04-04-Can-I-use-Support-tables-for-HTML5-CSS3-etc.png) 21 | * [@Robin](http://twitter.com/programart) Draw digram and open source the source file: [https://github.com/rmarx/h3-protocol-stack](https://github.com/rmarx/h3-protocol-stack) 22 | ![](https://github.com/rmarx/h3-protocol-stack/blob/main/png/protocol-stack-h2-h3-extended.png?raw=true) 23 | * Microsoft's [open-source implementation of the QUIC protocol](https://github.com/microsoft/msquic) that will form the basis of HTTP/3 will be in Windows Server 2022. It's being used for [SMB over QUIC](https://techcommunity.microsoft.com/t5/itops-talk-blog/smb-over-quic-files-without-the-vpn/ba-p/1183449), which is a more secure replacement for WebDAV to deliver SMB access **without the expense and complexity of a VPN**. This uses QUIC as the transport for SMB **instead of TCP/IP** and RDMA, with a tunnel that secures SMB **even if encryption isn't enabled**. "SMB over QUIC will be available with Azure Automanage and Windows Server 2022," Kumar told TechRepublic. "It will also be supported as a client in Windows 10 and on third-party platforms like Android and others." 24 | 25 | ## QUIC Weekly - 20210106 26 | 27 | * Version 1.0 of the Microsoft implementation of the QUIC protocol [MSQUIC has been released](https://github.com/microsoft/msquic) 28 | * [WebTransport](https://w3c.github.io/webtransport/) This specification uses pluggable protocols, with QUIC [QUIC-TRANSPORT] as one such protocol, to send data to and receive data from servers. It can be used like WebSockets but with support for multiple streams, unidirectional streams, out-of-order delivery, and reliable as well as unreliable transport. 29 | * [WebTransport Explainer](https://github.com/w3c/webtransport/blob/master/explainer.md) 30 | * World’s first DNS over QUIC resolver [launched by AdGuard](https://www.zdnet.com/article/ad-blocker-adguard-deploys-worlds-first-dns-over-quic-resolver/) 31 | * [DNS transport: The race is on!](https://centr.org/news/blog/ietf109-dns-transport.html) 32 | * IEEE Enabling an efficient satellite-terrestrial hybrid transport service through a [QUIC-based proxy function](https://ieeexplore.ieee.org/document/9297334/keywords#keywords) 33 | * [DPIFuzz: A Differential Fuzzing Framework to Detect DPI Elusion Strategies for QUIC](https://dl.acm.org/doi/pdf/10.1145/3427228.3427662) 34 | * [Pluginizing QUIC](https://cdn.uclouvain.be/groups/cms-editors-ingi/articles/Pluginzing%20QUIC.pdf) 35 | * [A Performance Perspective on Web Optimized Protocol Stacks: TCP+TLS+HTTP/2 vs. QUIC](https://irtf.org/anrw/2019/anrw2019-final25-acmpaginated.pdf) 36 | * 2018: [WebTransport + WebCodecs at W3C Games Workshop](https://www.w3.org/2018/12/games-workshop/slides/21-webtransport-webcodecs.pdf) 37 | * [qlog 0.4.0 released](https://docs.rs/qlog/0.4.0/qlog/index.html), this one includes a fix to streaming serialization when logging raw bytes and improved logging of DATAGRAM frames. 38 | 39 | ## QUIC Weekly - 20201209 40 | 41 | * Wireshark v3.4.1 [release with lots of updates to QUIC](https://www.wireshark.org/docs/relnotes/wireshark-3.4.1.html) 42 | * 📢 [draft-ietf-quic-manageability](https://quicwg.org/ops-drafts/draft-ietf-quic-manageability.html) discusses manageability of the QUIC transport protocol, focusing on caveats impacting network operations involving QUIC traffic 43 | * 📢 [Applicability of the QUIC Transport Protocol](https://quicwg.org/ops-drafts/draft-ietf-quic-applicability.html) discusses the applicability of the QUIC transport protocol, focusing on caveats impacting application protocol development and deployment over QUIC 44 | * [w3c WebTransport](https://w3c.github.io/webtransport/) defines a set of ECMAScript APIs in WebIDL to allow data to be sent and received between a browser and server, implementing pluggable protocols underneath with common APIs on top. This specification uses pluggable protocols, with QUIC [QUIC-TRANSPORT] as one such protocol, to send data to and receive data from servers. It can be used like WebSockets but with support for multiple streams, unidirectional streams, out-of-order delivery, and reliable as well as unreliable transport. 45 | * 📽 David Schinaz from Google [QUIC 101](https://www.youtube.com/watch?v=dQ5AND4DPyU) 46 | * [Netty release 0.0.1.Final](https://netty.io/news/2020/12/09/quic-0-0-1-Final.html) This codec provides a QUIC implementation of draft 32 by wrapping quiche and expose QUIC via the Channel API. 47 | * Cloudflare blog [Accelerating UDP packet transmission for QUIC](https://blog.cloudflare.com/accelerating-udp-packet-transmission-for-quic/) 48 | * [PDF: Performance analysis of Google’s Quick UDP Internet Connection Protocol under Software Simulator](https://www.researchgate.net/publication/343651688_Performance_analysis_of_Google%27s_Quick_UDP_Internet_Connection_Protocol_under_Software_Simulator) 49 | * 📢 [draft-schinazi-masque-h3-datagram-01](https://tools.ietf.org/html/draft-schinazi-masque-h3-datagram-01) QUIC DATAGRAM extension provides application protocols running over QUIC with a mechanism to send unreliable data while leveraging the security and congestion-control properties of QUIC. However,QUIC DATAGRAM frames do not provide a means to demultiplex application contexts. This document defines how to use QUIC DATAGRAM frames when the application protocol running over QUIC is HTTP/3 by adding an identifier at the start of the frame payload. This allows HTTP messages to convey related information using unreliable DATAGRAM frames, ensuring those frames are properly associated with an HTTP message. 50 | 51 | ## QUIC Weekly - 20201202 52 | 53 | * 📽 Robin Marx [Head-of-Line Blocking in QUIC and HTTP/3: The Details](https://calendar.perfplanet.com/2020/head-of-line-blocking-in-quic-and-http-3-the-details/) 54 | * 📽 Hussein Nasser [The Road to QUIC - what’s wrong w/ HTTP/1.1, HTTP/2, HTTP Pipelining, CRIME, HTTP/2 HOL, HPACK](https://www.youtube.com/watch?v=jp8lvtZa1a8) 55 | * Experimental QUIC codec for [netty](https://github.com/netty/netty-incubator-codec-quic) makes use of [quiche](https://github.com/cloudflare/quiche) 56 | * [GnuTLS 3.7.0 add QUIC support](https://blogs.gnome.org/dueno/whats-new-in-gnutls-3-7-0/) 57 | 58 | ## QUIC Weekly - 20201125 59 | 60 | * [HTTP/3 - Wikipedia](https://en.wikipedia.org/wiki/HTTP/3) 61 | * [QUIC dependencies graph](https://datatracker.ietf.org/wg/quic/deps/svg/) 62 | * Daniel Stenberg's new keynote [HTTP/3 is next generation HTTP](https://www2.slideshare.net/bagder/http3-is-next-generation-http?qid=5d7f42ff-797b-4e2f-b4b6-ba223a6afb5a&v=&b=&from_search=1) 63 | * Accelerating QUIC transition to 5G: [QUIC Throughput and Fairness over Dual Connectivity](https://www.ida.liu.se/~nikca89/papers/mascots20a.slides.pdf) 64 | * [Google's cloud gaming platform Stadia is using QUIC](https://www.reddit.com/r/Stadia/comments/dxam9f/protocol_used_to_stream_games_on_stadia_qos/) 65 | * 🇨🇳 _Chinese only_ [跟坚哥学QUIC系列:加密和传输握手](https://zhuanlan.zhihu.com/p/301505712) 66 | * 🇨🇳 _Chinese only_ [跟坚哥学QUIC系列:连接迁移(Connection Migration)](https://www.zhihu.com/people/xiaojian-70-36) 67 | * 📈 [QUIC Usage Statics](https://trends.builtwith.com/Server/QUIC) 68 | 69 | ## QUIC Weekly - 20201118 70 | 71 | * 📽 Throwback to [QUIC BoF session in July 2016](https://www.youtube.com/watch?v=aGvFuvmEufs). A Working Group forming meeting to decide if QUIC should be adopted for standardisation into the IETF, based on the exissting deployment experience of Google. 72 | * 📽 Robin Marx [gave a keynote](https://www.youtube.com/watch?v=SuSpghHP0uI&feature=youtu.be) at IEEE LATINCOM about his experiences doing a PhD on the QUIC and HTTP3 protocols. He talked about their basic features, open research questions and his process in contributing the qlog and qvis debugging tools. 73 | * [lsquic release 2.24.4](https://github.com/litespeedtech/lsquic), contains fixes to congestion controller and to CID lifecycle. 74 | * [iOS 14 and macOS Big Sur include an experimental preview of HTTP/3 support](https://developer.apple.com/videos/play/wwdc2020/10111/?time=701) for your apps that use URLSession, which you can enable in developer settings. To enable HTTP/3 macOS Big Sur: `defaults write -g CFNetworkHTTP3Override -int 3`. 75 | * [Fastly: The Maturing of QUIC](https://www.fastly.com/blog/maturing-of-quic) 76 | * 2020-11-16 [IETF-109 Slide: Tunneling Internet protocols inside QUIC](https://datatracker.ietf.org/meeting/109/materials/slides-109-intarea-tunneling-internet-protocols-inside-quic-00) Rev.00 77 | 78 | ## QUIC Weekly - 20201111 79 | 80 | * 📢 **MASQUE Working Group** [Multiplexed Application Substrate over QUIC Encryption (masque)](https://datatracker.ietf.org/wg/masque/about/) 81 | 82 | ## QUIC Weekly - 20201028 83 | 84 | * 📢 [DNS-over-QUIC](https://tools.ietf.org/html/draft-ietf-dprive-dnsoquic-01) 85 | * **Paper** [Implementation and analysis of QUIC for MQTT](https://www.researchgate.net/publication/329835020_Implementation_and_analysis_of_QUIC_for_MQTT) 86 | * Transport and security protocols are essential to ensure reliable and secure communication between two parties. For IoT applications, these protocols must be lightweight, since IoT devices are usually resource constrained. Unfortunately, the existing transport and security protocols – namely TCP/TLS and UDP/DTLS – fall short in terms of connection overhead, latency, and connection migration when used in IoT applications. In this paper, after studying the root causes of these shortcomings, we show how utilizing QUIC in IoT scenarios results in a higher performance. Based on these observations, and given the popularity of MQTT as an IoT application layer protocol, we integrate MQTT with QUIC. By presenting the main APIs and functions developed, we explain how connection establishment and message exchange functionalities work. We evaluate the performance of MQTTw/QUIC versus MQTTw/TCP using wired, wireless, and long-distance testbeds. Our results show that MQTTw/QUIC reduces connection overhead in terms of the number of packets exchanged with the broker by up to 56%. In addition, by eliminating half-open connections, MQTTw/QUIC reduces processor and memory usage by up to 83% and 50%, respectively. Furthermore, by removing the head-of-line blocking problem, delivery latency is reduced by up to 55%. We also show that the throughput drops experienced by MQTTw/QUIC when a connection migration happens is considerably lower than that of MQTTw/TCP. 87 | * **Article** [HTTP/3: Everything you need to know about the next-generation web protocol](https://portswigger.net/daily-swig/http-3-everything-you-need-to-know-about-the-next-generation-web-protocol) 88 | * **Article** [QUIC and IoT](https://calendar.perfplanet.com/2018/quic-and-http-3-too-big-to-fail/) 89 | * One of the oft-touted use cases for QUIC is in Internet-of-Things (IoT) devices, as they often need intermittent (cellular) network access and low-latency connection setup, 0-RTT and better loss resilience are quite interesting in those cases. However, those devices often also have quite slow CPUs.. There are many issues where QUIC’s designers mention the IoT use case and how a certain decision might impact this, though as far as I know there is no stack that has been tested on such hardware yet. Similarly, many issues mention taking into account a hardware QUIC implementation, but at my experience level it’s unclear if this is more wishful thinking and handwaving rather than a guarantee. 90 | 91 | ## QUIC Weekly - 20201021 92 | 93 | * 📢 QUIC protocol is finally in [IETF last call](https://mailarchive.ietf.org/arch/msg/ietf-announce/py1vC4Iuzq18Je4rwF69029oVOI/). 94 | * Cloudflare: [A Last Call for QUIC, a giant leap for the Internet](https://blog.cloudflare.com/last-call-for-quic/) 95 | * 📢 QUIC draft-32 documents are out: 96 | * Transport: https://tools.ietf.org/html/draft-ietf-quic-transport-32 97 | * Recovery: https://tools.ietf.org/html/draft-ietf-quic-recovery-32 98 | * TLS: https://tools.ietf.org/html/draft-ietf-quic-tls-32 99 | * HTTP: https://tools.ietf.org/html/draft-ietf-quic-http-32 100 | * QPACK: https://tools.ietf.org/html/draft-ietf-quic-qpack-19 101 | * **Adoption** Facebook today is already using #QUIC + #HTTP3 for over 75% of all their global native app traffic! They've seen impressive performance gains from the new protocols, especially for their video streaming use cases. [How Facebook is bringing QUIC to billions](https://engineering.fb.com/networking-traffic/how-facebook-is-bringing-quic-to-billions/) 102 | * **Adoption** [Node.js 15 debuts support for QUIC and HTTP/3](https://www.infoworld.com/article/3586354/nodejs-15-debuts-support-for-http3-transport.html). 103 | 104 | ## QUIC Weekly - 20201014 105 | 106 | * **Adoption** [Chrome is deploying HTTP/3 and IETF QUIC](https://blog.chromium.org/2020/10/chrome-is-deploying-http3-and-ietf-quic.html) 107 | * current latest Google QUIC version (Q050) has many similarities with IETF QUIC. But up until now, the majority of Chrome users didn't communicate with IETF QUIC servers without enabling some command-line options. 108 | * Google search latency decreases by over 2%. YouTube rebuffer time decreased by over 9%, while client throughput increased by over 3% on desktop and over 7% on mobile. We're happy to announce that Chrome is rolling out support for IETF QUIC (specifically, draft version h3-29) 109 | * Today 25% of Chrome Stable users are using h3-29, and we plan on increasing that number over the coming weeks as we continue to monitor performance data 110 | * Chrome will actively support both IETF QUIC h3-29 and Google QUIC Q050 to provide servers that support Q050 with time to update to IETF QUIC. 111 | * **Adoption** Cloudflare begins emailing users that [H3 will be automatically enabled](https://cloudflare-quic.com/) starting this month 112 | * CDNs are misunderstood these days. Caching at the browser across sites is not that important, it caching at a point of presence (POP). This POP being so much closer to your end users brings performance gains because TCP is terrible over distances. QUIC may fix this by it's shift to UDP. [HackerNews](https://news.ycombinator.com/item?id=24745794) 113 | * **TechTalk** Lucas Pardue: [QUIC & HTTP/3: Open Standards and Open Source Code](https://www.digitalocean.com/community/tech_talks/quic-http-3-open-standards-and-open-source-code) October 27, 2020 114 | * **OpenSource** [quiche](https://github.com/cloudflare/quiche/commit/75c62c1fe97578173b74f16717a7fe9f2d34d5b0) landed supported for QUIC & HTTP/3 unreliable datagram into . It can help support low-latency where guaranteed delivery of data is not paramount. 115 | * [Developing QUIC Loss Detection and Congestion Control in Haskell](https://kazu-yamamoto.hatenablog.jp/entry/2020/09/15/121613) 116 | --- 117 | 118 | ## Latest IETF draft 119 | 120 | * [draft-ietf-quic-transport-31](https://datatracker.ietf.org/doc/draft-ietf-quic-transport/) QUIC: A UDP-Based Multiplexed and Secure Transport 121 | * [draft-ietf-quic-tls-31](https://datatracker.ietf.org/doc/draft-ietf-quic-tls/) Using TLS to Secure QUIC 122 | * [draft-ietf-quic-invariants-11](https://datatracker.ietf.org/doc/draft-ietf-quic-invariants/) Version-Independent Properties of QUIC 123 | * [draft-ietf-quic-recovery-31](https://datatracker.ietf.org/doc/draft-ietf-quic-recovery/) QUIC Loss Detection and Congestion Control 124 | * [draft-ietf-quic-version-negotiation-01](https://datatracker.ietf.org/doc/draft-ietf-quic-version-negotiation/) Compatible Version Negotiation for QUIC 125 | 126 | ## Learning Resources 127 | 128 | * 🍿 QUIC WG chair [Dr.Lars Eggert](https://eggert.org/) [QUIC: a new internet transport](https://video.fsmpi.rwth-aachen.de/17ws-quic/12107) (🎬 58:39) @2017 129 | * 🍿 Google's [QUIC: next generation multiplexed transport over UDP](https://www.youtube.com/watch?v=hQZ-0mXFmk8) (🎬 51:40) @2014 130 | * F5 Sr Solution Architect Jason Rahm [What is QUIC?](https://www.youtube.com/watch?v=RIFnXaiRs_o) (🎬 08:35) @2018 131 | * Codavel's [QUIC vs TCP+TLS — and why QUIC is not the next big thing](https://medium.com/codavel-blog/quic-vs-tcp-tls-and-why-quic-is-not-the-next-big-thing-d4ef59143efd) 132 | 133 | ### Books 134 | 135 | * [curl](https://curl.haxx.se/)'s author [Daniel Stenberg](https://daniel.haxx.se/)'s new book: [HTTP/3 Explained](https://daniel.haxx.se/http3-explained/) 136 | 137 | ## Library & Frameworks 138 | 139 | ### C/C++ 140 | 141 | | Name | Version | Roles | Handshake | 142 | |-------------------------------|---------------------------------------------------------------|--------------------------------------------------|-------------------------| 143 | | Microsoft's [MsQuic](https://github.com/microsoft/msquic) | draft-27/28/29/30/31/32 | client, server | TLS 1.3 RFC | 144 | | Facebook's [mvfst](https://github.com/facebookincubator/mvfst) | draft-29 | library, client, server | TLS 1.3 | 145 | | Google's [Chromium](https://www.chromium.org/quic/playing-with-quic) | Q043, Q046, Q050, T050, T051, draft-27, draft-29 | library, client, server | QUIC Crypto, TLS | 146 | | [ats](https://cwiki.apache.org/confluence/display/TS/QUIC) (Apache Traffic Server) | draft-29 | client. server | TLS 1.3 | 147 | | LiteSpeed's [lsquic](https://github.com/litespeedtech/lsquic) | Draft-32, Draft-29, Draft-28, Draft-27, Q043, Q046, and Q050. | library, client, server | QUIC Crypto, RFC 8446 | 148 | | [ngtcp2](https://github.com/ngtcp2/ngtcp2) | draft-29, draft-30, draft-31, and draft-32 | library, client, server | TLSv1.3 (RFC 8446) | 149 | | Cloudflare's [nginx-cloudflare](https://github.com/cloudflare/quiche/tree/master/extras/nginx) | draft-27, draft-28, draft-29 | server | TLSv1.3 (RFC8446) | 150 | | [picoquic](https://github.com/private-octopus/picoquic) | draft-32/31/30/29/28/27 | library and test tools, test client, test server | TLS 1.3 (using picotls) | 151 | | [Pluginized QUIC](https://github.com/p-quic/pquic) | draft-29 | library, client, server | TLS 1.3 (using picotls) | 152 | | [quant](https://github.com/NTAP/quant) | draft-33, draft-34, v1 | library, client, server | TLS 1.3 | 153 | | Fastly's [quicly](https://github.com/h2o/quicly) | draft-27 | client, server | TLS 1.3 (final) | 154 | | [nginx-quic](https://hg.nginx.org/nginx-quic/) | draft-27 .. draft-32 | server | TLSv1.3 (RFC8446) | 155 | | [TQUIC](https://github.com/Tencent/tquic) | v1 | library, client, server | TLS 1.3 | 156 | 157 | ### Rust 158 | 159 | | Name | Version | Roles | Handshake | 160 | |------------------------|------------------------------|-------------------------|-------------------| 161 | | Cloudflare's [quiche](https://github.com/cloudflare/quiche) | draft-27, draft-28, draft-29 | library, client, server | TLSv1.3 (RFC8446) | 162 | | Mozilla/Firefox's [Neqo](https://github.com/mozilla/neqo) | draft-30 | library, client, server | TLS 1.3 | 163 | | [Quinn](https://github.com/djc/quinn) | draft-28 | library, client, server | TLS 1.3 | 164 | | [TQUIC](https://github.com/Tencent/tquic) | v1 | library, client, server | TLS 1.3 | 165 | 166 | ### Go 167 | 168 | | Name | Version | Roles | Handshake | 169 | |---------|--------------------------|-------------------------|-------------| 170 | | [quic-go](https://github.com/lucas-clemente/quic-go) | always the current draft | library, client, server | TLS 1.3 RFC | 171 | 172 | ### Node.js 173 | 174 | | Name | Version | Roles | Handshake | 175 | |--------------|----------|----------------|-----------| 176 | | [Node.js QUIC](https://github.com/nodejs/quic) | draft-25 | client, server | TLS 1.3 | 177 | 178 | ### Python 179 | 180 | | Name | Version | Roles | Handshake | 181 | |---------|----------|-------------------------|-----------| 182 | | [aioquic](https://github.com/aiortc/aioquic) | draft-29 | library, client, server | TLS 1.3 | 183 | 184 | ### Haskell 185 | 186 | | Name | Version | Roles | Handshake | 187 | |--------------|----------|-------------------------|-----------| 188 | | [Haskell quic](https://github.com/kazu-yamamoto/quic) | draft-29 | library, client, server | TLS 1.3 | 189 | 190 | ### Java 191 | 192 | | Name | Version | Roles | Handshake | 193 | |------|----------|-----------------|-----------| 194 | | [kwik](https://bitbucket.org/pjtr/kwik) | draft-29, draft-30, draft-31, draft-32 | library, client | TLS 1.3 | 195 | 196 | ## Debugging 197 | 198 | * [qvis](https://github.com/quiclog/qvis) QUIC and HTTP/3 visualization tools 199 | * [qlog](https://github.com/quiclog/qlog) This repository contains various programming language integrations for the qlog format. 200 | -------------------------------------------------------------------------------- /awesome-quic-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xileteam/awesome-quic/f5ef3a986795822b5b2bb2cb178914724392b5ff/awesome-quic-logo.png -------------------------------------------------------------------------------- /quic-weekly-2020-10-14-CN.md: -------------------------------------------------------------------------------- 1 | QUIC Weekly - 20201014期 2 | --- 3 | 4 | 线上订阅:[discord/quic](https://discord.gg/CTH3wv9) 5 | 6 | * **Adoption** [Chrome 正在部署 HTTP/3 和 IETF QUIC](https://blog.chromium.org/2020/10/chrome-is-deploying-http3-and-ietf-quic.html) 7 | * 当前最新的 Google QUIC 版本(Q050)与 IETF QUIC 有很多相似之处。但是到目前为止,大多数 Chrome 用户在未启用某些命令行选项的情况下没有与 IETF QUIC 服务器通信。 8 | * Google 搜索延迟减少了2%以上。 YouTube 的重新缓冲时间减少了9%以上,而台式机的客户端吞吐量增加了3%以上,移动设备的客户端吞吐量增加了7%以上。我们很高兴地宣布,Chrome 即将推出对 IETF QUIC(特别是草稿版本 H3-29)的支持。 9 | * 目前,有25%的 Chrome 稳定用户正在使用 H3-29。我们计划在接下来的几周内增加该数字,并继续监控性能数据。 10 | * Chrome 将积极支持 IETF QUIC H3-29 和 Google QUIC Q050,让支持 Q050 的服务器有时间更新到 IETF QUIC。 11 | * **Adoption** Cloudflare 向用户发送电子邮件,通知从本月开始 [H3 将自动启用](https://cloudflare-quic.com/)。 12 | * CDN 最近被误解了。跨站点的浏览器缓存并不是那么重要,重要的是在存在点(POP)进行缓存。这种 POP 与你的终端用户的距离如此之近,可带来性能提升,因为TCP的传输距离很差。QUIC 可以通过改用 UDP 来解决此问题。 [HackerNews](https://news.ycombinator.com/item?id=24745794) 13 | * **TechTalk** Lucas Pardue:[QUIC 和 HTTP/3:开放标准和开放源代码](https://www.digitalocean.com/community/tech_talks/quic-http-3-open-standards-and-open-source-code) (2020年10月27日。) 14 | * **OpenSource** [quiche](https://github.com/cloudflare/quiche/commit/75c62c1fe97578173b74f16717a7fe9f2d34d5b0) 已支持 QUIC 和 HTTP/3 不可靠的数据报。在保证数据的传输不是最重要的情况下,它可以降低延迟。 15 | * [在 Haskell 中开发 QUIC 丢失检测和拥塞控制](https://kazu-yamamoto.hatenablog.jp/entry/2020/09/15/121613)。 16 | -------------------------------------------------------------------------------- /quic-weekly-2020-10-14.md: -------------------------------------------------------------------------------- 1 | A collection of various awesome lists for videos, pentesters, libraries and frameworks. 2 | 3 | **QUIC** is the Quick UDP Internet Connections protocol, developed by Google and currently in IETF workgroups for further development. It is being considered for replacing TCP as a transport protocol for HTTP/3. We are building an Open source project for IoT & Edge Computing atop QUIC called 🦖[YoMo](https://github.com/yomorun/yomo/) 4 | 5 | Online Community: 🍖[discord/quic](https://discord.gg/CTH3wv9) 6 | Maintainer: 🦖[YoMo](https://github.com/yomorun/yomo/) 7 | 8 | QUIC Weekly - 20201014 9 | --- 10 | 11 | * **Adoption** [Chrome is deploying HTTP/3 and IETF QUIC](https://blog.chromium.org/2020/10/chrome-is-deploying-http3-and-ietf-quic.html) 12 | * current latest Google QUIC version (Q050) has many similarities with IETF QUIC. But up until now, the majority of Chrome users didn't communicate with IETF QUIC servers without enabling some command-line options. 13 | * Google search latency decreases by over 2%. YouTube rebuffer time decreased by over 9%, while client throughput increased by over 3% on desktop and over 7% on mobile. We're happy to announce that Chrome is rolling out support for IETF QUIC (specifically, draft version h3-29) 14 | * Today 25% of Chrome Stable users are using h3-29, and we plan on increasing that number over the coming weeks as we continue to monitor performance data 15 | * Chrome will actively support both IETF QUIC h3-29 and Google QUIC Q050 to provide servers that support Q050 with time to update to IETF QUIC. 16 | * **Adoption** Cloudflare begins emailing users that [H3 will be automatically enabled](https://cloudflare-quic.com/) starting this month 17 | * CDNs are misunderstood these days. Caching at the browser across sites is not that important, it caching at a point of presence (POP). This POP being so much closer to your end users brings performance gains because TCP is terrible over distances. QUIC may fix this by it's shift to UDP. [HackerNews](https://news.ycombinator.com/item?id=24745794) 18 | * **TechTalk** Lucas Pardue: [QUIC & HTTP/3: Open Standards and Open Source Code](https://www.digitalocean.com/community/tech_talks/quic-http-3-open-standards-and-open-source-code) October 27, 2020 19 | * **OpenSource** [quiche](https://github.com/cloudflare/quiche/commit/75c62c1fe97578173b74f16717a7fe9f2d34d5b0) landed supported for QUIC & HTTP/3 unreliable datagram into . It can help support low-latency where guaranteed delivery of data is not paramount. 20 | * [Developing QUIC Loss Detection and Congestion Control in Haskell](https://kazu-yamamoto.hatenablog.jp/entry/2020/09/15/121613) 21 | -------------------------------------------------------------------------------- /quic-weekly-2020-10-21-CN.md: -------------------------------------------------------------------------------- 1 | QUIC Weekly - 20201021期 2 | --- 3 | 4 | 线上订阅:[discord/quic](https://discord.gg/CTH3wv9) 5 | 6 | * 📢 QUIC 协议终于出现在 [IETF last call](https://mailarchive.ietf.org/arch/msg/ietf-announce/py1vC4Iuzq18Je4rwF69029oVOI/) 中。 7 | * 📢 QUIC 草案32文件已出: 8 | * 运输:https://tools.ietf.org/html/draft-ietf-quic-transport-32 9 | * 恢复:https://tools.ietf.org/html/draft-ietf-quic-recovery-32 10 | * TLS:https://tools.ietf.org/html/draft-ietf-quic-tls-32 11 | * HTTP:https://tools.ietf.org/html/draft-ietf-quic-http-32 12 | * QPACK:https://tools.ietf.org/html/draft-ietf-quic-qpack-19 13 | * **Adoption** 现在 Facebook 已经使用 #QUIC + #HTTP3 来处理其全球所有本机应用流量的75%以上!他们从新协议中看到了令人印象深刻的性能提升,尤其是在他们的视频流使用案例中。 [Facebook 如何将 QUIC 带给数十亿人](https://engineering.fb.com/networking-traffic/how-facebook-is-bringing-quic-to-billions/) 14 | * **Adoption** [Node.js 15首次支持 QUIC 和 HTTP/3](https://www.infoworld.com/article/3586354/nodejs-15-debuts-support-for-http3-transport.html)。 15 | -------------------------------------------------------------------------------- /quic-weekly-2020-10-21.md: -------------------------------------------------------------------------------- 1 | A collection of various awesome lists for videos, pentesters, libraries and frameworks. 2 | 3 | **QUIC** is the Quick UDP Internet Connections protocol, developed by Google and currently in IETF workgroups for further development. It is being considered for replacing TCP as a transport protocol for HTTP/3. We are building an Open source project for IoT & Edge Computing atop QUIC called 🦖[YoMo](https://github.com/yomorun/yomo/) 4 | 5 | Online Community: 🍖[discord/quic](https://discord.gg/CTH3wv9) 6 | Maintainer: 🦖[YoMo](https://github.com/yomorun/yomo/) 7 | 8 | QUIC Weekly - 20201021 9 | --- 10 | 11 | Online Community:[discord/quic](https://discord.gg/CTH3wv9) 12 | 13 | * 📢 QUIC protocol is finally in [IETF last call](https://mailarchive.ietf.org/arch/msg/ietf-announce/py1vC4Iuzq18Je4rwF69029oVOI/). 14 | * 📢 QUIC draft-32 documents are out: 15 | * Transport: https://tools.ietf.org/html/draft-ietf-quic-transport-32 16 | * Recovery: https://tools.ietf.org/html/draft-ietf-quic-recovery-32 17 | * TLS: https://tools.ietf.org/html/draft-ietf-quic-tls-32 18 | * HTTP: https://tools.ietf.org/html/draft-ietf-quic-http-32 19 | * QPACK: https://tools.ietf.org/html/draft-ietf-quic-qpack-19 20 | * **Adoption** Facebook today is already using #QUIC + #HTTP3 for over 75% of all their global native app traffic! They've seen impressive performance gains from the new protocols, especially for their video streaming use cases. [How Facebook is bringing QUIC to billions](https://engineering.fb.com/networking-traffic/how-facebook-is-bringing-quic-to-billions/) 21 | * **Adoption** [Node.js 15 debuts support for QUIC and HTTP/3](https://www.infoworld.com/article/3586354/nodejs-15-debuts-support-for-http3-transport.html). 22 | -------------------------------------------------------------------------------- /quic-weekly-2020-10-28-CN.md: -------------------------------------------------------------------------------- 1 | QUIC Weekly - 20201028期 2 | --- 3 | 4 | 在线社区:🍖[discord/quic](https://discord.gg/CTH3wv9) 🦖[YoMo](https://github.com/yomorun/yomo/) 5 | 6 | * 📢 [DNS-over-QUIC](https://tools.ietf.org/html/draft-ietf-dprive-dnsoquic-01): 7 | * 对科学那啥可是个好东西,太敏感,咱也不敢多说... 8 | * **Paper** [基于QUIC的MQTT协议的实现和分析](https://www.researchgate.net/publication/329835020_Implementation_and_analysis_of_QUIC_for_MQTT) 9 | * 在端到端的通讯中,确保可靠和安全通信的基础是Transport和Security协议。对于IoT应用,这些协议必须是轻量级的,毕竟IoT设备通常都是硬件能力受限。不幸的是,目前广为流行的TCP/TLS和UDP/DTLS这两种方式,在建连、时延、连接迁移等方面有很多的不足。这篇论文研究了这些缺陷的根源,展示了如何借助QUIC协议优化IoT场景从而达到更高的网络性能,以IoT领域使用范围较广的MQTT协议为例,团队实现了主要的API和功能,并比较了使用QUIC和TCP构建的MQTT协议在有线网络、无线网络和长距离实验场景(long-distance testbeds)中的差异。 10 | * 测试的结果标明,基于QUIC协议实现的MQTT协议降低建连开销达56% 11 | * 在半连接场景下,对CPU和内存的消耗分别降低了83%和50% 12 | * 因为避免了队头阻塞(HOL Blocking)的问题,数据分发时延降低了55% 13 | * 数据传输速率的抖动也因为QUIC的连接迁移特性得到明显的改善。 14 | * **Article** [HTTP/3: 你需要知道的下一代互联内网协议](https://portswigger.net/daily-swig/http-3-everything-you-need-to-know-about-the-next-generation-web-protocol) 15 | * **Article** [QUIC和物联网IoT](https://calendar.perfplanet.com/2018/quic-and-http-3-too-big-to-fail/) 16 | * IoT设备是应用QUIC协议的一个好场景,因为这些设备通常工作在无线(蜂窝)网络下(Cellular network),且需要快速建连、0-RTT和重传。但是,这些设备CPU能力普遍较弱。QUIC的作者其实多次提到QUIC对IoT应用场景有很大的提升,可惜的是,至今还没有一套为这个场景设计的协议栈(其实有啊:基于QUIC协议的Edge Computing框架: [🦖YoMo](https://github.com/yomorun/yomo/)) 17 | * **Article** [未来的Internet: HTTP/3 — No More TCP, let’s QUIC fix it(谐音梗我翻不出来了...)](https://thexbhpguy.medium.com/the-new-internet-http-3-no-more-tcp-lets-quic-fix-it-6a4cbb6280c7) 18 | -------------------------------------------------------------------------------- /quic-weekly-2020-10-28.md: -------------------------------------------------------------------------------- 1 | A collection of various awesome lists for videos, pentesters, libraries and frameworks. 2 | 3 | > **QUIC** is the Quick UDP Internet Connections protocol, developed by Google and currently in IETF workgroups for further development. It is being considered for replacing TCP as a transport protocol for HTTP/3. We are building an Open source project for IoT & Edge Computing atop QUIC called 🦖[YoMo](https://github.com/yomorun/yomo/) 4 | 5 | Online Community: 🍖[discord/quic](https://discord.gg/CTH3wv9) 6 | Maintainer: 🦖[YoMo](https://github.com/yomorun/yomo/) 7 | 8 | QUIC Weekly - 20201028 9 | --- 10 | 11 | Online Community:[discord/quic](https://discord.gg/CTH3wv9) 12 | 13 | * 📢 [DNS-over-QUIC](https://tools.ietf.org/html/draft-ietf-dprive-dnsoquic-01) 14 | * **Paper** [Implementation and analysis of QUIC for MQTT](https://www.researchgate.net/publication/329835020_Implementation_and_analysis_of_QUIC_for_MQTT) 15 | * Transport and security protocols are essential to ensure reliable and secure communication between two parties. For IoT applications, these protocols must be lightweight, since IoT devices are usually resource constrained. Unfortunately, the existing transport and security protocols – namely TCP/TLS and UDP/DTLS – fall short in terms of connection overhead, latency, and connection migration when used in IoT applications. In this paper, after studying the root causes of these shortcomings, we show how utilizing QUIC in IoT scenarios results in a higher performance. Based on these observations, and given the popularity of MQTT as an IoT application layer protocol, we integrate MQTT with QUIC. By presenting the main APIs and functions developed, we explain how connection establishment and message exchange functionalities work. We evaluate the performance of MQTTw/QUIC versus MQTTw/TCP using wired, wireless, and long-distance testbeds. Our results show that MQTTw/QUIC reduces connection overhead in terms of the number of packets exchanged with the broker by up to 56%. In addition, by eliminating half-open connections, MQTTw/QUIC reduces processor and memory usage by up to 83% and 50%, respectively. Furthermore, by removing the head-of-line blocking problem, delivery latency is reduced by up to 55%. We also show that the throughput drops experienced by MQTTw/QUIC when a connection migration happens is considerably lower than that of MQTTw/TCP. 16 | * **Article** [HTTP/3: Everything you need to know about the next-generation web protocol](https://portswigger.net/daily-swig/http-3-everything-you-need-to-know-about-the-next-generation-web-protocol) 17 | * **Article** [QUIC and IoT](https://calendar.perfplanet.com/2018/quic-and-http-3-too-big-to-fail/) 18 | * One of the oft-touted use cases for QUIC is in Internet-of-Things (IoT) devices, as they often need intermittent (cellular) network access and low-latency connection setup, 0-RTT and better loss resilience are quite interesting in those cases. However, those devices often also have quite slow CPUs.. There are many issues where QUIC’s designers mention the IoT use case and how a certain decision might impact this, though as far as I know there is no stack that has been tested on such hardware yet. Similarly, many issues mention taking into account a hardware QUIC implementation, but at my experience level it’s unclear if this is more wishful thinking and handwaving rather than a guarantee. 19 | * **Article** [The New Internet: HTTP/3 — No More TCP, let’s QUIC fix it](https://thexbhpguy.medium.com/the-new-internet-http-3-no-more-tcp-lets-quic-fix-it-6a4cbb6280c7) 20 | -------------------------------------------------------------------------------- /quic-weekly-2020-11-04-CN.md: -------------------------------------------------------------------------------- 1 | QUIC Weekly - 20201104期 2 | --- 3 | 4 | 在线社区:🍖[discord/quic](https://discord.gg/CTH3wv9) 🦖[YoMo](https://github.com/yomorun/yomo/) 5 | 6 | * 📢 **load-balancers** [Merged了使用POSIX timestamp的PR,这才对嘛](https://github.com/quicwg/load-balancers/pull/56/files) 7 | * 📢 **load-balancers** [draft-ietf-quic-load-balancers-05出来了,相比draft-04的更新参考这里](https://www.ietf.org/rfcdiff?url1=draft-ietf-quic-load-balancers-04&url2=draft-ietf-quic-load-balancers-05) 8 | * **应用** [水果公司的多通道Multipath transport使用场景](https://github.com/quicwg/wg-materials/blob/master/interim-20-10/Multipath%20transports%20at%20Apple.pdf) 9 | * **最佳实践** [IETF QUIC相比HTTP over TLS 1.3 over TCP有显著提升,YouTube缓冲时间降低9%](https://blog.chromium.org/2020/10/chrome-is-deploying-http3-and-ietf-quic.html) 10 | * **最佳实践** [Facebook在视频领域应用QUIC后请求错误率降低8%,卡顿率降低20%](https://engineering.fb.com/2020/10/21/networking-traffic/how-facebook-is-bringing-quic-to-billions/) 11 | * **最佳实践** [Fastly: QUIC and HTTP/3 2020 最新状态](https://zhuanlan.zhihu.com/p/270650394) 12 | * **最佳实践** [Cloudflare: 通往 QUIC 之路(The Road to QUIC)](https://zhuanlan.zhihu.com/p/268171460) 13 | * **知乎** 深入浅出讲解QUIC协议,包含了最近一年的更新 [QUIC 协议简介](https://zhuanlan.zhihu.com/p/276147925) 14 | * **知乎** QUIC的革新带来了后端处理服务的革新机会:[如何设计一款比JSON性能好10倍的编解码器?](https://zhuanlan.zhihu.com/p/274321939) 15 | * **开源** [QUIC 开源实现列表(持续更新)](https://zhuanlan.zhihu.com/p/270628018) 16 | * **开源** [lsquic 2.24.1 发布,@sumams为其增加了新功能,也包含了一些bug修复 🔧.](https://github.com/litespeedtech/lsquic) 17 | * **工具** [Wireshark 3.4.0发布,支持IETF QUIC](https://www.wireshark.org/docs/relnotes/wireshark-3.4.0.html) 18 | -------------------------------------------------------------------------------- /quic-weekly-2020-11-04.md: -------------------------------------------------------------------------------- 1 | A collection of various awesome lists for videos, pentesters, libraries and frameworks. 2 | 3 | > **QUIC** is the Quick UDP Internet Connections protocol, developed by Google and currently in IETF workgroups for further development. It is being considered for replacing TCP as a transport protocol for HTTP/3. We are building an Open source project for IoT & Edge Computing atop QUIC called 🦖[YoMo](https://github.com/yomorun/yomo/) 4 | 5 | Online Community: 🍖[discord/quic](https://discord.gg/CTH3wv9) 6 | Maintainer: 🦖[YoMo](https://github.com/yomorun/yomo/) 7 | 8 | QUIC Weekly - 20201104 9 | --- 10 | 11 | * 📢 **load-balancers** has [Merged PR of Use POSIX timestamp](https://github.com/quicwg/load-balancers/pull/56/files) 12 | * 📢 **load-balancers** [draft-ietf-quic-load-balancers-05 comes out, compare with draft-04](https://www.ietf.org/rfcdiff?url1=draft-ietf-quic-load-balancers-04&url2=draft-ietf-quic-load-balancers-05) 13 | * **Adoption** [Apple's Multipath transport usage scenario](https://github.com/quicwg/wg-materials/blob/master/interim-20-10/Multipath%20transports%20at%20Apple.pdf) 14 | * **BestPractice** [IETF QUIC significantly outperforms HTTP over TLS 1.3 over TCP. YouTube rebuffer time down 9%, client throughput up 3% on desktop 7% on mobile](https://blog.chromium.org/2020/10/chrome-is-deploying-http3-and-ietf-quic.html) 15 | * **BestPractice** [Error on video requests down 8%. Rate of video stalls down 20%.](https://engineering.fb.com/2020/10/21/networking-traffic/how-facebook-is-bringing-quic-to-billions/) 16 | * **OpenSource** [Release 2.24.1 of #lsquic is out. It features an API change (by a new contributor--@sumams🙏) and a few bug fixes🔧.](https://github.com/litespeedtech/lsquic) 17 | * **Tools** [Wireshark 3.4.0 Release with QUIC support](https://www.wireshark.org/docs/relnotes/wireshark-3.4.0.html) 18 | -------------------------------------------------------------------------------- /quic-weekly-2020-11-11-CN.md: -------------------------------------------------------------------------------- 1 | 关于QUIC协议的论文、IETF进展、博客、视频等等 2 | 3 | > QUIC 的全称是 Quick UDP Internet Connections protocol, 由 Google 设计提出,目前由 IETF 工作组推动进展。其设计的目标是替代 TCP 成为 HTTP/3 的数据传输层协议。熹乐科技在物联网(IoT)和边缘计算(Edge Computing)场景也一直在打造底层基于 QUIC 通讯协议的低时延边缘计算框架 [YoMo](https://github.com/yomorun/yomo/),长时间关注 QUIC 协议的发展,遂整理该文集并配以适当的中文翻译,方便更多关注 QUIC 协议的人学习。 4 | 5 | 在线社区:🍖[discord/quic](https://discord.gg/CTH3wv9) 6 | 7 | 维护者:🦖[YoMo](https://github.com/yomorun/yomo/) 8 | 9 | QUIC Weekly - 20201111期 10 | --- 11 | 12 | 本周热点就一条,关于多路复用技术的WG值得关注: 13 | 14 | * 📢 **MASQUE Working Group** [Multiplexed Application Substrate over QUIC Encryption (masque)](https://datatracker.ietf.org/wg/masque/about/) 15 | 16 | -------------------------------------------------------------------------------- /quic-weekly-2020-11-11.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | A collection of various awesome lists for videos, pentesters, libraries and frameworks. 4 | 5 | > **QUIC** is the Quick UDP Internet Connections protocol, developed by Google and currently in IETF workgroups for further development. It is being considered for replacing TCP as a transport protocol for HTTP/3. We are building an Open source project for IoT & Edge Computing atop QUIC called 🦖[YoMo](https://github.com/yomorun/yomo/) 6 | 7 | Online Community: 🍖[discord/quic](https://discord.gg/CTH3wv9) 8 | 9 | Maintainer: 🦖[YoMo](https://github.com/yomorun/yomo/) 10 | 11 | QUIC Weekly - 20201111 12 | --- 13 | 14 | * 📢 **MASQUE Working Group** [Multiplexed Application Substrate over QUIC Encryption (masque)](https://datatracker.ietf.org/wg/masque/about/) 15 | -------------------------------------------------------------------------------- /quic-weekly-2020-11-18-CN.md: -------------------------------------------------------------------------------- 1 | 关于QUIC协议的论文、IETF进展、博客、视频等等 2 | 3 | > QUIC 的全称是 Quick UDP Internet Connections protocol, 由 Google 设计提出,目前由 IETF 工作组推动进展。其设计的目标是替代 TCP 成为 HTTP/3 的数据传输层协议。熹乐科技在物联网(IoT)和边缘计算(Edge Computing)场景也一直在打造底层基于 QUIC 通讯协议的低时延边缘计算框架 [YoMo](https://github.com/yomorun/yomo/),长时间关注 QUIC 协议的发展,遂整理该文集并配以适当的中文翻译,方便更多关注 QUIC 协议的人学习。 4 | 5 | 在线社区:🍖[discord/quic](https://discord.gg/CTH3wv9) 6 | 7 | 维护者:🦖[YoMo](https://github.com/yomorun/yomo/) 8 | 9 | QUIC Weekly - 20201118期 10 | --- 11 | 12 | * 📽 Throwback to [乘坐时光机回到2016年7月QUIC工作组的成立会议](https://www.youtube.com/watch?v=aGvFuvmEufs),这次会议是基于 Google 当时的实践经验,讨论 QUIC 是否应该成为 IETF 的标准 13 | * 📽 [Robin Marx 讲述 QUIC 和 HTTP/3 的基本功能,开放了他研究的问题及他再 qlog 和 qvis 这两个调试工具上的进展](https://www.youtube.com/watch?v=SuSpghHP0uI&feature=youtu.be)。 14 | * [lsquic 发布了 v2.24.4](https://github.com/litespeedtech/lsquic), 修复了拥塞控制和 CID 生命周期的相关问题。 15 | * [iOS 14 和 macOS Big Sur 包含了 HTTP/3 实验版本的支持](https://developer.apple.com/videos/play/wwdc2020/10111/?time=701) ,并讲述了如何开启 QUIC 的使用,比如在 macOS Big Sur 上,执行: `defaults write -g CFNetworkHTTP3Override -int 3`就可以了。 16 | * Fastly 的官方博客 [《QUIC 成熟时》](https://www.fastly.com/blog/maturing-of-quic) 17 | * 2020-11-16 发布的 [IETF-109 Slide: Tunneling Internet protocols inside QUIC](https://datatracker.ietf.org/meeting/109/materials/slides-109-intarea-tunneling-internet-protocols-inside-quic-00) Rev.00 版本的发布,意味着 QUIC 在整个现有网络生态兼容性的标准迈出的重要一步,这也是为 RFC 标准发布后整体推进而准备。 18 | -------------------------------------------------------------------------------- /quic-weekly-2020-11-18.md: -------------------------------------------------------------------------------- 1 | A collection of various awesome lists for videos, pentesters, libraries and frameworks. 2 | 3 | > **QUIC** is the Quick UDP Internet Connections protocol, developed by Google and currently in IETF workgroups for further development. It is being considered for replacing TCP as a transport protocol for HTTP/3. We are building an Open source project for IoT & Edge Computing atop QUIC called 🦖[YoMo](https://github.com/yomorun/yomo/) 4 | 5 | Online Community: 🍖[discord/quic](https://discord.gg/CTH3wv9) 6 | 7 | Maintainer: 🦖[YoMo](https://github.com/yomorun/yomo/) 8 | 9 | QUIC Weekly - 20201118 10 | --- 11 | 12 | * 📽 Throwback to [QUIC BoF session in July 2016](https://www.youtube.com/watch?v=aGvFuvmEufs). A Working Group forming meeting to decide if QUIC should be adopted for standardisation into the IETF, based on the exissting deployment experience of Google. 13 | * 📽 Robin Marx [gave a keynote](https://www.youtube.com/watch?v=SuSpghHP0uI&feature=youtu.be) at IEEE LATINCOM about his experiences doing a PhD on the QUIC and HTTP3 protocols. He talked about their basic features, open research questions and his process in contributing the qlog and qvis debugging tools. 14 | * [lsquic release 2.24.4](https://github.com/litespeedtech/lsquic), contains fixes to congestion controller and to CID lifecycle. 15 | * [iOS 14 and macOS Big Sur include an experimental preview of HTTP/3 support](https://developer.apple.com/videos/play/wwdc2020/10111/?time=701) for your apps that use URLSession, which you can enable in developer settings. To enable HTTP/3 macOS Big Sur: `defaults write -g CFNetworkHTTP3Override -int 3`. 16 | * [Fastly: The Maturing of QUIC](https://www.fastly.com/blog/maturing-of-quic) 17 | * 2020-11-16 [IETF-109 Slide: Tunneling Internet protocols inside QUIC](https://datatracker.ietf.org/meeting/109/materials/slides-109-intarea-tunneling-internet-protocols-inside-quic-00) Rev.00 18 | -------------------------------------------------------------------------------- /quic-weekly-2020-11-25-CN.md: -------------------------------------------------------------------------------- 1 | 关于QUIC协议的论文、IETF进展、博客、视频等等 2 | 3 | > QUIC 的全称是 Quick UDP Internet Connections protocol, 由 Google 设计提出,目前由 IETF 工作组推动进展。其设计的目标是替代 TCP 成为 HTTP/3 的数据传输层协议。熹乐科技在物联网(IoT)和边缘计算(Edge Computing)场景也一直在打造底层基于 QUIC 通讯协议的低时延边缘计算框架 [YoMo](https://github.com/yomorun/yomo/),长时间关注 QUIC 协议的发展,遂整理该文集并配以适当的中文翻译,方便更多关注 QUIC 协议的人学习。 4 | 5 | 在线社区:🍖[discord/quic](https://discord.gg/CTH3wv9) 6 | 7 | 维护者:🦖[YoMo](https://github.com/yomorun/yomo/) 8 | 9 | QUIC Weekly - 20201125期 10 | --- 11 | 12 | * Wikipedia 上更新了关于 HTTP/3 的章节:[HTTP/3 - Wikipedia](https://en.wikipedia.org/wiki/HTTP/3) 13 | * [IETF-QUIC 的标准依赖树](https://datatracker.ietf.org/wg/quic/deps/svg/) 14 | * Daniel Stenberg 的新 Keynote [HTTP/3 是下一代 HTTP](https://www2.slideshare.net/bagder/http3-is-next-generation-http?qid=5d7f42ff-797b-4e2f-b4b6-ba223a6afb5a&v=&b=&from_search=1) 15 | * QUIC 在 5G 网络中的实验:[QUIC Throughput and Fairness over Dual Connectivity](https://www.ida.liu.se/~nikca89/papers/mascots20a.slides.pdf) 16 | * [Google's cloud gaming platform Stadia is using QUIC](https://www.reddit.com/r/Stadia/comments/dxam9f/protocol_used_to_stream_games_on_stadia_qos/) 17 | * [跟坚哥学QUIC系列:4 - 连接迁移(Connection Migration)](https://zhuanlan.zhihu.com/p/311221111) 18 | * [跟坚哥学QUIC系列:3 - 加密和传输握手](https://zhuanlan.zhihu.com/p/301505712) 19 | * [跟坚哥学QUIC系列:2 - 地址验证(Address Validation)](https://zhuanlan.zhihu.com/p/290694322) 20 | * [跟坚哥学QUIC系列:1 - 版本协商(Version Negotiation)](https://zhuanlan.zhihu.com/p/286328927) 21 | * 📈 [Builtwith 的 QUIC 应用状况监测](https://trends.builtwith.com/Server/QUIC) 22 | -------------------------------------------------------------------------------- /quic-weekly-2020-11-25.md: -------------------------------------------------------------------------------- 1 | A collection of various awesome lists for videos, pentesters, libraries and frameworks. 2 | 3 | > **QUIC** is the Quick UDP Internet Connections protocol, developed by Google and currently in IETF workgroups for further development. It is being considered for replacing TCP as a transport protocol for HTTP/3. We are building an Open source project for IoT & Edge Computing atop QUIC called 🦖[YoMo](https://github.com/yomorun/yomo/) 4 | 5 | Online Community: 🍖[discord/quic](https://discord.gg/CTH3wv9) 6 | 7 | Maintainer: 🦖[YoMo](https://github.com/yomorun/yomo/) 8 | 9 | QUIC Weekly - 20201125 10 | --- 11 | 12 | * [HTTP/3 - Wikipedia](https://en.wikipedia.org/wiki/HTTP/3) 13 | * [QUIC dependencies graph](https://datatracker.ietf.org/wg/quic/deps/svg/) 14 | * Daniel Stenberg's new keynote [HTTP/3 is next generation HTTP](https://www2.slideshare.net/bagder/http3-is-next-generation-http?qid=5d7f42ff-797b-4e2f-b4b6-ba223a6afb5a&v=&b=&from_search=1) 15 | * Accelerating QUIC transition to 5G: [QUIC Throughput and Fairness over Dual Connectivity](https://www.ida.liu.se/~nikca89/papers/mascots20a.slides.pdf) 16 | * [Google's cloud gaming platform Stadia is using QUIC](https://www.reddit.com/r/Stadia/comments/dxam9f/protocol_used_to_stream_games_on_stadia_qos/) 17 | * 🇨🇳 _Chinese only_ [跟坚哥学QUIC系列:加密和传输握手](https://zhuanlan.zhihu.com/p/301505712) 18 | * 🇨🇳 _Chinese only_ [跟坚哥学QUIC系列:连接迁移(Connection Migration)](https://www.zhihu.com/people/xiaojian-70-36) 19 | * 📈 [QUIC Usage Statics](https://trends.builtwith.com/Server/QUIC) 20 | -------------------------------------------------------------------------------- /quic-weekly-2020-12-02-CN.md: -------------------------------------------------------------------------------- 1 | 关于QUIC协议的论文、IETF进展、博客、视频等等 2 | 3 | > QUIC 的全称是 Quick UDP Internet Connections protocol, 由 Google 设计提出,目前由 IETF 工作组推动进展。其设计的目标是替代 TCP 成为 HTTP/3 的数据传输层协议。熹乐科技在物联网(IoT)和边缘计算(Edge Computing)场景也一直在打造底层基于 QUIC 通讯协议的低时延边缘计算框架 [YoMo](https://github.com/yomorun/yomo/),长时间关注 QUIC 协议的发展,遂整理该文集并配以适当的中文翻译,方便更多关注 QUIC 协议的人学习。 4 | 5 | 在线社区:🍖[discord/quic](https://discord.gg/CTH3wv9) 6 | 7 | 维护者:🦖[YoMo](https://github.com/yomorun/yomo/) 8 | 9 | ## QUIC Weekly - 20201202期 10 | 11 | * 📽 Robin Marx 的 [QUIC和HTTP/3的队头阻塞:细节](https://calendar.perfplanet.com/2020/head-of-line-blocking-in-quic-and-http-3-the-details/) [中文版Chinese Version](https://github.com/rmarx/holblocking-blogpost/blob/master/README_CN.md) 12 | * 📽 Hussein Nasser 的 [QUIC之路 - HTTP/1.1、HTTP/2、HTTP Pipelining、CRIME、HTTP/2队头阻塞、HPACK都错在了哪](https://www.youtube.com/watch?v=jp8lvtZa1a8) 13 | * [Netty的实验版开始支持QUIC](https://github.com/netty/netty-incubator-codec-quic) makes use of [quiche](https://github.com/cloudflare/quiche) 14 | * [GnuTLS 3.7.0 开始支持 QUIC 支持](https://blogs.gnome.org/dueno/whats-new-in-gnutls-3-7-0/) 15 | -------------------------------------------------------------------------------- /quic-weekly-2020-12-02.md: -------------------------------------------------------------------------------- 1 | A collection of various awesome lists for videos, pentesters, libraries and frameworks. 2 | 3 | > **QUIC** is the Quick UDP Internet Connections protocol, developed by Google and currently in IETF workgroups for further development. It is being considered for replacing TCP as a transport protocol for HTTP/3. We are building an Open source project for IoT & Edge Computing atop QUIC called 🦖[YoMo](https://github.com/yomorun/yomo/) 4 | 5 | Online Community: 🍖[discord/quic](https://discord.gg/CTH3wv9) 6 | 7 | Maintainer: 🦖[YoMo](https://github.com/yomorun/yomo/) 8 | 9 | ## QUIC Weekly - 20201202 10 | 11 | * 📽 Robin Marx [Head-of-Line Blocking in QUIC and HTTP/3: The Details](https://calendar.perfplanet.com/2020/head-of-line-blocking-in-quic-and-http-3-the-details/) 12 | * 📽 Hussein Nasser [The Road to QUIC - what’s wrong w/ HTTP/1.1, HTTP/2, HTTP Pipelining, CRIME, HTTP/2 HOL, HPACK](https://www.youtube.com/watch?v=jp8lvtZa1a8) 13 | * Experimental QUIC codec for [netty](https://github.com/netty/netty-incubator-codec-quic) makes use of [quiche](https://github.com/cloudflare/quiche) 14 | * [GnuTLS 3.7.0 add QUIC support](https://blogs.gnome.org/dueno/whats-new-in-gnutls-3-7-0/) 15 | -------------------------------------------------------------------------------- /quic-weekly-2020-12-09-CN.md: -------------------------------------------------------------------------------- 1 | 关于QUIC协议的论文、IETF进展、博客、视频等等 2 | 3 | > QUIC 的全称是 Quick UDP Internet Connections protocol, 由 Google 设计提出,目前由 IETF 工作组推动进展。其设计的目标是替代 TCP 成为 HTTP/3 的数据传输层协议。熹乐科技在物联网(IoT)和边缘计算(Edge Computing)场景也一直在打造底层基于 QUIC 通讯协议的低时延边缘计算框架 [YoMo](https://github.com/yomorun/yomo/),长时间关注 QUIC 协议的发展,遂整理该文集并配以适当的中文翻译,方便更多关注 QUIC 协议的人学习。 4 | 5 | 在线社区:🍖[discord/quic](https://discord.gg/CTH3wv9) 6 | 7 | 维护者:🦖[YoMo](https://github.com/yomorun/yomo/) 8 | 9 | ## QUIC Weekly - 20201209期 10 | 11 | * Wireshark v3.4.1 发布,[增加了很多与 QUIC 相关的更新](https://www.wireshark.org/docs/relnotes/wireshark-3.4.1.html) 12 | * 📢 [draft-ietf-quic-manageability](https://quicwg.org/ops-drafts/draft-ietf-quic-manageability.html) 讨论了 QUIC 传输协议的可管理性,重点讨论影响 QUIC 流量的网络操作的注意事项,比如,要实现 QUIC 的负载均衡,建议参考该文 13 | * 📢 [Applicability of the QUIC Transport Protocol](https://quicwg.org/ops-drafts/draft-ietf-quic-applicability.html) 讨论了QUIC传输协议的适用性,重点讨论了影响通过QUIC开发和部署应用协议的注意事项,比如,实现0-RTT的过程中要注意的安全问题 14 | * [w3c WebTransport](https://w3c.github.io/webtransport/) 在WebIDL中定义了一组ECMAScript API,允许在浏览器和服务器之间发送和接收数据,在底层实现可插拔协议,在上面实现通用API。本规范使用可插拔的协议,QUIC-TRANSPORT 就是这样一个协议,向服务器发送数据和从服务器接收数据。它可以像WebSockets一样使用,但支持多流、单向流、无序传输、可靠以及不可靠传输。 15 | * 📽 Google 的 David Schinaz 的视频 [QUIC 101](https://www.youtube.com/watch?v=dQ5AND4DPyU) 16 | * Netty [发布了支持 QUIC 的 0.0.1.Final](https://netty.io/news/2020/12/09/quic-0-0-1-Final.html) 该 Codec 实现了 IETF QUIC draft-32 版本,基于 qiuche 项目构建 17 | * Cloudflare 的博客 [为 QUIC 加速 UDP 包传输](https://blog.cloudflare.com/accelerating-udp-packet-transmission-for-quic/) 18 | * [PDF: 软件模拟器 QUIC 协议的性能分析](https://www.researchgate.net/publication/343651688_Performance_analysis_of_Google%27s_Quick_UDP_Internet_Connection_Protocol_under_Software_Simulator) 19 | * 📢 [draft-schinazi-masque-h3-datagram-01](https://tools.ietf.org/html/draft-schinazi-masque-h3-datagram-01) QUIC DATAGRAM 扩展为在 QUIC 上运行的应用协议提供了一种发送不可靠数据的机制,同时利用了QUIC的安全和拥塞控制特性。本文档定义了当在 QUIC 上运行的应用协议是 HTTP/3 时,如何通过在 frame payload 的开头添加一个标识符来使用 QUIC DATAGRAM frame。这允许HTTP消息使用不可靠的DATAGRAM帧来传递相关信息,确保这些帧与HTTP消息正确关联。 20 | -------------------------------------------------------------------------------- /quic-weekly-2020-12-09.md: -------------------------------------------------------------------------------- 1 | A collection of various awesome lists for videos, pentesters, libraries and frameworks. 2 | 3 | > **QUIC** is the Quick UDP Internet Connections protocol, developed by Google and currently in IETF workgroups for further development. It is being considered for replacing TCP as a transport protocol for HTTP/3. We are building an Open source project for IoT & Edge Computing atop QUIC called 🦖[YoMo](https://github.com/yomorun/yomo/) 4 | 5 | Online Community: 🍖[discord/quic](https://discord.gg/CTH3wv9) 6 | 7 | Maintainer: 🦖[YoMo](https://github.com/yomorun/yomo/) 8 | 9 | ## QUIC Weekly - 20201209 10 | 11 | * Wireshark v3.4.1 [release with lots of updates to QUIC](https://www.wireshark.org/docs/relnotes/wireshark-3.4.1.html) 12 | * 📢 [draft-ietf-quic-manageability](https://quicwg.org/ops-drafts/draft-ietf-quic-manageability.html) discusses manageability of the QUIC transport protocol, focusing on caveats impacting network operations involving QUIC traffic 13 | * 📢 [Applicability of the QUIC Transport Protocol](https://quicwg.org/ops-drafts/draft-ietf-quic-applicability.html) discusses the applicability of the QUIC transport protocol, focusing on caveats impacting application protocol development and deployment over QUIC 14 | * [w3c WebTransport](https://w3c.github.io/webtransport/) defines a set of ECMAScript APIs in WebIDL to allow data to be sent and received between a browser and server, implementing pluggable protocols underneath with common APIs on top. This specification uses pluggable protocols, with QUIC [QUIC-TRANSPORT] as one such protocol, to send data to and receive data from servers. It can be used like WebSockets but with support for multiple streams, unidirectional streams, out-of-order delivery, and reliable as well as unreliable transport. 15 | * 📽 David Schinaz from Google [QUIC 101](https://www.youtube.com/watch?v=dQ5AND4DPyU) 16 | * [Netty release 0.0.1.Final](https://netty.io/news/2020/12/09/quic-0-0-1-Final.html) This codec provides a QUIC implementation of draft 32 by wrapping quiche and expose QUIC via the Channel API. 17 | * Cloudflare blog [Accelerating UDP packet transmission for QUIC](https://blog.cloudflare.com/accelerating-udp-packet-transmission-for-quic/) 18 | * [PDF: Performance analysis of Google’s Quick UDP Internet Connection Protocol under Software Simulator](https://www.researchgate.net/publication/343651688_Performance_analysis_of_Google%27s_Quick_UDP_Internet_Connection_Protocol_under_Software_Simulator) 19 | * 📢 [draft-schinazi-masque-h3-datagram-01](https://tools.ietf.org/html/draft-schinazi-masque-h3-datagram-01) QUIC DATAGRAM extension provides application protocols running over QUIC with a mechanism to send unreliable data while leveraging the security and congestion-control properties of QUIC. However,QUIC DATAGRAM frames do not provide a means to demultiplex application contexts. This document defines how to use QUIC DATAGRAM frames when the application protocol running over QUIC is HTTP/3 by adding an identifier at the start of the frame payload. This allows HTTP messages to convey related information using unreliable DATAGRAM frames, ensuring those frames are properly associated with an HTTP message. 20 | -------------------------------------------------------------------------------- /quic-weekly-2021-01-06-CN.md: -------------------------------------------------------------------------------- 1 | 关于QUIC协议的论文、IETF进展、博客、视频等等 2 | 3 | > QUIC 的全称是 Quick UDP Internet Connections protocol, 由 Google 设计提出,目前由 IETF 工作组推动进展。其设计的目标是替代 TCP 成为 HTTP/3 的数据传输层协议。熹乐科技在物联网(IoT)和边缘计算(Edge Computing)场景也一直在打造底层基于 QUIC 通讯协议的低时延边缘计算框架 [YoMo](https://github.com/yomorun/yomo/),长时间关注 QUIC 协议的发展,遂整理该文集并配以适当的中文翻译,方便更多关注 QUIC 协议的人学习。 4 | 5 | 在线社区:🍖[discord/quic](https://discord.gg/CTH3wv9) 6 | 7 | 维护者:🦖[YoMo](https://github.com/yomorun/yomo/) 8 | 9 | ## QUIC Weekly - 20210106期 10 | 11 | * 微软的QUIC协议实现[MSQUIC v1.0正式发布](https://github.com/microsoft/msquic) 12 | * Web的未来传输通道:[WebTransport Explainer](https://github.com/w3c/webtransport/blob/master/explainer.md) 13 | * [WebTransport](https://w3c.github.io/webtransport/) 的SPEC更新,支持可插拔的协议设计, 开始支持QUIC-TRANSPORT。就像WebSocket一样,但是支持了多通道、 无序传输等特性。 14 | * 史上第一个DNS over QUIC resolver [launched by AdGuard](https://itsecuritywire.com/quick-bytes/worlds-first-dns-over-quic-resolver-launched-by-adguard/) 15 | * [DNS transport: The race is on!](https://centr.org/news/blog/ietf109-dns-transport.html) 16 | * IEEE:[通过基于QUIC的代理功能实现高效的卫星-地面混合传输服务](https://ieeexplore.ieee.org/document/9297334/keywords#keywords) 17 | * [DPIFuzz: 一种用于检测QUIC的DPI模糊策略的差分模糊框架](https://dl.acm.org/doi/pdf/10.1145/3427228.3427662) 18 | * [插件化 QUIC](https://cdn.uclouvain.be/groups/cms-editors-ingi/articles/Pluginzing%20QUIC.pdf) 19 | * [优化协议栈的性能透视: TCP+TLS+HTTP/2 vs. QUIC](https://irtf.org/anrw/2019/anrw2019-final25-acmpaginated.pdf) 20 | * 2018: [WebTransport + WebCodecs at W3C Games Workshop](https://www.w3.org/2018/12/games-workshop/slides/21-webtransport-webcodecs.pdf) 21 | * [qlog 0.4.0 released](crates.io/crates/qlog), 包括对记录原始字节时的流式序列化的修复,以及对DATAGRAM帧记录的改进。 22 | -------------------------------------------------------------------------------- /quic-weekly-2021-01-06.md: -------------------------------------------------------------------------------- 1 | A collection of various awesome lists for videos, pentesters, libraries and frameworks. 2 | 3 | > **QUIC** is the Quick UDP Internet Connections protocol, developed by Google and currently in IETF workgroups for further development. It is being considered for replacing TCP as a transport protocol for HTTP/3. We are building an Open source project for IoT & Edge Computing atop QUIC called 🦖[YoMo](https://github.com/yomorun/yomo/) 4 | 5 | Online Community: 🍖[discord/quic](https://discord.gg/CTH3wv9) 6 | 7 | Maintainer: 🦖[YoMo](https://github.com/yomorun/yomo/) 8 | 9 | ## QUIC Weekly - 20210106 10 | 11 | * Version 1.0 of the Microsoft implementation of the QUIC protocol [MSQUIC has been released](https://github.com/microsoft/msquic) 12 | * [WebTransport](https://w3c.github.io/webtransport/) This specification uses pluggable protocols, with QUIC [QUIC-TRANSPORT] as one such protocol, to send data to and receive data from servers. It can be used like WebSockets but with support for multiple streams, unidirectional streams, out-of-order delivery, and reliable as well as unreliable transport. 13 | * [WebTransport Explainer](https://github.com/w3c/webtransport/blob/master/explainer.md) 14 | * World’s first DNS over QUIC resolver [launched by AdGuard](https://itsecuritywire.com/quick-bytes/worlds-first-dns-over-quic-resolver-launched-by-adguard/) 15 | * [DNS transport: The race is on!](https://centr.org/news/blog/ietf109-dns-transport.html) 16 | * IEEE Enabling an efficient satellite-terrestrial hybrid transport service through a [QUIC-based proxy function](https://ieeexplore.ieee.org/document/9297334/keywords#keywords) 17 | * [DPIFuzz: A Differential Fuzzing Framework to Detect DPI Elusion Strategies for QUIC](https://dl.acm.org/doi/pdf/10.1145/3427228.3427662) 18 | * [Pluginizing QUIC](https://cdn.uclouvain.be/groups/cms-editors-ingi/articles/Pluginzing%20QUIC.pdf) 19 | * [A Performance Perspective on Web Optimized Protocol Stacks: TCP+TLS+HTTP/2 vs. QUIC](https://irtf.org/anrw/2019/anrw2019-final25-acmpaginated.pdf) 20 | * 2018: [WebTransport + WebCodecs at W3C Games Workshop](https://www.w3.org/2018/12/games-workshop/slides/21-webtransport-webcodecs.pdf) 21 | * [qlog 0.4.0 released](crates.io/crates/qlog), this one includes a fix to streaming serialization when logging raw bytes and improved logging of DATAGRAM frames. 22 | -------------------------------------------------------------------------------- /quic-weekly-2021-04-14-CN.md: -------------------------------------------------------------------------------- 1 | 关于QUIC协议的论文、IETF进展、博客、视频等等 2 | 3 | > QUIC 的全称是 Quick UDP Internet Connections protocol, 由 Google 设计提出,目前由 IETF 工作组推动进展。其设计的目标是替代 TCP 成为 HTTP/3 的数据传输层协议。熹乐科技在物联网(IoT)和边缘计算(Edge Computing)场景也一直在打造底层基于 QUIC 通讯协议的低时延边缘计算框架 [YoMo](https://github.com/yomorun/yomo/),长时间关注 QUIC 协议的发展,遂整理该文集并配以适当的中文翻译,方便更多关注 QUIC 协议的人学习。 4 | 5 | 在线社区:🍖[discord/quic](https://discord.gg/CTH3wv9) 6 | 7 | 维护者:🦖[YoMo](https://github.com/yomorun/yomo/) 8 | 9 | ## QUIC Weekly - 20210414期 10 | 11 | * curl之父[@Daniel Stenberg](https://twitter.com/bagder)的新博客《WHERE IS HTTP/3 RIGHT NOW?》:SPEC已经全部完成了,正在排队等待最终的审核,就能拿到RFC版号(比如RFC2616,这个2616就是HTTP/1.1的第一版被assign的RFC number),然后就能发布了。这也就意味着大家可以拿着现在的SPEC(按照Draft-29版本提交的)来写自己的QUIC实现了 12 | * [netray.io](https://quic.netray.io/stats.html) 每周扫描一次IPv4下的QUIC落地速率,他们最近的一次扫描显示已经有210万主机在应用HTTP/3: 13 | ![](https://daniel.haxx.se/blog/wp-content/uploads/2021/04/ietf-quic-support-in-ipv.png) 14 | * 浏览器方面,Chrome和Edge是默认开启QUIC支持的,Firefox也马上要加入这个行列,其他的都需要手工开启(如何在iOS上开启QUIC可参考之前的QUIC-Weekly文章) 15 | ![](https://daniel.haxx.se/blog/wp-content/uploads/2021/04/Screenshot_2021-04-04-Can-I-use-Support-tables-for-HTML5-CSS3-etc.png) 16 | * [@Robin](http://twitter.com/programart) Robin Marx整理的HTTP/3与HTTP/2、HTTP/1.1协议栈的详细对比图片,并且也开源了源文件: [https://github.com/rmarx/h3-protocol-stack](https://github.com/rmarx/h3-protocol-stack) 17 | ![](https://github.com/rmarx/h3-protocol-stack/blob/main/png/protocol-stack-h2-h3-extended.png?raw=true) 18 | * [微软的QUIC协议开源实现](https://github.com/microsoft/msquic) 将HTTP/3的基础能力融合进Windows Server 2022,被用于[SMB over QUIC](https://techcommunity.microsoft.com/t5/itops-talk-blog/smb-over-quic-files-without-the-vpn/ba-p/1183449)功能。该功能是一个相比WebDAV机制更安全的实现,无须再为VPN方案付出额外的费用和复杂的应用机制。也为SMB服务替换掉了TCP/IP和RDMA的传输机制。 -------------------------------------------------------------------------------- /quic-weekly-2021-04-14.md: -------------------------------------------------------------------------------- 1 | A collection of various awesome lists for videos, pentesters, libraries and frameworks. 2 | 3 | > **QUIC** is the Quick UDP Internet Connections protocol, developed by Google and currently in IETF workgroups for further development. It is being considered for replacing TCP as a transport protocol for HTTP/3. We are building an Open source project for IoT & Edge Computing atop QUIC called 🦖[YoMo](https://github.com/yomorun/yomo/) 4 | 5 | Online Community: 🍖[discord/quic](https://discord.gg/CTH3wv9) 6 | 7 | Maintainer: 🦖[YoMo](https://github.com/yomorun/yomo/) 8 | 9 | ## QUIC Weekly - 20210414 10 | 11 | * [@Daniel Stenberg](https://twitter.com/bagder) 's blog: WHERE IS HTTP/3 RIGHT NOW?, said the specifications are all done. They’re now waiting in queues to get their final edits and approvals before they will get assigned RFC numbers and get published as such – they will not change any further. 12 | * netray.io scans the IPv4 address space weekly and checks how many hosts that speak QUIC. Their latest scan found 2.1 million such hosts. 13 | ![](https://daniel.haxx.se/blog/wp-content/uploads/2021/04/ietf-quic-support-in-ipv.png) 14 | * All the major browsers have HTTP/3 implementations and most of them allow you to manually enable it if it isn’t already done so. Chrome and Edge have it enabled by default and Firefox will so very soon 15 | ![](https://daniel.haxx.se/blog/wp-content/uploads/2021/04/Screenshot_2021-04-04-Can-I-use-Support-tables-for-HTML5-CSS3-etc.png) 16 | * [@Robin](http://twitter.com/programart) Draw digram and open source the source file: [https://github.com/rmarx/h3-protocol-stack](https://github.com/rmarx/h3-protocol-stack) 17 | ![](https://github.com/rmarx/h3-protocol-stack/blob/main/png/protocol-stack-h2-h3-extended.png?raw=true) 18 | * Microsoft's [open-source implementation of the QUIC protocol](https://github.com/microsoft/msquic) that will form the basis of HTTP/3 will be in Windows Server 2022. It's being used for [SMB over QUIC](https://techcommunity.microsoft.com/t5/itops-talk-blog/smb-over-quic-files-without-the-vpn/ba-p/1183449), which is a more secure replacement for WebDAV to deliver SMB access **without the expense and complexity of a VPN**. This uses QUIC as the transport for SMB **instead of TCP/IP** and RDMA, with a tunnel that secures SMB **even if encryption isn't enabled**. "SMB over QUIC will be available with Azure Automanage and Windows Server 2022," Kumar told TechRepublic. "It will also be supported as a client in Windows 10 and on third-party platforms like Android and others." -------------------------------------------------------------------------------- /yomo-quic-weekly-social-graph.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xileteam/awesome-quic/f5ef3a986795822b5b2bb2cb178914724392b5ff/yomo-quic-weekly-social-graph.jpg --------------------------------------------------------------------------------