How QUIC makes web quicker

QUIC function is running on the UDP, and it improves http transmission efficiency. One of the improvements is avoiding TCP head-of-line blocking. In TCP, packets need to arrive in the correct order. If a packet is lost on its way to the server, it needs to be retransmitted. The TCP connection needs to wait on that TCP packet before it can continue to send other packets. UDP is not dependent on the order packets are received. While it's still possible for packets to get lost during transmission, they will only impact individual resources, e.g. CSS file, and will not block the entire connection.

More and more people use mobile devices and they constantly switch between WiFi and LTE. It means that if IP changes, a new TCP connection needs to be created, which could cost up to 50ms*(handshake*3+tls*1)=200ms. QUIC has implemented its own identifier for unique connections called the Connection UUID. It's possible to switch between WiFi and LTE and still keep your connection UUID. Therefore, renegotiating the connection is no longer needed, and your previous connection is still valid.

LiteSpeed Web Server support QUIC function after version 5.2.

Server Settings:

LiteSpeed Web Server default QUIC is `on`, require setup non self-signed certificates. More detail requirments please follow QUIC Requierments If you are looking for different QUIC level settings please follow Levels Settings If you are using control panels please follow QUIC Setup Method

Client browser QUIC Supports and Settings:

For Chrome, check chrome:flags/#enable-quic set to Enabled/Disabled For Opera, check opera:flags/#enable-QUIC set to Enabled/Disabled

Verify QUIC is working

  • Install indicator to verify QUIC function, please follow Verify
  • Or you can use wireshark with filter quic to verify QUIC is working or not
    • When QUIC disabled or browser not support, you can not capture any packets
    • When QUIC is working, you will cature packates like this

Measure the latency

  • Use ping command

Load page testing steps

  • When testing page speed with QUIC Disabled (TCP). <br>

When you open our blog site, will see an ESTABLISHED connection though cmd

netstat -a -n -p tcp -o | findstr ESTABLISHED | findstr your_server_IP 

  • When testing page Load time, make sure connection status has been non-Established every time, you only need to wait around 10-15s.
  • Or just restart all browsers every time
  • When testing page speed with QUIC Enabled (UDP)
  • Make sure QUIC is working by following “Verify QUIC is working”
  • Open browser dev tool through Ctrl + Shift + i, make sure Disable cache enabled
  • Record Load time

Scenario 1: Low Latency(<1ms), QUIC reduces Load time by almost 25%.

Scenario 2: Normal high Latency(80ms) When latency is normal, QUIC reduces Load time by almost 37%.

Test Environment

  • Server under test: CentOS7 + LiteSpeed Enterprise 5.2 + LSCache + WordPress
  • Server Location: Senario1-LAN, Senario2-Cloud
  • Client Device: Win10 NB, Chrome v60.0.3112
  • Client Hardware: Intel Core i7-4500 CPU, 8 GB RAM

Along with latency higher, QUIC performs more clear. Now, why don’t you try it now? Check our blog site Loading time with dev tool, you will see QUIC more quicker by Enabling QUIC function. You can also start your experiment on your site.

We welcome your feedback on our forum

  • Admin
  • Last modified: 2017/08/14 20:02
  • by Eric Leu