问题标签 [quic]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1022 浏览

google-chrome - 在 Chrome 调试器“网络”选项卡中混淆 HTTP/2 协议信息

我看到其中一些显示“h2”和一些“http/2+quic/43”,但从未显示“h2+quic/43”。在这种情况下,h2 和 http/2 有什么区别?“quic/43”中的“43”是什么?协议版本或端口号?

0 投票
2 回答
227 浏览

ruby-on-rails - http 协议在 Rails 框架中的位置在哪里?

我只是想知道 HTTP框架在rails中的位置以及如何使用不同的网络层为客户端-服务器通信实现不同的协议?

有一个称为QUIC的新协议具有低延迟,如果有人想在 Rails 应用程序中实现它,有人怎么做?我几乎没有在互联网上找到任何与实施相关的资源。

0 投票
1 回答
1006 浏览

udp - 可以改进 QUIC 流以进行文件传输吗?

如果我理解,QUIC 的存在是为了在同一个 UDP 通道上多路复用多个流,包括相同的密钥交换。

QUIC 对 VoIP 等也有不可靠的传输模式。 https://datatracker.ietf.org/doc/draft-pauly-quic-datagram/

有没有人考虑过使用这种不可靠模式或另一种“不太可靠”模式的 QUIC 的“文件”传输模式?文件传输是否会从比 QUIC 流支持的更少的有序传递中受益更多?

有一个 bittorrent 变体µTP ( BEP-29 ),它的存在部分是为了减少对住宅互联网的干扰,但支持 bittorrent 通常高度无序的交付。

我想通过接受来自多个发送者的数据包大小的块,QUIC 的文件传输协议也可以类似于 bittorren,但这是另一个主题。

0 投票
1 回答
287 浏览

quic - HTTP/3 及其影响

最近 Chrome、Firefox、cURL 等宣布支持 HTTP/3(之前称为 HTTP-over-QUIC)。

您如何从以下变化的角度看待其适应影响:

  1. 应用程序(基于网络的、移动的、基于纯套接字的等)

  2. 托管基础设施(网络/应用服务器、防火墙、负载平衡器、CDN、路由器、交换机等)和 ISP 等。

  3. 安全性(新威胁、漏洞、VAPT 工具的前景等)

  4. 拥塞控制

0 投票
1 回答
19 浏览

websocket - 允许 HTTP 页面响应服务器上的新信息(元刷新、轮询等)的一般技术是什么?

我正在寻找更新客户端内容的历史到现代方法的时间表。

以订购、准备和交付比萨饼的过程为例。可以更新客户端状态的各种技术是什么?

到目前为止我有

  • 元刷新(古代)
  • Javascript 轮询
  • 网络套接字
  • 奎克
  • 快速
  • SPDY 的 HTTP/2 实现

是否存在其他技术?如果有,它们是什么?

0 投票
1 回答
820 浏览

nginx - nginx支持quic吗?

nginx 支持 quic 吗?如果是,如何启用它?我尝试了一些在网上找到的解决方案,但这对https://trac.nginx.org/nginx/ticket/1057没有帮助。

0 投票
1 回答
371 浏览

java - JMeter - 执行 QUIC 请求

在 JMeter 中有调用 TCP、HTTP2 和 UDP 请求的选项,

但是有没有办法在 JMeter中调用QUIC请求

QUIC 是一种新的传输方式,与 TCP 相比,它减少了延迟。从表面上看,QUIC 与在 UDP 上实现的 TCP+TLS+HTTP/2 非常相似。由于 TCP 是在操作系统内核和中间盒固件中实现的,因此对 TCP 进行重大更改几乎是不可能的。然而,由于 QUIC 是建立在 UDP 之上的,它没有这样的限制。

我发现kwik是 java 客户端,但用于 HTTP3(而不是用于生产)

Kwik 是 Java 中 QUIC 协议的客户端实现。

Kwik 可用于传输 HTTP3,但它不是 HTTP3 客户端。如果您正在寻找 HTTP3 客户端,请查看 Flupke。

Kwik 还不适合生产使用。

我也找到了JQUIC,但我没有在其中找到任何相关的Java 代码

0 投票
1 回答
313 浏览

http - QUIC 连接迁移实际上是如何工作的?

我知道 QUIC 对每个连接都有一个唯一的 ID,它允许参与者更改他们的 IP 地址(例如,从 WIFI 移动到移动网络时)但仍然相互发送数据包,仍然可以分配给正确的连接。

但是接收者如何知道对方的新 IP 地址来发送数据包呢?

我已经阅读了规范,但我真的不明白它是如何工作的

0 投票
0 回答
1864 浏览

google-chrome - Chrome devtools 显示 h2 而不是 quic/h3(即使页面使用的是 HTTP/3.0)

作为一名开发人员,我对 HTTP/3.0 的下一个版本感到非常兴奋。前段时间我注意到,当我打开 Google.com 时,我可以在 Devtools > Network 中看到该协议显示为 Quic。但是现在当我打开它时,我只看到 h2 。这是为什么?

我还注意到 alt-svc 标头表明该资源也可以快速使用。但它仍在通过 h2 加载。

在此处输入图像描述

我在使用 curl 时注意到同样的事情,使用的协议是 h2 而不是 h3。但谷歌多年来一直在使用 Quic。为什么会发生这种变化?

0 投票
0 回答
621 浏览

http - Nginx http3 关闭与大 html 页面的连接

我在使用 curl 测试使用 HTTP/3 的 Quiche 实现修补的 nginx 服务器时遇到问题:当我尝试为一个小 html 页面(~1kb)发送多个连续请求时,nginx 正确响应

如果我尝试对中/大 html 文件发出单个请求,nginx 会再次正确响应,但是当我尝试对中/大 html 页面(> = 30kb)发出多个连续请求时,nginx 在任意数字后停止响应请求数(通常为 2-5 个请求)。这是一个由对https://cloudflare-quic.com html 页面(我在我的服务器上下载)的 10 个请求组成的示例:

它卡在这个屏幕上,重复“Got h3 for stream 0, expects 4”。我还注意到,在较小的页面上进行测试时,最小的文件越大是在停止响应并开始打印错误“Got h3 for stream x, expecting y”之前完成的请求数,其中 y=x +4。access.log 和 error.log 也是干净的,这意味着它可能是服务器配置中缺少的一些参数之王,但我不确定。有谁知道问题可能是什么?

我的配置

nginx版本:

nginx.conf:

卷发版

编辑

我们在 Cloudflare quiche repo 上讨论了这个问题,我们发现它是已知的 curl 问题:GitHub 问题