问题标签 [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 投票
0 回答
116 浏览

netty - Netty Quic Streams 是如何使用的

我已经成功运行了 netty incubator quic 示例,现在正在尝试研究如何在实际应用程序中使用它。

https://github.com/netty/netty-incubator-codec-quic/tree/main/src/test/java/io/netty/incubator/codec/quic/example

很明显,客户端连接并返回一个我们可以记录的 QuicChannel。

但是如何使用和访问 QuicStreamChannels?

在示例中,QuicStreamChannel 用于一次往返,然后关闭流 (WRITE_FIN)。

据推测,溪流的寿命超过一次旅行,那么后来如何识别它们?

客户端 QuicStreamChannel channelRead 返回一条消息,但我无法弄清楚如何用流识别消息,或者这甚至可能没有必要。

我认为使用 Quic 需要对大脑进行一些再训练,因此任何关于如何进行的指导都是最有帮助的。

0 投票
1 回答
250 浏览

http - 浏览器如何知道网站是否支持 HTTP/3?

我有一个与浏览器如何知道站点是否支持 HTTP/2 相同的问题?. 我想知道浏览器如何知道网站支持 http3。

我正在使用 safari 并打开了 http3 支持。然后我去,https://cloudflare-quic.com协议是h3-29。我认为我的 safari 使用 h3 协议探索这个网站。它是怎么知道的?

0 投票
3 回答
505 浏览

http - 为什么使用 HTTP/2 的应用只建立一个 TCP 连接?

我了解 HTTP/2 多路复用解决了 HTTP/1.1 中的线头阻塞问题。但是,在 TCP 协议中仍然存在行头块。即使在应用层同时发送请求,消息仍然需要在 TCP 连接中一一发送。
我的问题是为什么使用 HTTP/2 的应用程序不建立多个 TCP 连接,以便 HTTP/2 复用不会在传输层(TCP 协议)受到限制?
我知道在 UDP(QUIC) 上使用 HTTP/2 可以避免这个问题。在这篇文章中,我将讨论基于 TCP 的 HTTP/2。
如果应用程序确实建立了多个 TCP 连接(如果我不知道这个实现已经存在)。请求如何在所有 TCP 连接中拆分?

0 投票
0 回答
247 浏览

http - 如何在Windows10上使用quic协议连接iis

整个过程在 https://answers.microsoft.com/zh-hans/windows/forum/windows_10-hardware/windows10/4e2a1370-30ba-4bf4-a460-98664a0172ef

TLDR:我配置了一个 iis 服务器并将 https 与默认配置绑定,但我无法使用 quic 协议连接到它。我使用的代码是https://github.com/microsoft/msquic 中提供的“示例”工具,具有客户端功能,端口 443。但是当我在目标机器上运行“示例”工具的服务器功能,并使用另一台机器上的客户端功能连接到它时,它可以工作。

问:iis服务器是否默认支持443端口的quic协议,如果不支持如何使用quic连接iis服务器?

0 投票
1 回答
60 浏览

tcp - 客户端和服务器在通信时可以使用不同的拥塞算法吗?

我正在编写一个 http3(在 quic 上运行)库,并且需要由调用者选择不同的拥塞控制算法。我做了一些研究并阅读了这个:

在连接到 Internet 的计算机操作系统的协议栈中实现的算法有多种变体和版本。

我突然注意到,除了一些抽象理论之外,我之前从未想过拥塞控制算法是如何真正工作的(在 tcp 上)。所以这里有一些我不太清楚的问题。

  1. 客户端和服务器在通信时可以使用不同的拥塞算法吗?例如客户端使用 Reno,服务器使用 CUBIC?
  2. 如果是,这是客户端和服务器使用不同算法的任何缺点吗?
  3. 如果不是,服务器和客户端如何协商拥塞控制算法?
0 投票
0 回答
171 浏览

nginx - NGINX epoll_ctl(1, 7) 失败(17:文件存在)

只有当我添加时才会发生:

日志说:

我已经编译了./configure --prefix=/usr/local/nginx --build=quiche-7eb57c4 --with-http_ssl_module --with-http_v2_module --with-http_v3_module --with-openssl=../quiche/deps/boringssl --with-quiche=../quiche --with-debug,并且这只发生在请求正文与请求一起发送时。我该如何解决这个问题?

我在 github 中使用了最新版本的 nginx,并在 github 中使用了最新版本的 quiche。

当在 nginx.conf 中添加时,这似乎消失了proxy_store on,但它开始显示错误,例如

0 投票
0 回答
30 浏览

python - 是否有 asyncio 的 `call_at` 或 `call_later` 对于 anyio 的等价物?

我正在使用 aioquic python 库实现一个简单的 QUIC 客户端,aioquic 有一个名为 get_timer 的函数,它返回我需要运行一些处理程序的时间。使用 asyncio 我可以简单地使用call_at,或者call_later但在 anyio(甚至三重奏)中,我找不到其他选择。

我目前处理这个问题的方法是简单地等到时间要求得到满足:

有没有办法在anyio中稍后调用协程?如果是这样,它会怎么做?如果没有内置方法,他们有没有实现它的库?如果没有,我自己实现它是否可行,或者我应该使用不同的方法?

谢谢您的考虑。

0 投票
0 回答
43 浏览

matlab - 应用程序窗口的 DCV NICE 强制框架更新

我在运行 Windows Server 2016 的 EC2 实例上使用 DCV NICE。我使用的是 QUIC 胖客户端。我正在运行 Matlab。Matlab 可以创建一个子进程来显示一个“图形窗口”。我希望 DCV NICE 在图形窗口中的元素发生变化时发送新帧。目前,当窗口中的元素发生变化时,DCV NICE 不会发送新帧。当新帧每秒只渲染一次时,很难旋转或平移对象。

如果我从 QUIC 胖客户端打开“流媒体模式”窗口,我可以看到帧率。当我打开 .text 文件并键入时,“Steaming Mode”窗口中列出的帧速率和网络延迟会增加。当我在 MatLab Figure 窗口中与对象交互时,帧速率不会改变。

我在注册表中设置这些值键以优化帧速率: \HKEY-USERS\S-1-5-18\Software\GSettings\com\nicesoftware\dcv\display: frame-queue-weights : (8,5,1 ) 传输中的帧:(2,12) qu-带宽:50

(来自https://www.ni-sp.com/support/nice-dcv-tips-and-tricks/#h-location-of-nice-dcv-logfiles

我认为这是帧而不是处理的问题,因为当我在窗口中旋转图形时,任务管理器中的 GPU 使用率最高可达 15%。 低帧率,低网络延迟

我尝试在 Matlab 中增加 Java 内存限制,但没有效果。

Matlab 正在使用附加到 EC2 实例的 GPU: Matlab 正在使用附加到 VM 的 GPU

我们如何帮助 DCV NICE 识别 MatLab 图形窗口中的变化?问题出在其他地方吗?我还应该调查什么?

0 投票
1 回答
104 浏览

javascript - http3 是否会在浏览器中支持来自 javascript 的 UDP

随着浏览器和服务器实现 Http3,大量 TCP 通信将转移到 UDP (QUIC)。

但是,我不清楚浏览器本身是否可以使用基于 UDP 的通信原语。意思是,就像今天可以通过 javascript 进行 Ajax 请求一样,浏览器 javascript 会支持 UDP 请求吗?或者更好的是,UDP 上的大消息可靠(当然,通过包装 QUIC 在 UDP 之上构建了必要的加密)?

这将简化对等浏览器通信并开辟许多创新应用程序。今天,这些需要采用繁琐的 STUN/TURN 和 WebRTC(其下也使用 UDP)路由。

但是直接UDP还有其他问题,尤其是安全问题。

提前致谢。

0 投票
0 回答
808 浏览

node.js - 如何使用 Express 运行 http/3?

出于实验目的,我想尝试,但 HTTP-over-QUIC 似乎在 Node.js 中不可用。QUIC本身是可用的。