9

We have a super chatty (ajax) html 5 app (gmail-like in its construction, tons of js).

The reading of QUIC sounds interesting. https://en.wikipedia.org/wiki/QUIC

Can IIS (or any .NET hosting engine) support QUIC?

If IIS/Win can't do it, can I do it in an haproxy instance (on CentOS) in front of IIS?

1 Answers1

7

As of August 2020, the version of IIS present in Windows 10 Version 2004 (2020-04) and Windows Server 2019 (version 19041) does support QUIC, and QUIC seems to be enabled by default:

enter image description here

Some caveats from my own observations:

  • It only seems to be present in the full-fat IIS, and not IIS Express (but you wouldn't be using IIS Express in production anyway).
  • HTTP/3 (QUIC) and HTTP/2 (SPDY) only seem to be enabled in a HTTPS binding and not in a plaintext HTTP binding.
    • I might be wrong - I'm not familiar with QUIC's details.
    • Note that QUIC is actually a rather low-level protocol, and that "HTTP/3" can be thought-of as "HTTP/2-over-QUIC".
  • Other than the single checkbox to disable QUIC in the Binding settings page, I can't see any other way to configure QUIC in IIS.

Regarding the common scenario of using IIS as a front-end reverse-proxy (using IIS' URL Rewrite extension and Application Request Routing):

  • I cannot find any information regarding support for QUIC in ARR.
  • Note that the URL Rewrite Extension (which is required to use ARR) has been recently updated to version 2.1 in 2017 after being stuck at version 2.0 for almost a decade. You need to install it manually from the IIS Downloads page.
  • The ARR extension is still stuck on version 3.0 which was released in 2013.
    • This makes me think that ARR 3.0 won't support HTTP/2 (SPDY) or HTTP/3 (QUIC) - but at the same time, ARR makes use of the existing HTTP.sys stack in Windows, so it's actually possible that ARR may use HTTP/3 or HTTP/2 if available. But without an official word or tip from an insider at Microsoft it's impossible to say.

Additionally, in May 2020, Microsoft announced their implementation of QUIC was open-source on GitHub: https://github.com/microsoft/msquic - if you have any further questions you may get answers to them there rather than through MS' official support channels or their never-updated IIS blog.


I did post an Issue to the MSQuic GitHub repo seeking more information and documentation for the QUIC feature, but the issue was closed as off-topic, but they did assure me that they've forwarded the question to the internal documentation team, but doing a date-range Google search shows that no new documentation for QUIC has been published by Microsoft.

Dai
  • 2,251
  • 8
  • 27
  • 42
  • Is there any reason why I cannot see the options for QUIC in Windows Server 2019 Version 10.0.17763 – Oskar Sjöberg Feb 12 '21 at 09:21
  • @OskarSjöberg version 17663 is an old version of Windows Server (from 2018) - though it is current for LTSC/LTSB. I was using Windows Server 2019 (20H2) 19041 for my screenshot. We're up to version 1904**2** now, apparently: https://docs.microsoft.com/en-us/windows-server/get-started/windows-server-release-info – Dai Feb 12 '21 at 10:09
  • @OskarSjöberg Correction, I was using "Windows Server, version 2004" (gah, this new nomenclature is confusing) – Dai Feb 12 '21 at 10:15
  • Dai, thank you. Do you happen to know if my Windows Server will be updated by Windows Update at some point automatically or do I need to something else to get this feature? – Oskar Sjöberg Feb 12 '21 at 12:31
  • 1
    @OskarSjöberg Seeming as Windows Server is a server OS, it never receives major "feature updates" through Windows Update for what should be obvious reasons. All major updates must be done manually. – Dai Feb 12 '21 at 12:46
  • It make sense that this would be https bindings only because all major browsers only support HTTP/2 over HTTPS. https://en.wikipedia.org/wiki/HTTP/2#Encryption – Ed Greaves Jul 23 '21 at 15:59