IIS 可以通过 QUIC 协议为我的 .NET 应用提供服务吗?

IIS 可以通过 QUIC 协议为我的 .NET 应用提供服务吗?

我们有一个超级聊天(ajax)html 5 应用程序(其构造类似于 gmail,包含大量 js)。

QUIC 的读起来很有趣。 https://en.wikipedia.org/wiki/QUIC

IIS(或任何 .NET 托管引擎)可以支持 QUIC 吗?

如果 IIS/Win 无法做到这一点,我可以在 IIS 前面的 haproxy 实例(在 CentOS 上)中做到这一点吗?

答案1

截至 2020 年 8 月,Windows 10 版本 2004(2020-04)和 Windows Server 2019(版本 19041)中存在的 IIS 版本支持QUIC,并且QUIC好像是默认启用的:

在此处输入图片描述

根据我的观察,有以下几点需要注意:

  • 它似乎只存在于全功能 IIS 中,而不存在于 IIS Express 中(但无论如何您不会在生产中使用 IIS Express)。
  • HTTP/3(QUIC)和 HTTP/2(SPDY)似乎仅在 HTTPS 绑定中启用,而不是在纯文本 HTTP 绑定中启用。
    • 我可能错了——我不熟悉 QUIC 的细节。
    • 请注意,QUIC 实际上是一种相当低级的协议,并且“HTTP/3”可以被认为是“HTTP/2-over-QUIC”。
  • 除了单个复选框之外禁用QUIC 在绑定设置页面中,我看不到在 IIS 中配置 QUIC 的任何其他方法。

关于使用 IIS 作为前端反向代理的常见场景(使用 IIS 的 URL 重写扩展和应用程序请求路由):

  • 我找不到任何有关 ARR 中对 QUIC 的支持的信息。
  • 请注意,URL 重写扩展(使用 ARR 时需要)2017 年已更新至 2.1 版在 2.0 版本停滞了近十年之后。你需要从 IIS 下载页面手动安装
  • ARR 扩展仍然停留在 2013 年发布的 3.0 版本。
    • 这让我认为 ARR 3.0 将不支持 HTTP/2 (SPDY) 或 HTTP/3 (QUIC) - 但与此同时,ARR 使用了HTTP.sysWindows 中现有的堆栈,因此这确实是可能的ARR 可能会使用 HTTP/3 或 HTTP/2(如果可用)。但是,如果没有官方消息或微软内部人士的提示,就无法确定。

此外,2020 年 5 月,微软宣布其 QUIC 实现在 GitHub 上开源https://github.com/microsoft/msquic- 如果您有任何其他问题,您可以在那里获得答案,而不是通过 MS 的官方支持渠道或他们从未更新的 IIS 博客。


我确实在 MSQuic GitHub repo 上发布了一个问题,寻求有关 QUIC 功能的更多信息和文档,但该问题已被关闭,因为与主题无关,但他们向我保证已将问题转发给内部文档团队,但进行日期范围的谷歌搜索显示,微软尚未发布有关 QUIC 的新文档。

相关内容