How does HTTP/3 improve Quality of Experience in Video Streaming?

We have been using HTTP for over 30 years. HTTP/0.9 debuted in 1991, then HTTP/1.0 and HTTP/1.1, were continuously released in 1996 and 1997, respectively. In 2015, IETF (Internet Engineering Task Force) standardized HTTP/2 with some key features such as server push, and stream multiplexing. Though the latter versions provide better tools to enhance the Quality of Experience while surfing the Internet, all of these versions are running on TCP and suffer from head-of-line (HoL) blocking. Currently, IETF is working on the latest version a.k.a HTTP/3 built on the QUIC protocol. HTTP/3 can cope with issues of its predecessors.

What is HTTP/3?

HTTP/3 is the 3rd major version of the HTTP. Different from previous versions that run over TCP. HTTP/3 uses QUIC as its transport protocol to provide faster connection establishment and to deal with HoL blocking issue. Google developed QUIC to provide a secure and reliable transport protocol over UDP.

Key features of HTTP/3

HTTP/3 inherits most of the features of HTTP/2 including server push, stream multiplexing, stream priority and stream termination. Besides, HTTP/3 provide a new feature which is 0-RTT connection setup due to the use of QUIC. Here we’ll give you an overview of the key features.

Server push

The server push feature enables the client to receive multiple responses from the server by an HTTP GET request. It is helpful when the server knows that these responses are necessary for the client to completely process the request. This feature helps the client save multiple RTTs compared to non-pipelined HTTP/1.1. HTTP/1.1 sends a new request only if the response of the previous request has fully come to the client.

In non-pipelined HTTP/1.1, the pairs of requests and responses come one by one, which uses one RTT for each pair.
Meanwhile, HTTP/3 provides server push feature to save a lot of RTT.

Stream multiplexing

With this feature, the server can process different requests simultaneously. Each pair of HTTP requests and responses in an individual stream. A stream is an independent sequence of data delivered between the server and client. The data belonging to streams are interleaved.

The data belonging to streams are interleaved

Stream priority

There are two parameters: urgency (u) and incremental (i) to indicate the priority of a stream. The urgency (u) of a request expresses its importance and can be an integer number from 0 to 7. The lower values, the higher importance. The incremental (i) gets a Boolean value to say that if the server should process an HTTP response incrementally. When 2 requests have the same u and i, they share equally the bandwidth.

Stream termination

When the client considers a stream’s data is no longer necessary, it can send an H3_REQUEST_CANCELLED error code (in H3) to cancel that stream while keeping the connection with the server. This feature is to avoid wasting the throughput for downloading unused data. Meanwhile, the only way for HTTP/1.1 client to cancel a request is to close the TCP connection. This will causes other delays due to the three-way handshake and slow start.

How HTTP/3 improves QoE in video streaming?

Many existing work have validate that HTTP/3 can enhance the QoE in HAS. The problem is HOW? How HAS-related techniques leverage HTTP/3 features? We have listed some work in the literature working on this topics. Additionally, we also draw some interesting topics about HTTP/3 in HAS.

Let’s take a look at the following slides for our work:

Nguyen, Minh, Christian Timmerer, Stefan Pham, Daniel Silhavy, and Ali C. Begen. "Take the red pill for H3 and see how deep the rabbit hole goes." In Proceedings of the 1st Mile-High Video Conference, pp. 7-12. 2022.

46 thoughts on “How does HTTP/3 improve Quality of Experience in Video Streaming?

  1. Positive site, where did you come up with the information on this posting? I have read a few of the articles on your website now, and I really like your style. write my assignment Thanks a million and please keep up the effective work.

  2. Thanks for sharing this best stuff with us! Keep sharing! I am new in blog writing. All types of blogs and posts are not helpful for the readers. Here the author is giving good thoughts and suggestions to each and do my assignment for me every reader through this article. literature-essay Quality of the content is the main element of the blog and this is the way of writing and presenting.

  3. Однажды мне понадобилось 25 000 рублей на покупку подарка. По совету друзей я посетил На сайте представлена подборка надежных МФО и статьи о том, как безопасно взять займ на карту . Оказалось, можно взять даже займ без процентов!

  4. Недавно мне понадобилось 4 000 рублей на неотложные нужды. По совету друга, я посетил Там я нашел много полезных статей о том, как правильно взять займ на карту онлайн и список проверенных МФО. И узнал, что некоторые из них предоставляют займы без процентов!

Leave a Reply

Your email address will not be published.

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    Markdown is turned off in code blocks:
     [This is not a link](

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see