4 Star 9 Fork 3

C.C. / awesome-quic

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
CC0-1.0

Awesome QUIC Logo

Awesome QUIC Awesome

关于QUIC协议的论文、IETF进展、博客、视频等等

QUIC 的全称是 Quick UDP Internet Connections protocol, 由 Google 设计提出,目前由 IETF 工作组推动进展。其设计的目标是替代 TCP 成为 HTTP/3 的数据传输层协议。熹乐科技在物联网(IoT)和边缘计算(Edge Computing)场景也一直在打造底层基于 QUIC 通讯协议的边缘计算微服务框架 YoMo,长时间关注 QUIC 协议的发展,遂整理该文集并配以适当的中文翻译,方便更多关注 QUIC 协议的人学习。


QUIC Weekly - 每周一草

在线社区:🍖discord/quic

维护者:🦖YoMo

QUIC Weekly - 20210414期

  • curl之父@Daniel Stenberg的新博客《WHERE IS HTTP/3 RIGHT NOW?》:SPEC已经全部完成了,正在排队等待最终的审核,就能拿到RFC版号(比如RFC2616,这个2616就是HTTP/1.1的第一版被assign的RFC number),然后就能发布了。这也就意味着大家可以拿着现在的SPEC(按照Draft-29版本提交的)来写自己的QUIC实现了
  • netray.io 每周扫描一次IPv4下的QUIC落地速率,他们最近的一次扫描显示已经有210万主机在应用HTTP/3:
  • 浏览器方面,Chrome和Edge是默认开启QUIC支持的,Firefox也马上要加入这个行列,其他的都需要手工开启(如何在iOS上开启QUIC可参考之前的QUIC-Weekly文章)
  • @Robin Robin Marx整理的HTTP/3与HTTP/2、HTTP/1.1协议栈的详细对比图片,并且也开源了源文件: https://github.com/rmarx/h3-protocol-stack
  • 微软的QUIC协议开源实现 将HTTP/3的基础能力融合进Windows Server 2022,被用于SMB over QUIC功能。该功能是一个相比WebDAV机制更安全的实现,无须再为VPN方案付出额外的费用和复杂的应用机制。也为SMB服务替换掉了TCP/IP和RDMA的传输机制。

QUIC Weekly - 20210106期

QUIC Weekly - 20201209期

  • Wireshark v3.4.1 发布,增加了很多与 QUIC 相关的更新
  • 📢 draft-ietf-quic-manageability 讨论了 QUIC 传输协议的可管理性,重点讨论影响 QUIC 流量的网络操作的注意事项,比如,要实现 QUIC 的负载均衡,建议参考该文
  • 📢 Applicability of the QUIC Transport Protocol 讨论了QUIC传输协议的适用性,重点讨论了影响通过QUIC开发和部署应用协议的注意事项,比如,实现0-RTT的过程中要注意的安全问题
  • w3c WebTransport 在WebIDL中定义了一组ECMAScript API,允许在浏览器和服务器之间发送和接收数据,在底层实现可插拔协议,在上面实现通用API。本规范使用可插拔的协议,QUIC-TRANSPORT 就是这样一个协议,向服务器发送数据和从服务器接收数据。它可以像WebSockets一样使用,但支持多流、单向流、无序传输、可靠以及不可靠传输。
  • 📽 Google 的 David Schinaz 的视频 QUIC 101
  • Netty 发布了支持 QUIC 的 0.0.1.Final 该 Codec 实现了 IETF QUIC draft-32 版本,基于 qiuche 项目构建
  • Cloudflare 的博客 为 QUIC 加速 UDP 包传输
  • PDF: 软件模拟器 QUIC 协议的性能分析
  • 📢 draft-schinazi-masque-h3-datagram-01 QUIC DATAGRAM 扩展为在 QUIC 上运行的应用协议提供了一种发送不可靠数据的机制,同时利用了QUIC的安全和拥塞控制特性。本文档定义了当在 QUIC 上运行的应用协议是 HTTP/3 时,如何通过在 frame payload 的开头添加一个标识符来使用 QUIC DATAGRAM frame。这允许HTTP消息使用不可靠的DATAGRAM帧来传递相关信息,确保这些帧与HTTP消息正确关联。

