In this module, we're going to dive deeper into the QUIC protocol.
So roll back your sleeves, freshen up that coffee,
and keep Wireshark handy because we're going to break
down QUIC and learn how to analyze it.
So let's take a look at our outline for this part of the course.
So first, we're going to take a look at the TCP to QUIC
handoff that often happens at the beginning of a client
starting to connect to a server.
Next,
we're going to take a look at the QUIC handshake and how
the TLS 1.3 handshake is embedded in it.
Next, we'll,
check out QUIC connections versus streams, and also, we'll define
what QUIC packets and frames are, and finally,
we'll open up Wireshark and get QUIC analysis with the packet analyzer.
Now,
since QUIC is such a huge shift away from TCP, first, we want to learn
how a browser will hand off from the way it's been doing things for
decades to this new transport protocol.
Right now, we're very much in a phase of transition to QUIC. Clients often
first will check in with a server over TCP before they attempt a new QUIC
connection. Especially since so many servers don't yet support it, a client
just can't come out of the gate with just a QUIC connection. At the same
time, on the client side,
there's many browsers that don't yet default to QUIC, so a server,
at this time, can't be exclusive to QUIC either.
Now, in the future, as QUIC is more widely adopted,
clients will be able to use QUIC at the first packet.
In fact, if we've already visited a site in the past and QUIC was supported,
then this is a function that we could use, even now.
Now, if the server does support QUIC,
it can suggest an alternate service to the client using an HTTP
redirect, so the client will start over TCP,
but the server will suggest the connection move to QUIC.
Now, let's take a look at how that handoff will work in some scenarios.
Bear in mind that not all scenarios work this way,
but this gives us an example of how a possible QUIC
handoff could work for an application.
So the first step, like normal,
like we're accustomed to, the client initiates a TCP
handshake to connect to the server over TCP.
Immediately following this,
it starts a TLS handshake to set up the encryption of the session.
After this process, it can start to request data from the application server.
Now, at this point,
the server can respond and suggest to the client that the conversation continue over QUIC using an alternate service advertisement.