QUIC Weekly - 20201202期

QUIC Weekly - 20201125期

QUIC Weekly - 20201118期

QUIC Weekly - 20201111期

QUIC Weekly - 20201104期

QUIC Weekly - 20201028期

  • 📢 DNS-over-QUIC
    • 对科学那啥可是个好东西,太敏感,咱也不敢多说...
  • Paper 基于QUIC的MQTT协议的实现和分析
    • 在端到端的通讯中,确保可靠和安全通信的基础是Transport和Security协议。对于IoT应用,这些协议必须是轻量级的,毕竟IoT设备通常都是硬件能力受限。不幸的是,目前广为流行的TCP/TLS和UDP/DTLS这两种方式,在建连、时延、连接迁移等方面有很多的不足。这篇论文研究了这些缺陷的根源,展示了如何借助QUIC协议优化IoT场景从而达到更高的网络性能,以IoT领域使用范围较广的MQTT协议为例,团队实现了主要的API和功能,并比较了使用QUIC和TCP构建的MQTT协议在有线网络、无线网络和长距离实验场景(long-distance testbeds)中的差异。
    • 测试的结果标明,基于QUIC协议实现的MQTT协议降低建连开销达56%
    • 在半连接场景下,对CPU和内存的消耗分别降低了83%和50%
    • 因为避免了队头阻塞(HOL Blocking)的问题,数据分发时延降低了55%
    • 数据传输速率的抖动也因为QUIC的连接迁移特性得到明显的改善。
  • Article HTTP/3: 你需要知道的下一代互联内网协议
  • Article QUIC和物联网IoT
    • IoT设备是应用QUIC协议的一个好场景,因为这些设备通常工作在无线(蜂窝)网络下(Cellular network),且需要快速建连、0-RTT和重传。但是,这些设备CPU能力普遍较弱。QUIC的作者其实多次提到QUIC对IoT应用场景有很大的提升,可惜的是,至今还没有一套为这个场景设计的协议栈(其实有啊:基于QUIC协议的Edge Computing框架: 🦖YoMo

QUIC Weekly - 20201021期

QUIC Weekly - 20201014期

  • Adoption Chrome 正在部署 HTTP/3 和 IETF QUIC
    • 当前最新的 Google QUIC 版本(Q050)与 IETF QUIC 有很多相似之处。但是到目前为止,大多数 Chrome 用户在未启用某些命令行选项的情况下没有与 IETF QUIC 服务器通信。
    • Google 搜索延迟减少了2%以上。 YouTube 的重新缓冲时间减少了9%以上,而台式机的客户端吞吐量增加了3%以上,移动设备的客户端吞吐量增加了7%以上。我们很高兴地宣布,Chrome 即将推出对 IETF QUIC(特别是草稿版本 H3-29)的支持。
    • 目前,有25%的 Chrome 稳定用户正在使用 H3-29。我们计划在接下来的几周内增加该数字,并继续监控性能数据。
    • Chrome 将积极支持 IETF QUIC H3-29 和 Google QUIC Q050,让支持 Q050 的服务器有时间更新到 IETF QUIC。
  • Adoption Cloudflare 向用户发送电子邮件,通知从本月开始 H3 将自动启用
  • CDN 最近被误解了。跨站点的浏览器缓存并不是那么重要,重要的是在存在点(POP)进行缓存。这种 POP 与你的终端用户的距离如此之近,可带来性能提升,因为TCP的传输距离很差。QUIC 可以通过改用 UDP 来解决此问题。 HackerNews
  • TechTalk Lucas Pardue:QUIC 和 HTTP/3:开放标准和开放源代码 (2020年10月27日。)
  • OpenSource quiche 已支持 QUIC 和 HTTP/3 不可靠的数据报。在保证数据的传输不是最重要的情况下,它可以降低延迟。
  • 在 Haskell 中开发 QUIC 丢失检测和拥塞控制

IETF进展

学习资源

1.不在爱了 TCP 💔

2.浅尝 QUIC 科普贴 🎱

3.真干实践大厂贴 🏌️‍♂️

4.熬夜充电技术细节贴 🦾

5.墙裂推荐英文贴 🍿

Books

框架和开源实现

C/C++

Name Version Roles Handshake
Microsoft's MsQuic draft-27/28/29/30/31/32 client, server TLS 1.3 RFC
Facebook's mvfst draft-29 library, client, server TLS 1.3
Google's Chromium Q043, Q046, Q050, T050, T051, draft-27, draft-29 library, client, server QUIC Crypto, TLS
ats (Apache Traffic Server) draft-29 client. server TLS 1.3
LiteSpeed's lsquic Draft-32, Draft-29, Draft-28, Draft-27, Q043, Q046, and Q050. library, client, server QUIC Crypto, RFC 8446
ngtcp2 draft-29, draft-30, draft-31, and draft-32 library, client, server TLSv1.3 (RFC 8446)
Cloudflare's nginx-cloudflare draft-27, draft-28, draft-29 server TLSv1.3 (RFC8446)
picoquic draft-32/31/30/29/28/27 library and test tools, test client, test server TLS 1.3 (using picotls)
Pluginized QUIC draft-29 library, client, server TLS 1.3 (using picotls)
quant draft-33, draft-34, v1 library, client, server TLS 1.3
Fastly's quicly draft-27 client, server TLS 1.3 (final)
nginx-quic draft-27 .. draft-32 server TLSv1.3 (RFC8446)

Rust

Name Version Roles Handshake
Cloudflare's quiche draft-27, draft-28, draft-29 library, client, server TLSv1.3 (RFC8446)
Mozilla/Firefox's Neqo draft-30 library, client, server TLS 1.3
Quinn draft-28 library, client, server TLS 1.3

Go

Name Version Roles Handshake
quic-go always the current draft library, client, server TLS 1.3 RFC

Node.js

Name Version Roles Handshake
Node.js QUIC draft-25 client, server TLS 1.3

Python

Name Version Roles Handshake
aioquic draft-29 library, client, server TLS 1.3

Haskell

Name Version Roles Handshake
Haskell quic draft-29 library, client, server TLS 1.3

Java

Name Version Roles Handshake
kwik draft-29, draft-30, draft-31, draft-32 library, client TLS 1.3

Debugging

  • qvis QUIC and HTTP/3 visualization tools
  • qlog This repository contains various programming language integrations for the qlog format.
Creative Commons Legal Code CC0 1.0 Universal CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER. Statement of Purpose The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an "owner") of an original work of authorship and/or a database (each, a "Work"). Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works ("Commons") that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others. For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights. 1. Copyright and Related Rights. A Work made available under CC0 may be protected by copyright and related or neighboring rights ("Copyright and Related Rights"). Copyright and Related Rights include, but are not limited to, the following: i. the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work; ii. moral rights retained by the original author(s) and/or performer(s); iii. publicity and privacy rights pertaining to a person's image or likeness depicted in a Work; iv. rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(a), below; v. rights protecting the extraction, dissemination, use and reuse of data in a Work; vi. database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and vii. other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof. 2. Waiver. To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer's heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer's express Statement of Purpose. 3. Public License Fallback. Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer's express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer's Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "License"). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer's express Statement of Purpose. 4. Limitations and Disclaimers. a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document. b. Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law. c. Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work. d. Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work.

简介

QUIC 作为下一代互联网通讯协议的相关资源:标准化进展、开源实现、优质博客文章等(中、英双语) 展开 收起
CC0-1.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/fanweixiao/awesome-quic.git
git@gitee.com:fanweixiao/awesome-quic.git
fanweixiao
awesome-quic
awesome-quic
main

搜索帮助